In this fourth post (see posts one, two and three) 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 up slightly at 1.15% in 2011 when compared with 2010. There were 6,435,247 units sold in 2011 versus 6,361,178 units sold in 2010, which is an increase of 74,069 additional units. Java was the biggest language again and experienced healthy growth of 13.46% or 33,930 more units in 2011 than 2010, while PHP occupied the opposite end with the biggest decrease at -26,994 fewer units year-over-year or a -22.50% rate of change.

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 examples written in Java, so it too carries the “Java” tag on the language dimension.

To provide some perspective, 2010 and 2011 have been a mixed-bag of results for tech publishing, meaning there were some bright spots with some of the technologies and some definite low areas too. The chart directly below does not include books that are method-oriented, about project management, about consumer operating systems, or books without language-oriented material. So this is a different view of the market than the overall view found in post 1 of this series. You can see all languages on a week-by-week basis while showing that the the languages closely mirrored the overall market found in post 1. In other words, the graph for Languages shows that 2011 was a roller-coaster for languages too.

Java continues to be the number one language from book units sold and dollars. There is some shuffling going on with the languages tough. JavaScript is very hot now, as is R. Likely a result of Android and big data driving folks to these languages. Java grew 13.46% or roughly 33,930 additional units in 2011 and JavaScript doubled the growth rate of Java at 27.18% and an additional 61,758 units in 2011. PHP and C++ switched places in 2011 where PHP produced 126,994 units in 2011 and fell to #6 and C++ moved into 5th with 19,207 additional units. Only three languages kept their 2010 ranking, Java at #1, Objective C at #4, and Python at #8. As you can see in the 2010-2011 Top 20 languages chart below, Java has a significant lead in the language race with JavaScript moving up quickly.

2010-2011 Top 20 Languages

If you look at the chart below, you will see which languages were responsible for the most units sold between 2004 and 2011. The chart is basically the sum of units each year for the respective language. The top ten languages generated unit sales of 10,283,109 for the 8-year period, while the second ten generated 2,910,636 in the same period. The top ten languages represented roughly 72% of units sold during this period. With so many languages to choose from, makes me wonder if any language will every see the numbers that Java experienced in the early 2000 timeframe.

A treemap view of the programming Languages

In the treemap view above, which compares the last quarter of 2011 with the last quarter of 2010, you’ll notice balance of green, red and black areas. This pretty much indicates that the last quarter of 2011 was roughly the same as the last quarter of 2010 from the programming languages perspective. Most of the bright green, which indicates rapid growth, is in the bottom right hand corner and small in size. This means there was some growth with small languages in the fourth quarter of 2011.

Before we dive in, let’s look at the high-level picture for the grouping of languages. I have grouped these languages by total number of units sold between 2004-2011. As you can see in the table below, the Large and Major languages were up collectively, and everything from Mid-Major and below was down. However books where the language was the focus, ended up 74,688 ahead of 2010 even though the Mid-Major and below lost -15,120 units compared to last year.

Group Unit Range Y2010 Units Y2011 Units 10MketShar 11MketShar Large 50,000 — 200,000 1,323,608 1,389,650 81.09% 79.72% Major 10,000 — 49,999 220,350 244,116 13.50% 14.00% Mid-Major 3,000 — 9,999 77,969 68,980 4.78% 3.96% Mid-Minor 1,600 — 2,999 17,822 17,739 1.09% 1.02% Minor 400 — 1,599 9,364 9,546 0.55% 0.52% Linelist 100 — 399 15,210 10,350 0.42% 0.23% TheRest < 100 2,365 995 0.14% 0.06%

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

Language: Name or short name of the language

UNITS

2010 Units: Units sold in 2010

2011 Units: Units sold in 2011

TITLES

2010 Titles: Number of Titles making Bookscan 3000 in 2010

2011 Titles: Number of Titles making Bookscan 3000 in 2011

MARKETSHARE

10Mkt Share: 2010 Market Share

11Mkt Share: 2011 Market Share

The following table contains data for the Large languages. As you can see, 6 of the 11 top languages experienced growth in 2011 and were led by JavaScript impressive growth and Java’s continued strength. Objective-C has experienced a second year of declining units but seems to have slowed the decline. What is up with C++? Why is this language still growing? Is there something going on with devices that is fueling the growth of C++?

Large Programming Languages — 50,000 — 200,000 units in 2011

*Large* U N I T S T I T L E S M A R K E T S H A R E Language 2010 Units 2011 Units 2010 Titles 2011 Titles 10Mkt Share 11Mkt Share Java 219,031 251,710 374 420 13.42% 14.45% JavaScript 165,910 228,527 180 243 10.16% 13.12% C# 208,450 181,497 271 305 12.77% 10.42% Objective C 151,229 140,679 89 138 9.27% 8.08% C++ 110,624 129,373 196 201 6.78% 7.43% PHP 146,219 119,203 173 180 8.96% 6.85% VBA 64,443 92,954 71 77 3.95% 5.34% Python 69,805 78,200 95 109 4.28% 4.49% SQL 57,184 57,425 96 108 3.50% 4.30% ActionScript 71,797 56,075 99 114 4.40% 3.22% .net Languages 58,916 54,007 83 83 3.61% 3.10%

Here are the top titles for the Large languages:

You’ll notice in the Major languages that Ruby had the biggest growth among this grouping. And the R language had significant growth and surpassed Perl in sales units. Perl used to be one of the largest languages around and is now ranked #19 among the languages. PowerShell experienced it second consecutive year of growth in 2011.

Major Programming Languages — 10,000 — 49,999 units in 2011

*Major* U N I T S T I T L E S M A R K E T S H A R E Language 2010 Units 2011 Units 2010 Titles 2011 Titles 10Mkt Share 11Mkt Share Visual Basic 47,925 42,272 89 87 2.94% 2.43% Ruby 24,434 37,760 49 56 1.50% 2.17% C 38,786 36,828 92 82 2.38% 2.11% Powershell 19,861 28,520 26 30 1.22% 1.64% Shell Script 25,068 24,004 20 22 1.54% 1.38% R 11,431 20,072 18 26 0.70% 1.15% Transact SQL 17,507 17,308 28 27 1.07% 0.99% Perl 16,658 15,786 32 28 1.02% 0.91% Processing 9,053 10,791 9 11 0.55% 0.62% SAS 9,627 10,775 27 27 0.59% 0.62%

Here are the top titles for the Major languages.

Mid-Major Programming Languages — 3,000 — 9,999 units in 2011

The news in this set of languages is that 3 of the 11 languages saw growth in 2011 so the grouping as a whole is off by about 18.35%. This is partially due to a couple of the languages moving up to the prior category — most notably R and SAS..

*Mid-Major* U N I T S T I T L E S M A R K E T S H A R E Language 2010 Units 2011 Units 2010 Titles 2011 Titles 10Mkt Share 11Mkt Share Pl/Sql 10,774 9,322 24 35 0.63% 0.52% Smalltalk 9,294 8,716 2 2 0.54% 0.48% MatLab 8,332 8,504 22 27 0.49% 0.47% SPSS 8,973 7,598 16 18 0.53% 0.42% Basic 5,540 6,168 7 10 0.32% 0.34% VBScript 10,849 5,940 12 12 0.64% 0.33% Assembly 4,391 3,645 18 20 0.26% 0.20% Lua 6,309 3,636 7 8 0.37% 0.20% MDX 5,140 3,626 8 8 0.30% 0.20% nxt-g 1,172 3,535 4 5 0.07% 0.20% F# 4,939 3,285 7 6 0.29% 0.18%

Here are the top titles for the Mid-Major languages.

Mid-Minor — 1,600 — 2,999 units in 2011

The news in this category is the growth of functional languages, like Scheme, Scala, Haskell, Alice and Lisp. These languages showed a nice 51.38% growth in 2010 and another 11.17% growth in 2011.

*Mid-Minor* U N I T S T I T L E S M A R K E T S H A R E Language 2010 Units 2011 Units 2010 Titles 2011 Titles 10Mkt Share 11Mkt Share Scala 2,531 2,844 5 5 0.15% 0.16% Haskell 1,051 2,129 5 6 0.06% 0.12% Lisp 1,684 2,038 4 6 0.10% 0.11% Bash 1,715 1,950 2 2 0.10% 0.11% Scheme 1,479 1,891 8 6 0.09% 0.10% VHDL 1,785 1,802 18 15 0.10% 0.10% Alice 2,713 1,745 10 9 0.16% 0.10% UnrealScript 3,028 1,736 3 3 0.18% 0.10% Blitzmax 1,836 1,604 2 2 0.11% 0.09%

Here are the top titles for the Mid-Minor languages.

Minor Languages — 1,000 — 1,599 units in 2011

This category of languages saw 4 of the 7 languages sell more units in 2011. There was roughly a 1.91% increase in units sold year-over-year. The biggest gains were Puppet and Stata. Even if there was only one book per language in this grouping, it would be hard to financially justify a print product because of economies of scale; unless of course the publisher of a title is selling lots of copies direct on their website or direct to corporations or colleges. The combination of digital and print may help some of the titles below this point actually make more financial sense. My experience says anything below this point is not financially beneficial to the publisher or author, yet there may be other reasons they are in print.

*Minor* U N I T S T I T L E S M A R K E T S H A R E Language 2010 Units 2011 Units 2010 Titles 2011 Titles 10Mkt Share 11Mkt Share Clojure 1,332 1,532 2 4 0.08% 0.08% Puppet 659 1,518 1 3 0.04% 0.08% Stata 856 1,511 6 4 0.05% 0.08% Labview 1,682 1,443 3 2 0.10% 0.08% Scratch 1,112 1,263 2 2 0.07% 0.07% Groovy 2,523 1,205 7 9 0.15% 0.07% AWK 1,200 1,074 2 2 0.07% 0.06%

Here are the top titles for the Minor languages.

Linelist — 100 — 999 units in 2011

This grouping of languages saw 12 of the 28 languages sell more units in 2011, although the sales volume is fairly insignificant. But there was significant erosion in this group as it collectively saw a -46.96% decrease in units sold year-over-year. I am not going to list the bestsellers, because they are not exactly bestsellers, by any measure, in this grouping. Here is the list of languages selling more than 100 units and less than 1,000 in order by the most units to the fewest:

d, erlang, opencl c, applescript, mathematica, latex, tcl, jscript, minitab, apex, autolisp, pure data, fbml, hla, peoplecode, opengl shader, spin, fortran, pig, silverlight, mel, sparql, kml, linden script, lingo, coffeescript, sml, cobol.

TheRest Programming Languages — < 100 units in 2011

Lastly, the following languages sold fewer than 100 units in 2011. Here is the list in descending order:

abap, blitz3d, octave, nxt, gml, pascal, prolog, ml, chef, x++, inform, cfscript, cfml, racket, boo, jcl, siebel escript, idl, javafx, mvpl, m, verilog, jsl, nxc, limbo, mysql spl, rexx, rpg.

The following languages did not see any units sold in 2011. Here is the list in alphabetical order:

ada, awd, bondi, c/al, cachesql, cl, cs2, delphi, directx, dsl, e, egl, eiffel, go, haxe, maxscript, mumps, natural, ocaml, oopic, opl, pda languages, phrogram, pl/1, q, qbasic, realbasic, s, spark, squeak, windows script, xquery.

Next up, post 5 in this series will look at digital sales.