In this fourth post (parts one, two and three are found here) on the State of the Computer Book Market, we will look at programming languages and drill in a little on each language area.
Overall the market for programming languages was down 5.9% in 2008 when compared with 2007. There were 1,849,974 units sold in 2007 versus 1,740,808 units sold in 2008, which is a decrease of 109,166 units. So the unhealthy 8% loss in the Overall Computer Book Market was not completely fueled by programming-oriented books.
Before we begin to drill in on the languages, we thought it would be best to explain our “language dimension.” When we group books by their language dimension, we categorize them by the language used in their code examples. So Flash Programming with Java would be in our Flash atomic category, but the language dimension would be Java. Similarly, our Head First Design Patterns book contains all examples written in Java, so it too carries the “java” tag on the language dimension.
A Treemap view of the Programming Languages
In the above treemap view, you’ll notice a couple of bright green areas — namely Objective-C and ActionScript. PHP and C# are dark green and show a nice growth when compared to the rest of the larger languages in the fourth quarter of 2007. Unfortunately what this does not show is a visual reference for how the size of the box changes over time. We reported last year that Ruby had grown nicely, had passed Perl and Python, and was knocking on the door for Visual Basic’s spot. However, Ruby had the largest decrease in unit sales in 2008. Of the large languages, the following show a healthy growth trend in 2008: C# with 17,397 more units, PHP with 10,896 more units, ActionScript with 23,881 more units, and Python with 11,517 more units.
Last year we reported that C# should surpass Java as the number one language this year.” C# is now the largest programming language for all book sales, and that was the case for all of 2008.
If you look at the five-year trend for the languages shown below, you can see that C# has been steadily growing year after year while Java has been going in the opposite direction during the same period. PHP, ActionScript and Python are the other languages going in a positive direction. Ruby, Java, and C++ had the biggest declines in unit sales during 2008, and Ruby dropped out of the top 10 languages.
2008 Market Share
Before we dive in, let’s look at the high-level picture for the grouping of languages. As you can see in the table below, the Major and Immaterial languages experienced growth in 2008 while the rest experienced a decline. The languages driving the growth in the Immaterial category are Alice, Haskell and F#. Titles in this category will be moving up as functional languages continue to take off. In the Major group it was Objective-C and Python that carried the group to a positive number compared to 2007.
Category | Category Unit Range | 2008 Units | 2007 Units | Growth |
Large | 100,000 – 275,000 | 1,075,317 | 1,173,444 | -98,127 |
Major | 28,000 – 99,999 | 508,431 | 441,739 | 66,692 |
Minor | 5,000 – 27,999 | 114,397 | 152,890 | -38,493 |
Low-Volume | 2,000 – 4,999 | 32,679 | 77,482 | -44,803 |
Immaterial | 1,000 – 1,999 | 9,950 | 4,392 | 5,558 |
LineList | Less than 1k | 5,245 | 5,482 | -237 |
For the sake of grouping and presenting this information in a more readable format, we have classified the categories for the languages in this way with the following headers:
*Large* | U N I T S | T I T L E S | M A R K E T S H A R E | |||
1. Language | 2. 2008 Units |
3. 2007 Units |
4. 2008 Titles |
5. 2007 Titles |
6. 08Mkt Share |
7. 07Mkt Share |
- Name or short name of the language
- Units sold in 2008
- Units sold in 2007
- Number of Titles making Bookscan 3000 in 2008
- Number of Titles making Bookscan 3000 in 2007
- 2008 Market Share
- 2007 Market Share
The following table contains data for the Large languages. As you can see, C#, PHP and ActionScript were the only languages experiencing growth. It is interesting to note that last year we reported that PHP was surprisingly down, yet it rebounded in 2008 and showed a nice 1% market share growth. ActionScript joined the large languages up from the Major language group. The .NET Languages dropped out of the Large category and is now in the Major language group. JavaScript lost ground despite seeing more titles make the top 3000. Those JavaScript titles sold fewer units per book.
Large Programming Languages — >100,000 – 275,000 units in 2008
*Large* | U N I T S | T I T L E S | M A R K E T S H A R E | |||
Language | 2008 Units |
2007 Units |
2008 Titles |
2007 Titles |
08Mkt Share |
07Mkt Share |
C# | 271,938 | 232,102 | 223 | 178 | 15.58% | 13.60% |
Java | 211,009 | 241,628 | 316 | 306 | 12.09% | 13.60% |
PHP | 173,214 | 158,538 | 129 | 103 | 9.93% | 8.86% |
JavaScript | 172,667 | 203,225 | 142 | 117 | 9.89% | 10.91% | C/C++ | 145,926 | 167,344 | 220 | 238 | 8.36% | 9.24% |
ActionScript | 100,563 | 85,971 | 66 | 41 | 5.76% | 4.84% |
Here are the top titles for the Large languages, and incidentally, the titles and order are the same whether you look at Units sold or Dollars generated:
You’ll notice in the Mid-Major languages that Python and Objective-C are the two languages that are showing growth when you compare 2008 and 2007. Objective-C has one of the largest market share growths for all languages. It seems as though developers really want to build iPhone and Mac applications — not sure what else this growth could be attributed to.
Major Programming Languages — 28,000 – 99,999 units in 2008
*Major* | U N I T S | T I T L E S | M A R K E T S H A R E | |||
Language | 2008 Units |
2007 Units |
2008 Titles |
2007 Titles |
08Mkt Share |
07Mkt Share |
.NET Languages | 94,169 | 107,077 | 89 | 89 | 5.40% | 6.10% |
SQL | 79,722 | 89,289 | 84 | 82 | 4.57% | 5.03% |
Visual Basic | 72,491 | 99,964 | 152 | 127 | 5.04% | 5.67% |
Ruby | 61,171 | 95,731 | 69 | 40 | 3.51% | 5.39% |
Python | 59,530 | 46,028 | 53 | 41 | 3.41% | 2.63% |
VBA | 55,559 | 67,097 | 60 | 61 | 3.18% | 3.78% |
Objective-C | 44,616 | 5,509 | 20 | 9 | 2.56% | 0.47% |
Perl | 28,585 | 37,984 | 41 | 43 | 1.64% | 2.14% |
Here are the top titles for the Major languages.
Wrox | Professional ASP.NET 3.5: In C# and VB |
Addison Wesley | Cocoa |
O’Reilly | Learning Python |
Pragmatic | Agile Web Development with Rails |
Sams | Sams Teach Yourself SQL in 10 Minutes |
Wrox | Beginning ASP.NET 3.5: In C# and VB |
Minor Programming Languages — 5,000 – 27,999 units in 2008
So the news in this category is that Lua, Processing and C had the largest growth in units, 7 out of 12 languages in the category experienced unit growth. It is interesting to see Lua come out of nowhere and sell a bunch of units. Lua got a boost from the World of Warcraft title below that teaches some introductory Lua and uses the language in its examples.
*Minor* | U N I T S | T I T L E S | M A R K E T S H A R E | |||
Language | 2008 Units |
2007 Units |
2008 Titles |
2007 Titles |
08Mkt Share |
07Mkt Share |
Transact-SQL | 16,511 | 21,341 | 21 | 16 | .95% | 1.20% |
Powershell | 12,836 | 13,961 | 16 | 9 | .79% | .74% |
Lua | 11,155 | 2,367 | 6 | 3 | .64% | .13% |
C | 10,760 | 4,854 | 29 | 15 | .62% | .27% |
Shell Script | 10,113 | 11,479 | 17 | 12 | .58% | .65% |
VBScript | 9,497 | 18,167 | 14 | 16 | .54% | 1.03% |
Processing | 8,740 | 1,991 | 4 | 3 | .50% | .11% |
PL/SQL | 8,296 | 7,295 | 23 | 18 | .48% | .41% |
BASIC | 7,420 | 9,374 | 8 | 8 | .43% | .55% |
MATLAB | 6,937 | 4,602 | 18 | 15 | .40% | .26% |
SAS | 6,851 | 6,298 | 17 | 18 | .39% | .35% |
Groovy | 5,281 | 3,733 | 7 | 3 | .30% | .21% |
Here are the top titles for the Minor languages.
Low-Volume Languages — 2,000 – 4,999 units in 2008
The news in this category is that 9 out of 12 languages showed growth in 2008 when compared to 2007. Autolisp and FBML led the pack, but were closely followed by Linden-script and Alice. MDX, AppleScript and LaTeX are the only three languages in this grouping that sold fewer units in 2008 than in 2007.
*Low-Volume* | U N I T S | T I T L E S | M A R K E T S H A R E | |||
Language | 2008 Units |
2007 Units |
2008 Titles |
2007 Titles |
08Mkt Share |
07Mkt Share |
Assembly | 4,474 | 3,762 | 12 | 13 | .26% | .21% |
Linden script | 4,368 | 2,830 | 5 | 3 | .25% | .16% |
MEL | 3,181 | 2,386 | 6 | 4 | .18% | .13% |
Erlang | 2,622 | 2,617 | 1 | 1 | .15% | .15% |
NXT-G | 2,575 | 1,659 | 1 | 1 | .15% | .09% |
AutoLISP | 2,478 | 0 | 7 | 5 | .14% | 0% |
FBML | 2,363 | 0 | 5 | 0 | .14% | 0% |
MDX | 2,244 | 2,743 | 4 | 3 | .13% | .15% |
AppleScript | 2,206 | 3,012 | 6 | 6 | .13% | .17% |
LaTeX | 2,077 | 2,718 | 5 | 6 | .12% | .17% |
Alice | 2,007 | 751 | 8 | 6 | .11% | .04% |
Here are the top titles for the Low-Volume languages.
Immaterial Programming Languages — 1,000 – 1,999 units in 2008
The following languages all sold between 1 and 999 units in Q1 ’07. These are what I am considering the Immaterial programming languages. It should be noted that in 2009, our Real World Haskell book as already sold as much as the whole Haskell market did in 2008. The noticeable trend with the Immaterial languages is large growth of F# and NXT.
*Immaterial* | U N I T S | T I T L E S | M A R K E T S H A R E | |||
Language | 2008 Units |
2007 Units |
2008 Titles |
2007 Titles |
08Mkt Share |
07Mkt Share |
AWK | 1,971 | 2,572 | 2 | 2 | .11% | .14% |
F# | 1,763 | 698 | 3 | 2 | .10% | .04% |
Haskell | 1,491 | 1,268 | 4 | 4 | .09% | .07% |
Scheme | 1,349 | 1,271 | 7 | 7 | .08% | .07% |
R | 1,194 | 823 | 3 | 7 | .07% | .05% |
Tcl | 1,180 | 1,588 | 4 | 5 | .07% | .09% |
NXT | 1,002 | 0 | 1 | 0 | .06% | 0% |
Here are the top titles for the Immaterial languages.
O’Reilly | sed & awk |
Apress | Expert F# |
Prentice Hall | Practical Programming in Tcl and Tk |
Apress | Creating Cool MINDSTORMS NXT Robots |
MIT Press | The Little Schemer |
LineList Programming Languages — < 1,000 units in 2008
Lastly, the following languages sold fewer than 1,000 units in 2008. Here is the list in alpha order: abap, ada, awd, blitzmax, cl, cobol, cs2, d, delphi, directx, dsl, e, eiffel, fortran, haxe, idl, javafx, jcl, kml, labview, lingo, lisp, m, maxscript, ml, mumps, mysql spl, natural, ocaml, octave, oopic, opl, pascal, pda languages, peoplecode, phrogram, pl/1, qbasic, realbasic, rexx, rpg, s, scratch, smalltalk, spark, sql server, squeak, unknown, unrealscript, windows script, and x++.
So this concludes the Languages view of the State of the Computer Book Market. I hope you enjoyed it. Pay attention to this space, as I will be publishing this information twice a year. Now that we have all the queries, spreadsheets, pivot-tables and systems down, we should be able to update these posts much more easily going forward. If you have anything you would like explored a bit more thoroughly, please leave a comment here and we will see what we can do.