Computer Language Primer - Part 1 - Comments

Click For Summary

Discussion Overview

The discussion revolves around a primer on computer languages, focusing on historical perspectives, programming techniques, and the evolution of languages. Participants share personal experiences and insights related to early computing practices, programming languages, and the challenges faced in those times.

Discussion Character

  • Exploratory
  • Technical explanation
  • Conceptual clarification
  • Debate/contested
  • Historical

Main Points Raised

  • Some participants express appreciation for the article, suggesting it serves as a valuable reference for discussions about programming languages.
  • Several contributors share nostalgic anecdotes about early programming experiences, including the use of binary coding, hex dumps, and the limitations of early computers.
  • There are mentions of specific programming techniques and historical tools, such as punched cards, paper tape machines, and self-modifying code.
  • Some participants note the absence of certain topics in the article, such as plugboard programming and the distinction between compiled and interpretive languages.
  • One participant corrects a detail regarding the CPU architecture of the first IBM PCs, indicating a mix-up between the 8080 and 8088 processors.
  • There are discussions about the evolution of programming languages and techniques, including macro capabilities and event-driven programming.
  • Some participants acknowledge the article's length and express that certain details were intentionally left out to maintain focus.

Areas of Agreement / Disagreement

Participants generally agree on the value of the article and share a common nostalgia for early computing experiences. However, there are multiple competing views regarding the completeness of the article and the relevance of certain historical points, indicating that the discussion remains unresolved on these aspects.

Contextual Notes

Some limitations are noted regarding the scope of the article, with participants pointing out missing topics and unresolved details about programming languages and historical computing practices.

Who May Find This Useful

This discussion may be of interest to individuals exploring the history of programming languages, those interested in the evolution of computing technology, and participants in discussions about the relevance of early programming techniques to modern practices.

  • #61
phinds said:
But that does NOT even remotely take advantage of things like inheritance. Yes, you can have good programming practices without OOP, but that does not change the fact that the power of OOP far exceeds non-OOP in many ways. If you have programmed seriously in OOP I don't see why you would even argue with this.
I guess it's a matter of semantics. There was a time when OOP did not automatically include inheritance or polymorphism. By the way, the full OOP may "far exceed non-OOP", but there are still mission-critical and/or safety-minded industries where "virtual" is a dirty word.

Personally, I am satisfied when the objects are well-encapsulated and divided out in a sane way. Anytime I see code with someone else's "this" pointer used all over the place, I stop using the term "object-oriented".
 
Technology news on Phys.org
  • #62
.Scott said:
...there are still mission-critical and/or safety-minded industries where "virtual" is a dirty word.
Yeah, I can see how that could be reasonable. OOP stuff can be nasty to debug.
 
  • #63
rcgldr said:
What about the "dot" directives in MASM (ML) 6.0 and later such as .if, .else, .endif, .repeat, ... ?

https://msdn.microsoft.com/en-us/library/8t163bt0.aspx

phinds said:
Conditional assembly does not at all invalidate Scott's statement. I don't see how you think it does. What am I missing?
It's not conditional assembly (if else endif directives without the period prefix are conditional assembly). Some of the dot directives are like a high level language. MASM (ML) documentation refers to these a decision directives (.if .else .endif ...) and looping directives (.while .break .continue ...) . For example:

Code:
        .if     eax == 1234
        ; ... code for eax == 1234 goes here
        .else
        ; ... code for eax != 1234 goes here
        .endif
The dot directive code sequence will most likely generate the following code sequence, except that the coder didn't need to use any labels with the dot directives.
Code:
        cmp     eax,1234
        jne     short lbl0
        ; ... code for eax == 1234 goes here
        jmp     short lbl1
lbl0:
        ; ... code for eax != 1234 goes here
lbl1:
 
Last edited:
  • #64
Where does something like Scratch fall in these? Just another high-level language? Interpreted, or compiled?
 
  • #67
jedishrfu said:
Where's part 2?
I've got it about 1/3rd done but it's a low priority for me at the moment
 
  • Like
Likes   Reactions: Greg Bernhardt and jedishrfu
  • #68
phinds said:
I've got it about 1/3rd done but it's a low priority for me at the moment
No no! high priority! high priority! :biggrin:
 
  • Like
Likes   Reactions: phinds

Similar threads

  • · Replies 102 ·
4
Replies
102
Views
3K
  • · Replies 122 ·
5
Replies
122
Views
17K
  • · Replies 62 ·
3
Replies
62
Views
13K
  • · Replies 10 ·
Replies
10
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 25 ·
Replies
25
Views
4K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 46 ·
2
Replies
46
Views
5K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 11 ·
Replies
11
Views
2K