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:

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.

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.

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.

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.

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.