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.
CategoryCategory 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
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:
Apress
Pro C# 2008 and the .NET 3.5 Platform
Sams
Sams Teach Yourself PHP, MySQL and Apache All in One
Friends of Ed
The Essential Guide to Dreamweaver CS3 with CSS, Ajax, and PHP
O'Reilly
Peachpit
PHP 6 and MySQL 5 for Dynamic Web Sites: Visual QuickPro Guide
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
O'Reilly
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.
Wiley
World of Warcraft Programming: A Guide and Reference for Creating WoW Addons
Dummies
Beginning Programming For Dummies
O'Reilly
Visualizing Data: Exploring and Explaining Data with the Processing Environment
MIT Press
Processing: A Programming Handbook for Visual Designers and Artists
O'Reilly
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.
Pragmatic
Programming Erlang: Software for a Concurrent World
Apress
LEGO MINDSTORMS NXT-G Programming Guide
Wiley
AutoCAD 2009 & AutoCAD LT 2009 Bible
Sybex
Stop Staring: Facial Modeling and Animation Done Right
Sybex
Creating Your World: The Official Guide to Advanced Content Creation for Second Life
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
Apress
Prentice Hall
Practical Programming in Tcl and Tk
Apress
Creating Cool MINDSTORMS NXT Robots
MIT Press
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.
