3 ms·
I don't have any obscure favourites that I actually use. But I have a soft spot for a bunch of old, obsolete ones. Niklaus Wirth's post-Pascal languages, inclu
by atombender 7y ago
I don't have any obscure favourites that I actually use. But I have a soft spot for a bunch of old, obsolete ones.
Niklaus Wirth's post-Pascal languages, including Modula-2 (and its offshoot Modula-3) and Oberon were fantastic. Their syntaxes fit on a single piece of paper. Modula-3 is an outlier, since it was developed without much involvement from Wirth, but it adds some nice stuff, such as generics. Oberon had a strong influence on Go.
As a kind of "lost language", Barbara Liskov's CLU (1974-75) is fascinating. Its syntax is Algol/Simula-like, but it comes with a lot of advanced features (iterators, generics, type parameters with constraints, exceptions, variant types, parallel assignments, inheritance-less classes, "everything is an object", garbage collection, no global variables) that eventually ended up in other languages, much later. CLU was never intended to be used, but as a testbed for ideas, and it never really was.
- open-source-ux 7y agoI have a soft spot for Modula-2 too. It was verbose (which I didn't mind) and used all-caps for some syntax which didn't look nice. It featured coroutines for concurrent programming with a very readable syntax. Wirth felt the language was too large (although this is all relative since Modula-2 is smaller than many modern languages) and so Oberon, his next language, was deliberately pared down to the smallest number of keywords and features he could manage. I've always liked this philosophy and still think a smaller language is preferable to a larger language in many cases. There's something satisfying about knowing all the features of a language - you actually feel you might be able to master it.