Meditations on programming, startups, and technology
New Relic

23 Programming Languages compared through their Amazon book sales

Please note that this article is intended as a fun way of looking at several programming languages from a different and unusual angle. I have adopted many oversimplifications which make the outcome’s possible insight very limited. Take it at face value for what it is: a fun post that yields a general idea of the programming languages’ respective popularities, but don’t consider it as a scientific/statistical analysis.

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:

Rank Language Amazon # Book Title Publisher
1 Javascript 1,227 JavaScript: The Definitive Guide O’Reilly Media
2 Java 1,799 Head First Java, 2nd Edition O’Reilly Media
3 Ruby 1,881 Programming Ruby: The Pragmatic Programmers’ Guide, Second Edition Pragmatic Bookshelf
4 SQL 1,929 Sams Teach Yourself SQL in 10 Minutes, Third Edition Sams
5 C# 2,676 Programming C#: Building .NET Applications with C# O’Reilly Media
6 C++ 3,317 Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition) Addison-Wesley Professional
7 C 3,499 The C Programming Language (2nd Edition) Prentice Hall
8 Visual Basic 4,165 Microsoft Visual Basic 2005 Step by Step Microsoft Press
9 Python 5,537 Learning Python, Second Edition O’Reilly Media
10 PHP 5,936 Beginning PHP and MySQL 5: From Novice to Professional, 2nd Edition Apress
11 Perl 7,692 Learning Perl, Fourth Edition O’Reilly Media
12 Erlang 8,609 Programming Erlang: Software for a Concurrent World Pragmatic Bookshelf
13 Objective-C 10,476 Programming in Objective-C Sams
14 Groovy 13,613 Groovy in Action Manning Publications
15 F# 21,273 Foundations of F# Apress
16 Lua 23,052 Programming in Lua, Second Edition Lua.Org
17 Scheme 29,548 The Little Schemer – 4th Edition The MIT Press
18 Haskell 42,459 The Haskell Road To Logic, Maths And Programming King’s College Publications
19 Delphi 67,035 Mastering Delphi 7 Sybex
20 Lisp 86,188 ANSI Common LISP Prentice Hall
21 Forth 93,245 Forth Application Techniques FORTH, Inc
22 Smalltalk 279,312 Smalltalk, Objects, and Design iUniverse
23 Ocaml 290,618 Practical OCaml Apress

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.

According to the table above, it is clear that the once widely adopted Delphi is now much less prominent (consider that there are more recent books on Delphi, and that they have even worst sales ranks). This of course, does not take into consideration the fact that Delphi may have great documentation online, but I doubt that this would end up penalizing Delphi books that are on the market to this extent. Java and .NET on the other hand are doing very well. No surprise there. Also it doesn’t come as a surprise that Javascript is, thanks to Ajax, so widely popular on Amazon. Notice how developers seem to be embracing the study of dynamically typed languages, even though statically typed ones are still predominating. C, despite its age, still keeps our industry going. What I found surprising was the sales rank of the Groovy book, I honestly thought Groovy was a much more limited phenomenon. Regarding the functional paradigm, functional languages are slowly becoming more adopted, but it’s clear to me that the paradigm is being accepted by most when incorporated within existing Objected Oriented languages rather than in its pure form as seen in languages like Haskell for example. Speaking of Haskell, I’m sure the data will change a lot when the new book Real World Haskell hits the shelves. And that’s what the Haskell world really needs, because Haskell is often presented in an academic way which is hard for a wide audience to digest, and it is considered too theoretical by many.. It’s no wonder that 150 of us, fired off an email in reply to a request for reviewers.

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.

If you enjoyed this post, then make sure you subscribe to my Newsletter and/or Feed.

receive my posts by email

20 Responses to “23 Programming Languages compared through their Amazon book sales”

  1. Sindisil says:

    Though this is a somewhat silly way to compare languages, it is interesting. As an added data point:

    Actionscript would rank even higher than JavaScript, since the book “Essential ActionScript 3.0″ by Colin Moock currently is at sales rank #346.

  2. Adam Turoff says:

    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.

    The data is certainly more complex; if you were to look at the recent sales for the top 3 titles in Java vs. Ruby (for example), you might conclude that Ruby is much more important, even though the top selling Java book outsells the top selling Ruby book. Put differently, this ranking seems to indicate that JavaScript is only slightly more important than Java at the moment, but that doesn’t seem right.

    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.

  3. Venkman says:

    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.

  4. rahul says:

    “practical common lisp” : sales rank 30581

  5. Adam Fortuna says:

    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.

  6. If SQL is a language, then HTML is too. Which would put “Head First HTML with CSS & XHTML” at #1133 ahead of JavaScript.

  7. @rahul

    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.

  8. Bill Busen says:

    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.

  9. Kirill Grouchnikov says:

    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?

  10. Paolo Corti says:

    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 ;-)

  11. jdavid says:

    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.

  12. she says:

    I agree.
    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

  13. Chris Smith says:

    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.

  14. Chris Smith says:

    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.

  15. This is fun, except that unfortunately it’s ultimately meaningless.

    Amazon rankings have some general meaning, but only in a vague sense. The rank is only for today, not as a reflection of “since the beginning of time.” So if 50 people rushed out to buy a copy of Down to Earth REXX (which I think is a fine idea, since it’s my husband’s book), overnight it would shoot up in the Amazon rankings by… well, maybe it would move into the top million. Or, more to the point, if 50 people bought Head First Java today it would knock the JavaScript book out of the top spot. That’s not an unlikely scenario; JavaOne can shift sales, for example, as can a local Java user group meeting where the author speaks.

    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,
    and currently Amazon Reviewer #580

  16. null says:

    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.

  17. says:

    Anyone in the programming world, should not find this mind blowing. Java has been the top language used in IT and has been for some time. Not surprised by Java Script sales either, since regardless of what back end you use, JavaScript is essential for Browser based development.

    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.

  18. Azar says:

    Smalltalk number is surprising for me.

  19. xen says:

    This mean that Ruby is more complex language than python. To be smart and start developing on python you need only one book.

  20. [...] Cangiano had a post I liked that did an estimation of programming language popularity by Amazon Rank of the bestselling corresponding book. OK, everybody that thinks of that as unscientific rather [...]

Leave a Reply

I sincerely welcome and appreciate your comments, whether in agreement or dissenting with my article. However, trolling will not be tolerated. Comments are automatically closed 15 days after the publication of each article.

Current month ye@r day *

Copyright © 2005-2012 Antonio Cangiano. All rights reserved.