Note: An inadvertent draft of this post went out in our RSS feed and was posted for about an hour on Tuesday. It was cloned from Q1 ’07 and most of the data and information was wrong.
In this fourth post (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 2007 market for programming languages was down (1.67%) in 2007 when compared with 2006. There were 1,809,695 units sold in 2006 versus 1,779,523 units sold in 2007 which is (30,172) fewer units in 2007. So the modest 1% growth in the Overall Computer Book Market must have been fueled by non-programming oriented books. You don’t need a programming language to learn to use MacOsX, Vista or Office and that is where the growth was in 2007.
Before we begin to drill in on the languages, we thought it would be best to explain our “language dimension.” We track both topic categories and languages. In the latter dimension, we capture whether the book being categorized has code examples in a particular language. So a title like Head First Design Patterns, which contains all examples written in Java, carries the “java” tag on the language dimension even though it’s in the design patterns category.
A Treemap view of Programming Languages
Caveat: The image below is about 1% or 2% off because there were several titles that were unclassified at the end of 2007 when we took this screen capture. The trends are still the same, but the precision is lacking.
In the treemap view, you’ll notice a couple of bright green areas — namely ActionScript and PowerShell. Python, Ruby and C# are green (not bright green), showing nice growth when compared to 2006. Ruby was a small box last year and is now the 8th largest language, passing Perl and Python and now knocking on the door for Visual Basic’s spot. Ruby has the second largest unit growth after C#, going from 4% overall market share to 5%; it is now 4k units from displacing VB for #7 overall. C# was equally impressive with a 36,811 unit growth, or 18.85%; it went from 11% market share in 2006 to 13% market share in 2007. At the rate it is going, it should surpass Java as the number one language this year as it is only (9,526) units short and is on a positive 18.85% growth rate while Java continues its slide at a (14.16%) clip. In addition, look at the title efficiency: C# is achieving close to the same number of units with 3/5 the number of titles, indicating that each title is selling better.
Now let’s dive into this treemap and take a closer look at the languages. This chart shows the five-year trend for the major programming languages. Red is used to highlight 2007. What is very noticeable is the huge decline with Java. In five years, it is now half of where it was in 2003. C# and Javascript are the only two Major languages that showed fairly conistent performance during the past five years.
2007 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 MidMinor and Minor languages experienced growth in 2007 while the rest experienced a decline. The languages driving the growth in the Minor category are Groovy, SAS, Erlang, Matlab, and Processing. 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:
Category | Category Unit Range | 2006 Units | 2007 Units | Growth |
Major | 100,000-250,000 | 1,183,713 | 1,173,444 | (10,269) |
Mid-Major | 65,000 – 99,999 | 453,596 | 441,739 | (11,857) |
Mid-Minor | 10,000 – 64,999 | 151,633 | 152,890 | 1,257 |
Minor | 1000 – 9,999 | 63,084 | 77,482 | 14,398 |
Immaterial | 1 – 999 | 5,825 | 4,392 | (1,433) |
The tables that we are showing below will contain the following header:
*Major* | 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. 2006 Units |
3. 2007 Units |
4. 2006 Titles |
5. 2007 Titles |
6. 06Mkt Share |
7. 07Mkt Share |
- Name or short name of the language
- Units sold in 2006
- Units sold in 2007
- Number of Titles making Bookscan 3000 in 2006
- Number of Titles making Bookscan 3000 in 2007
- 2006 Market Share
- 2007 Market Share
The following table contains data for the Major languages. As you can see, C#, Javascript and .net Languages (books containing both C# and VB code) were the only languages experiencing growth. At the rate Java is declining, C# should overtake Java this year as the number one most purchased language category for books. We are a bit surprised that PHP is down. Maybe Javascript or Ruby/Rails are biting into this market.
Major Programming Languages — >100,000 units in 2007
*Major* | U N I T S | T I T L E S | M A R K E T S H A R E | |||
Language | 2006 Units |
2007 Units |
2006 Titles |
2007 Titles |
06Mkt Share |
07Mkt Share |
java | 281,502 | 241,628 | 326 | 306 | 16% | 14% |
c# | 195,291 | 232,102 | 170 | 179 | 11% | 13% |
php | 194,722 | 158,538 | 95 | 103 | 11% | 9% |
javascript | 185,031 | 203,225 | 82 | 117 | 10% | 11% |
c/c++ | 180,713 | 167,344 | 245 | 238 | 10% | 9% |
.net languages | 105,872 | 107,077 | 96 | 88 | 6% | 6% |
Here are the top titles for the Major languages, and incidentally, the titles and order are the same whether you look at Units sold or Dollars generated:
O’Reilly | Head First Design Patterns |
Peachpit | JavaScript and Ajax for the Web |
Peachpit | CSS, DHTML, and Ajax |
Sams | Sams Teach Yourself PHP, MySQL and Apache All in One |
O’Reilly | JavaScript: The Definitive Guide |
Mid-Major Programming Languages — 65,000-99,000 units in 2007
You’ll notice in the Mid-Major languages that Ruby and Actionscript are the two languages that are showing growth when you compare 2006 and 2007. Both ActionScript and Ruby achieved their growth by adding more titles to the list. Remember that does not mean that more titles were published, but that more made it into our Top 3000 report from Bookscan.
*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 | 2006 Units |
2007 Units |
2006 Titles |
2007 Titles |
06Mkt Share |
07Mkt Share |
visual basic | 147,710 | 99,964 | 152 | 127 | 8% | 6% |
ruby | 67,664 | 95,731 | 17 | 40 | 4% | 5% |
sql | 92,981 | 89,289 | 71 | 82 | 5% | 5% |
actionscript | 66,568 | 85,971 | 33 | 41 | 4% | 5% |
vba | 78,565 | 67,097 | 53 | 61 | 4% | 4% |
Here are the top titles for the mid-Major languages.
Pragmatic | Agile Web Development with Rails |
O’Reilly | ActionScript 3.0 Cookbook |
Sams | Sams Teach Yourself SQL in 10 Minutes |
O’Reilly | SQL Pocket Guide |
Pragmatic | Programming Ruby |
O’Reilly | Essential ActionScript 3.0 |
Mid-Minor Programming Languages — 10,000 – 64,999 units in 2007
So the news in this category is that Python has swapped places with Perl as the leader of the category. Perl had seven fewer titles make it into the Top 3000 while Python saw and additional 8 make the list. Powershell came out of nowhere and surpassed all the other groupings to make this list.
*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 | 2006 Units |
2007 Units |
2006 Titles |
2007 Titles |
06Mkt Share |
07Mkt Share |
python | 38,609 | 46,028 | 33 | 41 | 2% | 3% |
perl | 50,483 | 37,984 | 50 | 43 | 2% | 3% |
transact sql | 17,756 | 21,341 | 17 | 16 | 1% | 1% |
vbscript | 22,976 | 18,167 | 17 | 16 | 1% | 1% |
powershell | 1,377 | 13,961 | 1 | 9 | 0% | 1% |
shell script | 14,466 | 11,479 | 13 | 12 | 1% | 1% |
Here are the top titles for the mid-Minor languages.
O’Reilly | Learning Python |
O’Reilly | Learning Perl |
Manning | Windows PowerShell in Action |
Microsoft Press | Inside Microsoft SQL Server 2005: T-SQL Querying |
O’Reilly | Programming Perl |
Minor Programming Languages — 1,000 – 9,999 units in 2007
So the news in this category is that Groovy came out of nowhere and moved quickly up the charts. SAS, and MATlab had nice growth. Erlang, Processing and Nxt-G had no units in 2006 and each sold a nice quantity in 2007. Remeber from above, this is the language grouping that grew the most in 2007. More than 14k units were produced by this grouping in 2007 versus 2006.
*Minor* | U N I T S | T I T L E S | M A R K E T S H A R E | |||
Language | 2006 Units |
2007 Units |
2006 Titles |
2007 Titles |
06Mkt Share |
07Mkt Share |
basic | 10,660 | 9,374 | 10 | 7 | 1% | 1% |
pl/sql | 8,780 | 7,295 | 18 | 18 | 0% | 0% |
sas | 2,898 | 6,298 | 15 | 18 | 0% | 0% |
objective c | 5,384 | 5,509 | 6 | 6 | 0% | 0% |
groovy | 210 | 4,791 | 2 | 3 | 0% | 0% |
matlab | 2,565 | 4,602 | 10 | 15 | 0% | 0% |
assembly | 4,727 | 3,762 | 14 | 13 | 0% | 0% |
applescript | 3,590 | 3,012 | 8 | 6 | 0% | 0% |
mdx | 3,428 | 2,743 | 6 | 3 | 0% | 0% |
latex | 2,827 | 2,718 | 4 | 6 | 0% | 0% |
erlang | 538 | 624 | 1 | 2 | 0% | 0% |
awk | 3,031 | 2,572 | 3 | 2 | 0% | 0% |
mel | 1,204 | 2,386 | 4 | 4 | 0% | 0% |
lua | 1,563 | 2,367 | 4 | 3 | 0% | 0% |
cs2 | 335 | 2,259 | 1 | 1 | 0% | 0% |
processing | – | 1,991 | 0 | 3 | 0% | 0% |
nxt-g | – | 1,659 | 0 | 1 | 0% | 0% |
lisp | 2,085 | 1,593 | 7 | 5 | 0% | 0% |
tcl | 2,052 | 1,588 | 4 | 5 | 0% | 0% |
scheme | 1,199 | 1,271 | 5 | 7 | 0% | 0% |
haskell | 416 | 1,268 | 2 | 4 | 0% | 0% |
abap | 2,055 | 1,188 | 2 | 2 | 0% | 0% |
mysql spl | 1,197 | 1,176 | 1 | 1 | 0% | 0% |
vhdl | 847 | 1,010 | 6 | 9 | 0% | 0% |
Here are the top titles for the Minor languages.
For Dummies | Beginning Programming for Dummies |
Addison Wesley | Cocoa |
Pragmatic | Programming Erlang: Software for a Concurrent World |
Manning | Groovy in Action |
Osborne/McGraw-Hill | Oracle Database 10g PL/SQL Programming |
Immaterial Programming Languages — 1-999 units in 2007
The following languages all sold between 1 and 999 units in Q1 ’07. These are what I am considering the Immaterial programming languages.
*Immaterial* | U N I T S | T I T L E S | M A R K E T S H A R E | |||
Language | 2006 Units |
2007 Units |
2006 Titles |
2007 Titles |
06Mkt Share |
07Mkt Share |
rpg | 804 | 755 | 4 | 3 | 0% | 0% |
alice | 64 | 751 | 1 | 2 | 0% | 0% |
f# | – | 698 | 2 | 2 | 0% | 0% |
cobol | 714 | 620 | 3 | 6 | 0% | 0% |
directx | 1,854 | 606 | 1 | 1 | 0% | 0% |
dsl | – | 262 | 1 | 1 | 0% | 0% |
delphi | 586 | 126 | 3 | 3 | 0% | 0% |
jcl | 109 | 83 | 1 | 1 | 0% | 0% |
idl | 20 | 73 | 1 | 1 | 0% | 0% |
realbasic | 814 | 73 | 2 | 2 | 0% | 0% |
ada | 67 | 71 | 4 | 4 | 0% | 0% |
cl | – | 54 | – | 1 | 0% | 0% |
fortran | 49 | 50 | 2 | 3 | 0% | 0% |
ocaml | 169 | 38 | 1 | – | 0% | 0% |
e | – | 33 | – | 1 | 0% | 0% |
javafx | – | 29 | – | 1 | 0% | 0% |
awd | 11 | 23 | 1 | 1 | 0% | 0% |
m | 13 | 10 | 1 | 1 | 0% | 0% |
maxscript | – | 9 | – | 1 | 0% | 0% |
The noticeable trend with the Immaterial languages is the decline of DirectX and positive growth of F# and Alice.
Here are the top titles for the Immaterial languages.
Sams | Managed DirectX 9 Kick Start: Graphics and Game Programming |
Mc Press | The Modern RPG IV Language |
APress | Foundations of F# |
Sams | Sams Teach Yourself COBOL in 24 Hours |
Prentice Hall | Learning to Program with Alice |
Lastly, the following languages were Inactive for 2007. That means they did not sell enough units to make it into any weekly Top 3000 report. And here is the list: labview, lingo, ml, mumps, net languages, oopic, opl, pascal, pda languages, pl/1, qbasic, rexx, s, smalltalk, spark, squeak, unrealscript, windows script.
So this concludes the Languages view of the State of the Computer Book Market. We hope you enjoyed it. Pay attention to this space, as we 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.