3 ms·
I definitely agree with the article that once you learn a good set of "archetypal" languages, then most popular new languages become easier to learn. It's a wor
by ekidd 10y ago
I definitely agree with the article that once you learn a good set of "archetypal" languages, then most popular new languages become easier to learn. It's a worthwhile exercise.
But at the same time, there are some deeply weird languages out there. These contain some absolutely fascinating ideas. And if you follow the advice in the article to learn "every" language, then these languages will still surprise and perplex you.
- If you go deep enough in Haskell that you stop being confused by monads and start being confused by "free monad interpreters", then Haskell will provide you with a nearly endless source of complex, powerful abstractions—more than enough for any 10 other research languages.
- Mozart (http://mozart.github.io/ http://mozart.github.io/) is a concurrent logic language with a constraint solver. Even if you're familiar with Prolog and Erlang, this one's going to blow your mind.
- Coq (https://coq.inria.fr/ https://coq.inria.fr/) is a language for formally proving the correctness of the things you compute. (You typically also write your programs in Coq.) There are also other, newer languages in this space. These languages have a steep learning curve, and they're challenging to work in, but they're extremely interesting.
Learning exotic programming languages is fun, and it means that you'll rarely be surprised by any new popular language. But despite this article's suggestion to "learn every language", you won't run out of strange new languages any time soon.
- maaaats 10y agoThe book "Concepts, Techniques, and Models of Computer Programming" (what this blogpost basically is about) uses Mozart/Oz. When I first studied it at uni I didn't care much for it, but when I sat down later and really tried to understand it, it blew my mind as you said. The book is cool, basically introduces a simple model of an abstract computer and defines some operations, and then expands upon that throughout.
- d0vs 10y agoHad an Oz course last semester, can confirm it will turn your brain upside down.
- mercer 10y agoSpending some time learning Clojure, I feel, has had a measurable positive effect on the code I write. I'm considering something even more exotic for the coming year.
- acchow 10y agoHaskell or Ocaml