4 ms·
If he thinks that Smalltalk is a "alternate yet fully capable universe that branched off from mainstream computing long ago" then I'm not sure I want to know wh
by russellallen 16y ago
If he thinks that Smalltalk is a "alternate yet fully capable universe that branched off from mainstream computing long ago" then I'm not sure I want to know what he thinks about selflanguage.org ...
But seriously, his four 'advanced programming languages' seem to be all in the functional space. That's great, but I'd recommend looking outside that as well. Maybe Haskell, Pharo, Factor and Erlang?
- mahmud 16y agoSECONDED! Add Mozart/Oz to the mix for good measure.
- jefffoster 16y ago+1 for Mozart/Oz. It's a great language for exploring the various paradigms of programming. Working through "Concepts, Techniques and and Models of Computer Programming" (http://www.info.ucl.ac.be/~pvr/book.html http://www.info.ucl.ac.be/~pvr/book.html) with Mozart/Oz gives a great tour of programming techniques and manages to stay in one language for the whole journey.
- plastics 16y agoOr AliceML, its Hindley–Milner typed cousin.
- swannodette 16y agoHe does mentions Haskell. Pharo is Smalltalk. Erlang is functional.
- gloob 16y agoThough, in fairness, Erlang has a completely different emphasis than most other functional languages - instead of provability, experimenting with type systems, or state-phobia, my understanding is that it was pretty much engineered for making stable systems, and everything else is a secondary concern. (It was also put together by a telecom, rather than academics or hobbyists).
- rdtsc 16y agoIt is kind of interesting that unlike many of the "exotic" languages in the list Erlang has arrived where it is from another direction -- from practical necessities of telecom platforms. But interestingly it has arrived at similar results as many academic functional languages. So for example, all base data structures are immutable and variables are single assignment only. Now someone coming from C(++) or Java will hate that, but that is needed in order to provide stability and a consistent view into the data structures in a concurrent environment. So "fixing" it and making data structures mutable would break that. Then I like how you said 'statephobia'. In case of Erlang they saw the practical difficulty with having one single mutable state across a large distributed system so applied the 'actor-based concurrency model'. Perhaps other, more academic languages, decided to cure their statephobia because of some aesthetic desire, maybe they wanted the functions to look more like math functions, but they both declared war on spreading mutable state, even though they started from different ends of the spectrum.
- sesqu 16y agoWhen talking about the design philosophy of Erlang, it helps to remember that it was originally implemented atop Prolog, so some of those choices may not have been intentional.
- russellallen 16y agoI was giving my four suggestions to show how the author could have chosen more variety; eg functional, oo, concatenative and distributed/actor. Mercury/Oz mentioned by Mahmud below is another great idea, they don't get nearly enough love.
- silentbicycle 16y agoHe's pretty weak on APLs and constraint/logic programming, too. Nothing against Matt Might, though (he's got plenty of other excellent posts!), any post like that is inherently incomplete.
- nickknw 16y agoWow, thanks for the tipoff on Pharo, that's really neat. I'll have to keep an eye on that one!