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.

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.

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.