Survey of Programming Languages
Join LibraryThing to post.
This topic is currently marked as "dormant"—the last message is more than 90 days old. You can revive it by posting a reply.
I've searched high and low for a book that provides a good comprehensive survey of modern programming languages, and I'm coming to the conclusion that no such book exists. The closest things I've found are the kind of textbooks that get used in "programming languages" courses and have LoC number QA 76.7, but these tend to either focus a lot on compiler design or be outdated or not very comprehensive (focusing on 3 or 4 languages). The two books with the most promising titles are A Guide to Programming Languages: Overview and Comparison by Ruknet Cezzar and Comparative Programming Languages by Robert G. Clark, but the former is 15 years old, and the latter gives some fairly important languages short shrift (e.g., 1 reference to Python). Design Concepts in Programming Languages by Franklyn A. Turbak looks like a nice book, but not really what I've described. I'm looking for a book that will allow me to make informed decisions of the type: "Is language X a good choice for task Y?"
I know there's some good comparative tables on Wikipedia, and there are other on-line sources of data comparing programming languages, but I'm a book person. Any book suggestions would be appreciated.
I think you are going to be out of luck. There are literally hundreds (maybe thousands) of different languages. To cover them all in any length would result in a very long book and by the time someone finished writing it then it would be immediately out of date as new languages would have been designed.
I certainly agree that there are too many languages to include them all, but certainly it's not unreasonable to ask that all languages important enough to have multiple O'Reilly books written about them be included. Cezzar doesn't even discuss Java!
As far as obsolescence, that's going to be true of any computer book. But it doesn't stop thousands of computer books from being written. Why not a decent comprehensive survey?
Wow! In days of old when nights were bold, we had Jean Sammett's (sp?) "Computer Languages" which at the time was a fairly magisterial compendium of every language (or so it seemed) that ever there was
Much has changed since then, and I suspect the equivalent tome today would be a multi volume 6 foot shelf or more.
Whether a language X is good for task Y depends more on the libraries you need and can access much more than the language features. Python, Java, Ruby, etc. are closely related and not terribly interesting as programming languages. In fact most new languages are not different enough to be interesting (with a few exceptions like Haskell, Clojure, Erlang, Limbo etc.).
There have been some attempts at creating a taxonomy of programming languages such as this: http://hopl.murdoch.edu.au/taxonomy.html or a more recent one: http://portal.acm.org/citation.cfm?doid=1089733.1089734 which might be good starting points in addition to http://en.wikipedia.org/wiki/Categorical_list_of_programming_languages
bvs writes: "Whether a language X is good for task Y depends more on the libraries you need and can access much more than the language features."
It appears to me that this is a controversial claim. Creators of new languages appear to think that they are correcting deficiencies of existing languages with respect to some collection of tasks. Authors of language manuals (O'Reilly, etc.) usually have an introductory section discussing the sort of jobs for which the language is particularly well-suited. And the books I cited in Message 1 do address this issue, their shortcoming being that they are out-of-date or too narrow.
Sometimes people use a language that is not ideal for their main task for various reasons. For example, C++ instead of Lisp or Prolog for expert systems, C++ or Python instead of APL for stock market analysis etc. The choice may be driven by what they have to interface with, or a fancy GUI, availability of libraries, expertise, ease of finding programmers, vendor support etc. For your own stuff it doesn't matter what language you use but in a commercial environment your choices are constrained. This sort of things were at the back of my mind when I made that remark but you are right in general.
In my view in the past 10 or so years there have been no new languages that are radically different. Just new permutations on the same ideas of functional programming, object oriented, aspect oriented, array programming, logic programming, visual programming, lisp, parallel programming and so on. There are far too many programming languages to study but one can put then in a few categories and quickly learn where a new one will fit. This is why I was thinking of taxonomies.
This topic is not marked as primarily about any work, author or other topic.