Live data from Hacker News

The seven programming ur-languages (2021)

madhadron.com

11–20 of 326 posts

Re: The seven programming ur-languages (2021)

#11
post #9

Pretty excellent summary, this is roughly the taxonomy I have in my head. I would maybe add SQL as an ur-language as well. It's not quite general purpose like most of these, but it should have a place in this list, I think. It has some kinship with Prolog and the declarative style, but it's really it's own thing. You could also maybe argue for something like LabView. Many programmers look down on purely graphical pro…

I think you’re first instinct is correct given libraries like Linq and GQL in Groovy. The relational algebra is decidedly different versus say map, filter and reduce.

Re: The seven programming ur-languages (2021)

#13

Earlier quoted context omitted.

I've always considered Fortran to be the "first", but with some quick research, it looks like Algol was the first C-like lang to add an if/then statement. My guess is that the author was trying to approximate modern imperative programming. [1] https://craftofcoding.wordpress.com/2021/01/11/why-algol-bes...

Fortran was the first compiled language, that is, the first language at a level higher than assembler. But Algol was a block-structured language in a way that Fortran wasn't, and virtually all languages of that "group" are block-structured today ("goto considered harmful" and all that). So Algol is more appropriate as the "prototype" of what exists today.

Mercury Autocode is perhaps a "missing link" between assembler and Fortran, though I'm not sure of the dates and whether the people developing Fortran knew about Mercury Autocode. Things developed quite fast in the 1950s.

Re: The seven programming ur-languages (2021)

#14
I think you could make a case for including Ada and/or COBOL, separately from ALGOL. Ada is/was an early attempt to remove errors from programming, and COBOL was an attempt to make a "business language" that would be understandable by suits.

Re: The seven programming ur-languages (2021)

#15
post #5

An article like this is hard to write. This is a good one. I have a few quibbles, but they are just quibbles. IMHO* a distinguishing feature of Algol like languages (aka "procedural" languages) is the distinction between expressions and statements. Though personally I've never seen the appeal, that distinction seems to be popular for some reason. * this isn't even a quibble -- the article is fine without it. Just som…

The distinction in ALGOL, Pascal etc. is useless.

But if you change your definitions such that expressions always evaluate to a single value and do not have any side effects while statements produce some kind of side effect (and may or may not yield a value), the distinction becomes important.

Especially if you believe side-effects need special handling (i.e. you are a functional programmer).

Re: The seven programming ur-languages (2021)

#17
My big quibble with this is that the OO category is way too narrow. The way it is worded it excludes almost all languages we'd currently consider OO, and is so strict it largely makes the category pointless. Loosen it to exclude the "You do conditionals..." bit, and focus on the message passing, and e.g. Ruby and other languages that are message passing focused to the point of it tending to dominate semantics over it's Algol-related syntax fits firmly in this category.

Listing Self rather than Smalltalk as the basis of OO languages is also a bit odd. Calling it a "purer form" I guess is a justification, but the other view is once you losen the definition as above, self is just the root of one small (albeit influential, via Javascript, branch of OO languages that almost all owe more to Smalltalk than Self. If another language than Smalltalk should be at the root, it should be Simula, for inspiring message passing, not Self.

Re: The seven programming ur-languages (2021)

#18
>Every programmer needs to know a language in the ALGOL family well. Once you do, then it’s worth branching out. Learning a new language that traces to an unfamiliar ur-language each year will pay dividends

I second this. I would consider myself an intermediate level programmer and learning Scheme (via the excellent book "Structure and Interpretation of Computer Programs") took my programming to a new level and made me think of programming from a completely different angle.

Re: The seven programming ur-languages (2021)

#20
There’s a missing “minimal language” with a combination of features that doesn’t yet exist, but should:

- value semantics with both implicitly-copyable and move-only values

- unboxed generics with type classes/traits/protocols and associated types

- as little syntax and sugar as possible for everything else

Post reply on HN