Live data from Hacker News

The seven programming ur-languages (2021)

madhadron.com

191–200 of 326 posts

Re: The seven programming ur-languages (2021)

#191

Years of bitter personal experience have taught me that FORTRAN is the real ur-language in the sense that a suitably determined programmer can write FORTRAN code in just about any language. I have certainly had to debug this code all over the place.

Is this from https://www.usm.uni-muenchen.de/~hoffmann/roff/tmp/rpdup.pdf (Real programmers don't use Pascal)?

Re: The seven programming ur-languages (2021)

#192
post #175

Earlier quoted context omitted.

The only popular language I can think of that requires side effects to be declared is Haskell. Which doesn't have a distinction between statements and expressions. Are there any good examples of languages that have it, where it isn't "useless"?

python, javascript, pretty much any language that is popular. I believe everything in Haskell is an expression, even the do notation, no? But I think the argument being advanced is that the distinction between statements and expressions is fundamentally unnecessary. I don’t really know of any good argument in favour of them: I tend to think lisps have the perfect and simplest possible syntax.

Python, Lisp and Javascript don't require functions with side effects to be declared in a particular way. Haskell does.

Re: The seven programming ur-languages (2021)

#193
post #45

Earlier quoted context omitted.

Ii is, because it inspired both the Smalltalk branch and the more mainstream OO languages, and hence it makes sense to consider it as a possible ur-language in that sense. Smalltalk is a branch, but it's an important enough branch introducing important enough new concepts that unlike with Self I wouldn't have an issue with people considering Smalltalk it's own ur-language, and because I agree with you that Simula at…

> prototypes instead of classes Maybe the author picked that one as being in the lineage of JavaScript?

It is absolutely reasonable to group Self and Javascript together for that reasons, sure. I just don't think even that is sufficient reason to consider Self the "ur-language". If he'd created a separate category for prototype-base OO, Self would belong there, though.

Re: The seven programming ur-languages (2021)

#194
post #24

Earlier quoted context omitted.

I'm ambivalent about that. As a technicality and inspiration it makes sense, but having learnt Simula (I studied in Oslo; it was the introductory language for many years) it does not give you the same focus on objects as Smalltalk does. But if you want to put another language than Smalltalk as the OO ur language, I'd certainly pick Simula over Self.

My knowledge of Simula is limited to reading about it and looking at small code samples, so I'm learning. But it's probably telling that I've learned more about Simula and seen Simula code but I've only ever heard about Self as a kind of footnote.

Self is mostly important for its implementation and the papers about it, much more so than the language itself. If you're interested in compiler technology, especially the original papers by Urs Hölzle and David Ungar are very approachable. There's a very extensive bibliography here [1]. E.g. the paper on Polymorphic Inline Caches [2] by Urs Hölzle, Craig Chambers, and David Ungar was a seminal paper on optimising method dispatch for dynamic languages (note that lots of other work has been done since, but many of these papers are useful because they're short and simple and give a good foundation for digging into newer techniques)

[1] https://bibliography.selflanguage.org/

[2] https://bibliography.selflanguage.org/pics.html

Re: The seven programming ur-languages (2021)

#195
post #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.

Cobol or Mumps for sure. I think Ada is close enough to Algol to not need its own category.

Ah Mumps. I did a very little bit of programming in that. It should definitely be on a list, but maybe not this one. Perhaps the "languages you should run away from screaming" list :-)

Re: The seven programming ur-languages (2021)

#196
post #175

Earlier quoted context omitted.

python, javascript, pretty much any language that is popular. I believe everything in Haskell is an expression, even the do notation, no? But I think the argument being advanced is that the distinction between statements and expressions is fundamentally unnecessary. I don’t really know of any good argument in favour of them: I tend to think lisps have the perfect and simplest possible syntax.

Python, Lisp and Javascript don't require functions with side effects to be declared in a particular way. Haskell does.

The question was about expressions vs statements, not about the IO type.

Re: The seven programming ur-languages (2021)

#197

Agree on the families, but I would pick a different representative for many of the categories. Algol -> C. Mostly because you can actually do things with C, and yet it remains a fairly small language that's a relatively pure exemplar of the Algol tradition. Lisp -> Scheme. Also because it's a tiny language that tries to push the fundamentals of the Lisp family (code-as-data, recursion, functional programming, macros)…

You can use words in J and APL by defining them.

avg =: +/%#

&.> is predefined as 'each'.

Same for APL, but the idea is to learn what the symbols mean, so you can keep it concise and think in composing functions and not reading pages of text. Sort of like mathematicians and mathematical symbols.

I program in J and APL, but I have taken to BQN lately. It is the best of both with some additions too.

Re: The seven programming ur-languages (2021)

#198
post #196

Earlier quoted context omitted.

Python, Lisp and Javascript don't require functions with side effects to be declared in a particular way. Haskell does.

The question was about expressions vs statements, not about the IO type.

I was replying to the point programmer_dude made in his comment.

Re: The seven programming ur-languages (2021)

#199

Years of bitter personal experience have taught me that FORTRAN is the real ur-language in the sense that a suitably determined programmer can write FORTRAN code in just about any language. I have certainly had to debug this code all over the place.

Is this from https://www.usm.uni-muenchen.de/~hoffmann/roff/tmp/rpdup.pdf (Real programmers don't use Pascal)?

That is where the quote originally came from yes. Thanks! I have been looking for that - couldn't remember it precisely. Here's the actual original:

    > Besides, the determined Real Programmer can write fortran programs in any language.

Re: The seven programming ur-languages (2021)

#200

Objective C is a good example of a Smalltalk derived language that was in heavy use for a while. Even though it's technically a superset of C, in actual use it's more like a message passing language.

Still in heavy use, given the number of devices Apple sells every year.

Most Apple developers have moved to Swift.
Post reply on HN