Hacker News new | past | comments | ask | show | jobs | submit login
The Programming Languages Zoo (andrej.com)
178 points by rfreytag on Dec 9, 2018 | hide | past | favorite | 13 comments



Two powerful, mind-bending items missing from the list of paradigms:

(1) Dependent types. c.f Idris (or Agda, or others -- but Idris).

(2) Logic programming. (It appears in the list of languages ("miniprolog") but not the list of paradigms.)

I consider both of these much more important than some of the more popular paradigms (object-oriented, procedural, dynamic typing -- if I never use such a language again it'll be too soon).


Andrej Bauer, one of the authors of PL Zoo, also implemented a mini dependently typed language: https://github.com/andrejbauer/spartan-type-theory


(3) declarative programming (e.g. SQL)


It has miniprolog.


This reminded me of the Programming Paradigms Poster: https://www.info.ucl.ac.be/~pvr/paradigmsDIAGRAMeng108.jpg


ah yes, the chart in which they just put "Oz" and "Alice" under every box


ctrl-c, ctrl-v issue ...


Well spotted. The reason is that this chart's author is the designer of Oz, which is a multi-paradigm language if there ever was one, as is reflected in the chart, and the design of which is painstakingly and very well explained in his book, "Concepts, Techniques, Models of Computer Programming".


The book referred to by this diagram, "Concepts, Techiques, and Models of Computer Programming" is actually quite related to TFA too.

I.e. the book starts with a basic language and extends it in different ways to gain more espressive potential, i.e. HOFs, lazyness, state, different concurrency primitives, logic programming, constraint solving etc.

It's a big book, but it's wonderful.


Is there one of these languages to start with? Or would you choose one that interests you and study that one? There seems like some great content but I don't see a clear place to start


The best way to choose a language is always to look at what problem you're trying to solve and what kinds of problems the languages you're looking at aimed toward.

If you're not familiar with programming already, python has a very low cost of entry and a massive following.

If you're familiar with programming and looking to get into functional stuff, Haskell will give you a pretty good start.


I guess what jesse_m had in mind were the mini languages from the article. I'd say 'calc' looks like a good starting point, but I agree that picking an order is hard.


Yeah I'm familiar with OCaml I wasnt sure if there was a language progression that was suggested to go through. I was actually interested in using Menhir more too.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: