State of the Computer Book Market, part 4 -- The Lanugages
In this fourth post [one, two and three are found here] on the State of the Computer Book Market, I 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%) 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) less units in 2007.
Before I begin to drill in on the languages, I thought it would be best to explain our "language dimension." Our view on languages is not just strictly about programming with a particular language, although we capture those very easily, but that the book being categorized has code examples in a particular language. 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. So with this language dimension information in mind, I am going to add one more grouping before we dive in.
A Treemap view of the 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 I took this screen capture. The trends are still the same, just the preciseness is slightly askew.
In the treemap view below, you will notice a couple of bright green areas -- namely ActionScript and PowerShell. Python, Ruby and C# are green [not bright green] show a nice growth when compared to the 2006 timeframe. Unfortunately what this does not show is the rate of change and a visual reference for the Size of the box. Ruby was a small box last year and is now 8 largest language passing Perl and Python and is now knocking on the door for Visual Basic's spot. Ruby has the second largest unit growth after C# and went from 4% overall market share to 5% and is 4k units off of displacing VB for #7 overall. C# was equally impressive with a 36,811 unit growth or 18.85% growth and 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.
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. It is half of where it was in 2003 only five years later. C# and Javascript are the only two Major languages growing consistently during the past five years.
2007 Market Share
For the sake of grouping and presenting this information in a more readable format, I have classified the categories for the languages in this way:
Category | Q1 07 Unit Range |
Major | 100,000-250,000 |
Mid-Major | 65,000 - 99,999 |
Mid-Minor | 10,000 - 64,999 |
Minor | 1000 - 9,999 |
Immaterial | 1 - 999 |
The tables that I am showing 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 is the "raw" data for 2007 and 2006 for the major languages. As you can see, Ruby is a bright spot for the languages rights now. However, when you see that the number of Ruby titles increased from 7 in 2006 to 23 [ 300%] in 2007 and saw only a 41% unit growth, this only increased Ruby's market share by 2.6%. Sometimes the data behind growth charts reveal that things are not as impressive as they appear on the surface. The "Languages" are a big market and it will take some sustained heavy growth periods to get Ruby higher up on the scale. It may be a little unfair to pick on Ruby as it just made the cutoff of the Major languages threshold, yet it has rapid growth in the last couple of years. The rest of the languages, except for Javascript, are older and established, but all showed declines. (Note: ".Net Languages" refers to books that include both C# and Visual Basic. You could add those numbers to those for either of the other languages, but it is more likely that they should be counted for C#.)
Major Programming Languages
The major languages each sold more than 20,000 units in Q1 '07. These are what I consider the major languages.
*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 | 77,782 | 63,136 | 228 | 206 | 16.13% | 14.29% |
c# | 53,855 | 52,655 | 120 | 116 | 11.17% | 11.92% |
javascript | 34,741 | 48,266 | 40 | 74 | 7.21% | 10.92% |
php | 59,524 | 41,933 | 67 | 78 | 12.35% | 9.49% |
c/c | 53,232 | 41,311 | 185 | 163 | 11.04% | 9.35% |
.net languages | 23,183 | 30,712 | 53 | 70 | 4.81% | 6.95% |
visual basic | 44,401 | 26,385 | 112 | 95 | 9.21% | 5.97% |
ruby | 15,089 | 25,380 | 7 | 23 | 3.13% | 5.74% |
sql | 25,784 | 22,188 | 51 | 56 | 5.35% | 5.02% |
Notice in the table that the top 10 titles [pareto column] typically represent between 30 and 50 percent of the market for that specific language. Two noticeable exceptions are Ruby and C/C . C/C has more titles and is not heavily loaded on the "bestseller" side of things, but rather dispersed among many titles. Ruby on the other hand does not have as many titles, so the top 10 represents a high percent of the language's total titles as well as the units. From a title growth perspective, JavaScript had the largest increase in new titles making the Bookscan list.
Here are the top five titles for the major languages:
Pragmatic | Agile Web Development with Rails |
O'Reilly | JavaScript: The Definitive Guide |
O'Reilly | Ajax on Rails |
O'Reilly | Head First Java |
O'Reilly | Head First Design Patterns |
Mid-Major Programming Languages
The following languages all sold between 2,000 - 19,999 units in Q1 '07. These are what I am considering the mid-major languages.
*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 |
actionscript | 16,769 | 18,531 | 29 | 26 | 3.48% | 4.19% |
vba | 21,420 | 16,717 | 47 | 43 | 4.44% | 3.78% |
perl | 14,415 | 10,308 | 41 | 33 | 2.99% | 2.33% |
python | 9,170 | 9,909 | 22 | 23 | 1.90% | 2.24% |
transact sql | 2,878 | 5,846 | 7 | 13 | 0.60% | 1.32% |
vbscript | 3,022 | 3,308 | 7 | 7 | 0.63% | 0.75% |
shell script | 4,294 | 2,935 | 12 | 10 | 0.89% | 0.66% |
basic | 3,029 | 2,341 | 6 | 5 | 0.63% | 0.53% |
pl/sql | 2,207 | 2,033 | 13 | 12 | 0.46% | 0.46% |
You'll notice in the Mid-Major languages that Python and Actionscript are the two languages that are showing growth when you compare the 2006 and 2007 first quarter. Python achieved its growth by adding one more title to the list and ActionScript grew with three fewer titles. In this language area, there are some languages that the top ten titles represent all of the titles for the language -- Perl, VBScript, Shell Script, and PL/SQL.
Here are the top titles for the mid-major languages.
O'Reilly | Learning Perl |
For Dummies | Excel VBA Programming For Dummies |
For Dummies | Excel 2003 Power Programming with VBA |
O'Reilly | Learning Python |
Microsoft Press | Microsoft VBScript Step by Step |
Mid-Minor Programming Languages
The following languages all sold between 1,000 - 1,900 units in Q1 '07. These are what I am considering the mid-minor languages.
*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 |
windows script | 3,771 | 1,859 | 7 | 5 | 0.78% | 0.42% |
powershell | 527 | 1,827 | 1 | 5 | 0.11% | 0.41% |
groovy | - | 1,552 | - | 3 | 0.00% | 0.35% |
objective c | 1,784 | 1,424 | 6 | 5 | 0.37% | 0.32% |
assembly | 1,734 | 1,049 | 11 | 10 | 0.36% | 0.24% |
The noticeable trend with the mid-minor languages is that Groovy came from nowhere and has now sold 1500 copies in the first quarter of 2007. Also Powershell titles are starting to nudge the needle a bit.
Here are the top titles for the mid-minor languages.
Manning | Windows PowerShell in Action |
Manning | Groovy in Action |
Microsoft Press | Microsoft Windows Scripting Self-Paced Learning Guide |
Wiley | Reversing: Secrets of Reverse Engineering |
Course Technology | Microsoft Windows Powershell Programming for the Absolute Beginner |
Minor Programming Languages
The following languages all sold between 100 - 999 units in Q1 '07. These are what I am considering the minor languages.
*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 |
sas | 574 | 999 | 7 | 10 | 0.12% | 0.23% |
applescript | 1,053 | 894 | 6 | 4 | 0.22% | 0.20% |
mdx | 516 | 764 | 4 | 3 | 0.11% | 0.17% |
abap | 538 | 624 | 1 | 2 | 0.11% | 0.14% |
latex | 826 | 594 | 4 | 4 | 0.17% | 0.13% |
awk | 889 | 580 | 2 | 2 | 0.18% | 0.13% |
lisp | 759 | 557 | 4 | 4 | 0.16% | 0.13% |
lua | 138 | 509 | 2 | 3 | 0.03% | 0.12% |
tcl | 612 | 398 | 2 | 2 | 0.13% | 0.09% |
scheme | 331 | 371 | 4 | 5 | 0.07% | 0.08% |
haskell | 47 | 345 | 2 | 4 | 0.01% | 0.08% |
directx | 552 | 310 | 1 | 1 | 0.11% | 0.07% |
mysql spl | - | 282 | - | 1 | 0.00% | 0.06% |
mel | 541 | 260 | 3 | 2 | 0.11% | 0.06% |
vhdl | 201 | 225 | 3 | 2 | 0.04% | 0.05% |
rpg | 52 | 210 | 1 | 2 | 0.01% | 0.05% |
cobol | 171 | 168 | 1 | 3 | 0.04% | 0.04% |
c | 45 | 114 | 2 | 6 | 0.01% | 0.03% |
The noticeable trend in the minor languages is that Haskell is up, although there were two additional Haskell titles added to the space in Q1 '07. The four Haskell titles are averaging fewer than 30 copies per month.
Here are the top titles for the minor languages.
Wrox | Professional SQL Server Analysis Services 2005 with MDX |
O'Reilly | sed & awk |
Prentice Hall | Practical Programming in Tcl and Tk |
O'Reilly | AppleScript: The Definitive Guide |
Addison-Wesley | ABAP Objects: Introduction to Programming SAP Applications |
Irrelevant Programming Languages
The following languages all sold between 1 and 99 units in Q1 '07. These are what I am considering the irrelevant programming languages.
*Irrelevant* | 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 |
alice | 64 | 71 | 1 | 2 | 0.01% | 0.02% |
delphi | 345 | 48 | 3 | 1 | 0.07% | 0.01% |
ocaml | - | 38 | - | 1 | 0.00% | 0.01% |
jcl | 30 | 33 | 1 | 1 | 0.01% | 0.01% |
realbasic | - | 31 | - | 1 | 0.00% | 0.01% |
ada | 26 | 11 | 2 | 1 | 0.01% | 0.00% |
labview | 148 | - | 1 | - | 0.03% | 0.00% |
lingo | 30 | - | 1 | - | 0.01% | 0.00% |
squeak | 20 | - | 1 | - | 0.00% | 0.00% |
rexx | 17 | - | 1 | - | 0.00% | 0.00% |
fortran | 16 | - | 1 | - | 0.00% | 0.00% |
Here are the top titles for the irrelevant languages. Incidentally, each of these titles has sold less than 60 units each in the first quarter of 2007.
Prentice Hall | Learning to Program with Alice |
Wordware | Inside Delphi 2006 |
Apress | Practical OCaml |
Mike Murach | Murach's OS/390 and z/OS JCL |
Apress | Beginning REALbasic: From Novice to Professional |
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 quarterly. Now that I have all the queries, spreadsheets, pivot-tables and systems down, I 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 I will see what I can do.