Technical books are a topic that interest me a lot. From book sale figures and trends we can attempt to better understand where developers are putting their money, not only their mouths. For this article I decided to perform a small experiment, by collecting some interesting data. I considered 23 fairly well known programming languages, and searched for the top selling book (according to Amazon) for each of them. The Amazon sales rank allows us to compare the success of books representative of each language, and indirectly compare the popularity of the languages themselves.
Below is the resulting table with all the data organized by sales rank:
Despite the limitations of the methodology employed (see disclaimer for details), I think this table gives us a nice picture of the status of our industry. I’ll let the data speak for itself, and allow you to speculate in the comments, but I’d like to point out a few interesting aspects of the resulting data.
You may notice that the fourth most popular book on the list is a “10 minute” type of book for SQL. This is ironic but it doesn’t contradict the anecdotal evidence, as real world experience suggests that many developers don’t really know SQL, and they resort to quick guides as a remedy while working on a given project. It’s a shame, because database and SQL understanding are essential skills needed to be successful programmers in many areas. To conclude, by looking at the table, it is apparent that the Pragmatic Programmers are definitively influential. Let’s face it, they contributed a great deal to the growth of the Ruby community and are now helping edge forward Erlang’s popularity. According to other data available on the web, Erlang should have been somewhere at the bottom of this list along with Haskell, but the Pragmatic Programmer’s book on this language has already presold many, many copies (it will be published in mid-July). It is clear that this book is going to be a best seller and that it will do a lot to promote the language itself. This is absolutely a good thing, because Erlang deserves the spotlight. By looking at the column of publishers, one can’t help but notice that O’Reilly truly successfully markets its books, and they are generally highly regarded by us developers.
Disclaimer (Or… wait a second, dude!)
- The method that I used didn’t account for books related to frameworks (Django, Rails, Seaside, etc…). The Agile Web Development with Rails book for example, has an incredible Amazon Sales Rank and it’s one of the best sellers of all time in our field;
- This methodology favors languages that have a book which has been widely adopted within the community, as opposed to languages where sales are split relavitely equally amongst a few titles;
- Not all languages are represented here of course. I just picked a reasonable selection;
- Amazon is not the only place on Earth where books are sold. But I think it’s still a fairly accurate indication of the US market;
- The Pragmatic Programmers sell many of their books directly, the sales ranks shown here don’t take this into consideration, so chances are they are underrepresented;
- The links to Amazon have my referrer id. This won’t cost you a cent more, and will help support this site.
Get more stuff like this
Subscribe to my mailing list to receive similar updates about programming.
Thank you for subscribing. Please check your email to confirm your subscription.
Something went wrong.
Though this is a somewhat silly way to compare languages, it is interesting. As an added data point:
Book sales are the model for the long tail; top sellers outsell competing titles by a huge margin. Although this pattern is true in general, you seem to be assuming that each top selling book outsells the second best selling book by a near constant factor.
On the other hand, this analysis ignores the fact that there’s a huge contingent of people who have already learned Java and don’t need to buy introductory books on Java; they’re busy buying the books in libraries and frameworks.
This data is certainly interesting, and offers a reasonable correlation with what’s going on in the industry. The O’Reilly State of the Computer Book Market series offers a deeper view into similar data, with more meaningful indicators.
While this list is a nice view and it can be discussed and thought about, I do think that some languages do take a penalization for available online documentation… but it depends on the quality of it.
As an example, the full first edition of Programming in Lua is available online. Not only this is the ‘official’ Lua book, but also there aren’t a lot of printed books on Lua. This pretty much reduces the options to reading the book online or buying that same book on print.
I’m also sure a lot of Pythonistas get Dive into Python on PDF and are happy with that. Some of the good Lisp books can be also found complete online in PDF.
“practical common lisp” : sales rank 30581
Interesting analysis of things. Got me looking into where some of the languages I work with are in comparison…
Actionscript, 347, Rank #1
Flex, 8,655, Rank #11
ColdFusion, 12,793, Rank #14
I’d expect book numbers to be more in line “what’s hot” than “how many jobs are there for this topic” to some extent. But then again it could be a look at where things will be in the job market a few years down the line.
I missed that one, when I have some time I’ll amend the article to include it.
HTML is a markup language not a programming language, and as such it is not included in the list. Also, remember that the list is not complete by any means, so several languages will be missing.
A way to eliminate the single, accepted reference vs. many acceptable books problem can be borrowed from cross-country scoring. Add the ranks of the first three (or five or whatever) books. Popular languages should have multiple good books out.
And what makes SQL a programming language? Is it Turing-complete? If not, then it’s not a programming language to me. Would you call regular expressions a programming language as well?
It is also interesting that there is an increasing interest in design patterns.
Head First Design Patterns and – as always since it came out – the book of GoF have a very high rank.
Very interesting post, Antonio, and great blog: continue with your nice work 😉
i think this is a great way to track the open market voltage/ pressure to learn a particular language. this also breaks down for overall pressure as a metric because some communities are better at documenting than others, this means that books are not as necessary in those situations. i think java, and .net have EXTREMELY strong existing communities that act as a cache mechanism and lower the pressure to buy a book. it would be great to somehow get a life time book sales for each topic to get an idea about the amount of “energy” spent consuming books of a given topic.
SQL should in no way be part of this.
I dont see whole desktops written in it whereas you can even use python to write up a full desktop GUI
Another thing that distorts the list is price. I wonder whether the “10 minutes” book being popular for SQL really reflects developers not learning SQL… or if it reflects the price tag ($11.55) in comparison to other books on the list.
So the best scoring languages here will be those with: (1) lots of interest, (2) no “canonical” online sources, and (3) cheap books.
Still, popular languages certainly do figure in there.
Regarding Kirill’s comment, I have the feeling that there will be a lot of widely used “not quite” Turing-complete languages in the near to mid future. If they do what you need, the lack of Turing completeness is not a drawback at all. Non-Turing-complete languages can overcome Rice’s theorem, and so can sometimes be analyzed, and possibly transformed, more easily by software. More sophisticated compilers can make this a big advantage.
This is fun, except that unfortunately it’s ultimately meaningless.
The other issue is exactly what is being measured. One might argue that the need for an explanatory book is representative of a combination of: (a) a language’s complexity (i.e. if it’s easier to use it doesn’t require a lot of training), (b) a language’s online documentation and communities, (c) its age, (d) its current fandom (some people do buy computer books just to learn about something, the way I buy cookbooks from which I’ll never use a single recipe), (e) the “bibleness” of one given title for a particular language, causing a huge percentage to buy THAT book at the expense of others (the C book being a perfect example), and several other criteria that I haven’t thought of.
Incidentally, I’ve continued to be fascinated by the assumption that @C++@’s age means that it’s dusty and irrelevant. Anytime in the past five years that I’ve published an article about @C++@ (at any pub for whom I worked) it has always been immensely popular.
senior online editor, CIO.com
and currently Amazon Reviewer #580
Not really part of the discussion, but there are many SQL implementations that are turing complete. Kirill needs to stop bashing on such an article that brought noticed to another way of looking at things, albeit incomplete and far from comprehensive. Nice article.
Ruby has generated quite a bit of excitement and after looking at it, I can understand why. Plus it is kind of the new kid on the block.
C# is a little bit of surprise, beating out C/C++ but this is probably due to the fact it is new. Although the pure MS shops are in to it, not much excitement outside the pure MS camp.
Unfortunately, not many new developers are bothering to learn C and C++, except game developers. Sad, since these languages are essential for low level work.
As far as Delphi, it is on its last legs and has been for some time. This language has the problem of being totally proprietary and unfortunately, offers zero outside of Windows fat client type development. Who is really doing fat client development these days? Very few.
Smalltalk number is surprising for me.
This mean that Ruby is more complex language than python. To be smart and start developing on python you need only one book.