3 ms·
There's a book for that: http://pragprog.com/titles/btlang/seven-languages-in-seven-weeks http://pragprog.com/titles/btlang/seven-languages-in-seven-w...
by Aissen 16y ago
There's a book for that: http://pragprog.com/titles/btlang/seven-languages-in-seven-weeks http://pragprog.com/titles/btlang/seven-languages-in-seven-w...
- kwantam 16y agoI own and have read this book, but I don't know how strongly I can recommend it to others. Before reading the book, I was already pretty well versed in Haskell, having developed a bunch of moderately-sized and somewhat useful projects in it. So when I got to the Haskell chapter and realized that he leaves out one of the most important aspects of the language (monads get mentioned in passing and no more), it made me worry that he'd done the same in his treatment of the other languages in the book, and as a result I wasn't sure I was actually getting much useful knowledge about the languages from the book. I admit that the task of teaching someone the "flavor" of a language in one chapter is a difficult (and possibly intractable) one. The danger is that if your summary ends up biasing someone against the language because of what you emphasized or what you left out, they might make an uninformed judgement about that language and as a result never pursue it further (or pursue it further only to realize that they probably shouldn't have bothered, though I think this is not as bad an outcome). So, in the end, any opinion about a language I form as a result of reading the book isn't trustworthy. So... wouldn't I be better off spending my time learning languages from a more authoritative source? Perhaps I'm worrying too much. After all, I might never have learned _anything_ about io if not for Seven Languages, and while a little knowledge is dangerous if used incorrectly, it seems like there's benefit in learning as long as I remain mindful of my ignorance.
- silentbicycle 16y agoI too was disappointed by that book. While conveying anything substantial about a language in that little space is quite difficult, I was underwhelmed by his overviews of Prolog, Haskell, and Erlang (each of which I have some experience in), and suspect the other treatments are equally lacking. It also annoyed me how he characterized the language in the first few pages ("Scala is Frankenstein's monster!" or something like that) and then pushed the metaphor for the rest of the section. You may be better served by _Essentials of Programming Languages_ (http://eopl3.com/ http://eopl3.com/), _Concepts, Techniques, and Models of Computer Programming_ (http://www.info.ucl.ac.be/~pvr/book.html http://www.info.ucl.ac.be/~pvr/book.html), or _Programming Languages: Application and Interpretation_ (http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/ http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/) - also knows as EoPL, CTM, and PLAI, respectively. It really helps to cover several styles of language with interpreters in one common language, to avoid getting hung up on syntax and other surface details. Anyone whose entire impression of Lisp / Python / Erlang / K consists of bitching about parenthesis / significant whitespace / "ugly syntax" / "unreadable noise" has cheated themselves.