Hacker News new | ask | show | jobs
by DonaldFisk 61 days ago
I wrote something similar here: https://fmjlang.co.uk/blog/GroundBreakingLanguages.html

We agree on Algol, Lisp, Forth, APL, and Prolog. For ground-breaking functional language, I have SASL (St Andrews Static Language), which (just) predates ML, and for object oriented language, I have Smalltalk (which predates Self).

I also include Fortran, COBOL, SNOBOL (string processing), and Prograph (visual dataflow), which were similarly ground-breaking in different ways.

2 comments

I like your list better, mostly because of the inclusion of SNOBOL, which I never used, but was one of the first programming languages I read about as a young child after a book about it caught my attention at a public library book sale because of the funny name.

The only languages I was familiar with before this were BASIC, Logo, and a bit of 6502 assembly, though I had only used the latter by hand-assembly and calling it from BASIC following an example in the Atari BASIC manual[1].

Also, it's hard for me to imagine how anyone could make a list of ground-breaking programming languages that doesn't include Fortran and COBOL (or FLOW-MATIC as the source of many of its innovations).

[1] https://archive.org/details/atari-basic-reference-manual/pag...

I don’t understand why self is placed in the list instead of smalltalk. Smalltalk came first, and Alan Key was the one who invented the “OOP” name.

Also ML is seen as a child of Lisp.

They should be placed alongside each other, because Self OOP model is quite different from Smalltalk, including how the graphical programming experience feels like.

For those that never seen it, there are some old videos (taken from VHS) on the language site, https://selflanguage.org/

> I don’t understand why self is placed in the list instead of smalltalk.

The article explains that:

> Smalltalk inherited the notion of a value and its type from earlier languages, and implemented the idea of a class. All objects had a class that gave their type, and the class was used to construct objects of that type. Self disposed of the notion of class and worked solely with objects. As this is a purer form, I have chosen Self as the type specimen for this ur-language.

Yes, but I still don't understand that explanation. Clearly self is a descendant of Smalltalk, that purified a part; but still is a descendant. At least I understand the "ur-" as indicating linage, more about time as features. For me is still backwards.
Although it didn't call it that, Simula-67 was basically object-oriented and both preceded and inspired Smalltalk. But syntactically it looks much like other Algol-inspired langages so it doesn't look that interesting at first glance.