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.
A Treemap view of the Programming Languages
Overall the Q1 ’07 market for programming languages was down (9.10%) when compared with Q1 ’06. There were 482,079 units sold in Q1 ’06 versus 441,850 units sold in Q1 ’07.
In the treemap view below, you will notice a couple of bright green areas — namely Ruby and Transact SQL. JavaScript and Python, which are also green [not bright green] show a nice growth when compared to the Q1 ’06 timeframe. Actionscript, VBScript and .Net Languages are the other languages showing growth in Q1 ’07. The rest of the languages were either flat or down.
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. 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 | 22,000 – 65,000 |
Mid-Major | 2,000 – 19,000 |
Mid-Minor | 1,000 – 1,900 |
Minor | 100 – 999 |
Irrelevant | 0 – 99 |
Now let’s dive into this treemap and take a closer look at the languages. 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 | P A R E T O | ||||
1. Language |
2. 2006 Units |
3. 2007 Units |
4. 2006 Titles |
5. 2007 Titles |
6. 06Mkt Share |
7. 07Mkt Share |
8. Top 10 | 9. 20% |
- Name or short name of the language
- Units sold in Q1 ’06
- Units sold in Q1 ’07
- Number of Titles making Bookscan 3000 in 2006
- Number of Titles making Bookscan 3000 in 2007
- 2006 Market Share
- 2007 Market Share
- Percent of total Language market for the Top 10
- 20% of the Titles make what percent of the Total
The pareto principle is roughly stated as the 80/20 rule where 20% of an economic distribution makes up 80% of the total. So in the case of computer books, that would mean that 20% of the titles in a particular language area would make about 80% of the total units. I also think it is important to look at the Top 10 titles and see what percentage they make of the total area being measured. Some markets are dominated by one or two books. The pareto is only useful when looking at the Major and Mid-Major languages because the other languages are typically one or two book markets. I have not included any pareto percentages on those smaller market language areas.
This chart shows the four-year trend for the Major programming languages. Red is used to highlight 2007.</p
The following table is the “raw” data for Q1 ’07 and Q1 ’06 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 | P A R E T O | ||||
Language | 2006 Units |
2007 Units |
2006 Titles |
2007 Titles |
06Mkt Share |
07Mkt Share |
Top 10 | 20% |
java | 77,782 | 63,136 | 228 | 206 | 16.13% | 14.29% | 34% | 68% |
c# | 53,855 | 52,655 | 120 | 116 | 11.17% | 11.92% | 33% | 54% |
javascript | 34,741 | 48,266 | 40 | 74 | 7.21% | 10.92% | 50% | 58% |
php | 59,524 | 41,933 | 67 | 78 | 12.35% | 9.49% | 53% | 64% |
c/c | 53,232 | 41,311 | 185 | 163 | 11.04% | 9.35% | 29% | 59% |
.net languages | 23,183 | 30,712 | 53 | 70 | 4.81% | 6.95% | 51% | 59% |
visual basic | 44,401 | 26,385 | 112 | 95 | 9.21% | 5.97% | 41% | 58% |
ruby | 15,089 | 25,380 | 7 | 23 | 3.13% | 5.74% | 82% | 62% |
sql | 25,784 | 22,188 | 51 | 56 | 5.35% | 5.02% | 49% | 61% |
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 | P A R E T O | ||||
Language | 2006 Units |
2007 Units |
2006 Titles |
2007 Titles |
06Mkt Share |
07Mkt Share |
Top 10 | 20% |
actionscript | 16,769 | 18,531 | 29 | 26 | 3.48% | 4.19% | 88% | 50% |
vba | 21,420 | 16,717 | 47 | 43 | 4.44% | 3.78% | 59% | 52% |
perl | 14,415 | 10,308 | 41 | 33 | 2.99% | 2.33% | 100% | 45% |
python | 9,170 | 9,909 | 22 | 23 | 1.90% | 2.24% | 81% | 53% |
transact sql | 2,878 | 5,846 | 7 | 13 | 0.60% | 1.32% | 99% | 50% |
vbscript | 3,022 | 3,308 | 7 | 7 | 0.63% | 0.75% | 100% | 45% |
shell script | 4,294 | 2,935 | 12 | 10 | 0.89% | 0.66% | 100% | 45% |
basic | 3,029 | 2,341 | 6 | 5 | 0.63% | 0.53% | 39% | 58% |
pl/sql | 2,207 | 2,033 | 13 | 12 | 0.46% | 0.46% | 100% | 20% |
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 |
Language | 2006Units | 2007Units | 2006titles | 2007Titles | 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.