第四部分:编程语言表现
在第四部分中,我们看看编程语言,并更进一步看看每个语言领域。
整体来讲,编程语言的市场2010年与2009年相比,下降了6.27%。2009年的销售册数为6,303,125,而2010年味5,931,452,减少了371,673册。Java在销售册数方面增长最大,2010年比2009年增加了28,633册;而PHP的下降最多,2010年比2009年销售册数减少了38,614。
在开始深入分析语言之前,先说明一下“语言维度”。当我们按照语言维度来分类图书的时候,我们按照图书的代码示例所使用的语言来分类。因此,使用Java进行Flash编程的图书,会分入到Flash五级领域,但是,其语言维度将会是Java。类似的,O’Reilly的Head First Design Patterns一书中的示例是用Java编写的,因此,它在语言维度上标记为Java。
2009年和2010年是编程语言领域图书销售最糟糕的两年。下面的图中,没有包含面向方法的、关于项目管理、关于消费者操作系统的图书,也没有包含那些不涉及语言内容的图书。因此,这和本报告第一部分的市场整体视角是不同的。在下图中可以看到,2010年和2009年的每周销量,都分别低于前一年度。
2008年,我提到C#作为语言超越了Java。但是,Java在2009年反弹并且在2010年复苏,现在成为图书销售方面排名第一的语言。从下面的2010年前20名语言图表中,可以看到,Java在语言中大大领先,Objective-C进入了第三位,紧随在C#之后。
2010 语言市场占有率
看看下面的表,就知道哪种语言在2004年到2010年有这最大的销量。较新的语言,或者“过时”的语言,可能没有表示出来,因为它们很少有机会产生较为显著的销量,而进入在我们的数据集。这张图基本上反映了这段时期每种语言图书的总销售册数。前10名的语言,在7年之间,产生了7,655,365册的销售;而11到20名的语言,在同样的时期内,销售了1,919,691册。前10名的语言占这段时期总销售册数的80%。可以看到,2009年之前,C#稳定增长;而同一时期,Java正在下降。除了Java,VBA、VBScript、SAS、JavaScript、C++和C在2009年到2010年都有所上升。另外的13种语言在2009年到2010年呈现下降的趋势。
编程语言的Treemap视图如下
上图比较了2010年第四季度和2009年第四季度的情况,我们注意到有很多亮绿色的区域,有几个深绿色的区域,还有一些黑色和红色区域。Objective-C下降了12%的主要原因是,其2009年的销量很大,这很难继续保持。在Treemap视图上,该语言从一个小斑点成长为占据相当大的一个方块。
先来看看对语言的分组,我们按照2004年到2010年这些语言的图书的总销售册数来分组。在下表中可以看到,只有中等偏大的组在2010年是增长的,而其他的组都下降了。带动中等偏大领域增长的语言是R。有趣的一点是,这一统计语言与我们在Strata大会上讨论的那些语言很类似。也就是说,R、SAS、Matlab、Labview、Mathematica和SPSS综合起来,销售册数增长了49 504,增长率达到了惊人的102.87%。Google首席经济学家Hal Varian关于统计学将是未来最热门职业的言论,激励着开发者去学习这些语言。
分组 | 销售册数范围 | Y2010 销售册数 | Y2009 销售册数 | Y2010 品种数 | Y2009品种数 | 10占有率 | 09占有率 |
特大 | 50,000 — 200,000 | 1,051,945 | 1,069,762 | 1,590 | 1,433 | 75.96% | 75.00% |
较大 | 10,000 — 49,000 | 227,306 | 254,587 | 450 | 456 | 16.41% | 17.85% |
中等偏大 | 3,000 — 9,999 | 53,152 | 44,909 | 104 | 85 | 3.84% | 3.15% |
中等偏小 | 1,682 — 2,999 | 20,818 | 20,965 | 61 | 58 | 1.50% | 1.47% |
较小 | 1,000 — 1,680 | 13,000 | 15,517 | 46 | 31 | 0.94% | 1.09% |
最小 | 399 — 999 | 6,299 | 6,350 | 25 | 19 | 0.45% | 0.45% |
其他 | < 399 | 3,370 | 6,368 | 49 | 43 | 0.24% | 0.45% |
为了以更加便于阅读的格式来分组和展示这些信息,我们将按照如下的标题方式,来展示个语言分类:
*特大* | 销售册数 | 品种数 | 市场占有率 | |||
1. 语言 | 2. 2010 销售册数 | 3. 2009 销售册数 | 4. 2010品种数 | 5. 2009品种数 | 6. 10年市场占有率 | 7. 09年市场占有率 |
1.语言的名称或缩写
2.2010年销售册数
3. 2009年销售册数
4.2010年Bookscan 3000中的品种数
5.2009年Bookscan 3000中的品种数
6.2010年市场占有率
7. 2009年市场占有率
下表包含了特大类语言的数据。可以看到,前10种语言中的5种在2010年是增长的,Java一马当先,逆转之势给人印象深刻。你可能还记得,在以前的报告中,Java的销售册数稳定下降,至少持续到2009年,在2010年继续下滑。Android开发带来了Java的复苏?即便Objective-C在2010年相比2009年下降了,但是,它进入前10名,还是令人惊讶的。该语言此前的排名在20位左右。JavaScript继续稳定地增长,巩固了其作为Web编程最常用/重要的语言的地位。
特大编程语言 — 2010年销售50,000 — 195,000册
*特大* | 销售册数 | 品种数 | 市场占有率 | |||
语言 | 2010销售册数 | 2009销售册数 | 2010品种数 | 2009品种数 | 10年市场占有率 | 09年市场占有率 |
Java | 194,520 | 165,887 | 361 | 332 | 13.90% | 11.54% |
C# | 153,469 | 156,043 | 263 | 230 | 10.97% | 10.86% |
Objective C | 136,711 | 141,608 | 89 | 51 | 9.77% | 9.85% |
JavaScript | 131,850 | 115,107 | 169 | 157 | 9.42% | 8.01% |
PHP | 106,952 | 145,566 | 163 | 152 | 7.64% | 10.13% |
C/C++ | 94,268 | 93,067 | 192 | 184 | 6.74% | 6.48% |
VBA | 61,108 | 48,507 | 68 | 58 | 4.37% | 3.38% |
ActionScript | 60,578 | 83,017 | 96 | 85 | 4.33% | 5.78% |
Python | 58,905 | 60,700 | 94 | 84 | 4.21% | 4.22% |
SQL | 53,584 | 60,260 | 95 | 100 | 3.83% | 4.19% |
如下是特大语言中的领先图书。注意,不管是按照销售册数或销售码洋排序,顺序基本一样。只不过按照销售额的话,WordPress这本书会跌出前5,而Addison-Wesley的PHP and MySQL Web Development成为第5名。
O'Reilly | |
O'Reilly | |
Wrox | |
Addison-Wesley | Programming in Objective-C 2.0 中文版《Objective-C 2.0程序设计(原书第2版)》由华章公司出版(国内第一本2.0图书,cocoachina版主鼎力推荐) |
Dummies |
较大编程语言 — 2010年销售10,000 — 49,999册
还要注意,C、Powershell、ShellScript和VBscript这样的较大语言都是增长的。整体来讲,这些语言的销售册数,在2010年比2009年减少了27000册。这相当于较大语言类的12%的下降。
*较大* | 销售册数 | 品种数 | 市场占有率 | |||
语言 | 2010销售册数 | 2009销售册数 | 2010品种数 | 2009品种数 | 10年市场占有率 | 09年市场占有率 |
.NET Languages | 44,958 | 57,286 | 82 | 78 | 3.25% | 4.02% |
Visual Basic | 42,225 | 55,574 | 88 | 94 | 3.05% | 3.90% |
C | 36,638 | 34,820 | 91 | 83 | 2.65% | 2.44% |
Ruby | 20,004 | 29,977 | 48 | 63 | 1.44% | 2.10% |
Powershell | 18,652 | 12,124 | 26 | 19 | 1.35% | 0.85% |
Transact SQL | 17,507 | 17,601 | 28 | 29 | 1.26% | 1.23% |
Perl | 15,606 | 20,030 | 32 | 34 | 1.13% | 1.40% |
Pl/Sql | 10,670 | 10,974 | 24 | 26 | 0.77% | 0.77% |
Shell Script | 10,720 | 7,482 | 20 | 17 | 0.77% | 0.52% |
VBScript | 10,326 | 8,719 | 11 | 13 | 0.74% | 0.61% |
较大语言中领先的图书如下。
Prentice Hall | 中文版《C程序设计语言(第2版·新版)》(09年度畅销榜TOP50)(08年度畅销榜TOP50)、英文影印版《C程序设计语言(第2版)》都由华章公司出版 |
Prentice Hall | Practical Guide to Linux Commands, Editors, and Shell Programming |
O'Reilly | |
Morgan Kaufman | Programming Massively Parallel Processors: A Hands-on Approach (C language) |
Pragmatic |
中等偏大编程语言——2010年销售3,000 — 9,999册
这个领域中,统计语言表现相当不错。正如上面提到的,这些语言在2010年比2009年增长了102.87%。最显著的增长是R语言的8种图书,R in a Nutshell领衔这个领域。
*中等偏大* | 销售册数 | 品种数 | 市场占有率 | |||
语言 | 2010销售册数 | 2009销售册数 | 2010品种数 | 2009品种数 | 10年市场占有率 | 09年市场占有率 |
SAS | 9,035 | 7,974 | 27 | 21 | 0.65% | 0.56% |
SPSS | 8,973 | 6,818 | 16 | 10 | 0.65% | 0.48% |
MatLab | 7,857 | 6,752 | 22 | 17 | 0.57% | 0.47% |
R | 7,800 | 2,817 | 15 | 12 | 0.56% | 0.20% |
Processing | 6,996 | 6,038 | 8 | 6 | .51% | .42% |
Shell Script | 6,073 | 7,116 | 19 | 16 | .44% | .50% |
Basic | 5,540 | 5,277 | 7 | 9 | .40% | .37% |
Lua | 4,677 | 5,570 | 7 | 6 | .34% | .39% |
Assembly | 4,391 | 4,359 | 18 | 14 | .32% | .31% |
MDX | 3,890 | 4,838 | 8 | 8 | 0.28% | 0.34% |
UnrealScript | 3,028 | 2,440 | 3 | 3 | .22% | .17% |
中等偏大语言的领先图书是:
O'Reilly | |
Prentice Hall | Using SPSS for Windows and Macintosh: Analyzing and Understanding Data |
SAS Press | |
Open University Press | SPSS Survival Manual: A Step by Step Guide to Data Analysis Using SPSS for Windows |
Sams | Mastering Unreal Technology, Volume I: Introduction to Level Design with Unreal Engine 3 |
中等偏小——2010年销售1,682 — 2,999册
这个领域中,函数式语言有所增长,例如,F#、Scala和Lisp。这些语言表现出51.38%的年增长率,2010年销售了7,648册,而2009年销售了3,718册。
*中等偏小* | 销售册数 | 品种数 | 市场占有率 | |||
语言 | 2010销售册数 | 2009销售册数 | 2010品种数 | 2009品种数 | 10年市场占有率 | 09年市场占有率 |
F# | 2,905 | 1,095 | 6 | 5 | 0.21% | 0.08% |
Scala | 2,531 | 3,946 | 5 | 5 | 0.18% | 0.28% |
Groovy | 2,452 | 3,972 | 7 | 8 | 0.18% | 0.28% |
Alice | 2,441 | 2,472 | 10 | 9 | 0.18% | 0.17% |
Blitzmax | 1,836 | 2,603 | 2 | 2 | 0.13% | 0.18% |
AppleScript | 1,787 | 3,994 | 4 | 6 | 0.13% | 0.28% |
VHDL | 1,785 | 1,733 | 18 | 15 | 0.13% | 0.12% |
Bash | 1,715 | 183 | 2 | 1 | 0.12% | 0.01% |
Lisp | 1,684 | 309 | 4 | 6 | 0.12% | 0.02% |
LabView | 1,682 | 658 | 3 | 1 | 0.12% | 0.05% |
中等偏小领域的领先图书是:
Prentice-Hall | Learning To Program with Alice 中文版《用Alice学编程(原书第2版)》由华章公司出版 |
Artima | |
No Starch Press | |
Prentice-Hall | |
Manning | Real World Functional Programming: With Examples in F# and C# |
较小语言——2010年销售1,000 — 1,680册
在这个领域中,可以看到10种语言中有6种在2010年销售册数减少。销售册数方面大概有年度20%的下降。亮点是Mathematica的表现,主要是Mathematica Cookbook一书做出了贡献。然而,这个领域是由函数式语言所主导的,尽管这些语言没有显著的增长。
*较小* | 销售册数 | 品种数 | 市场占有率 | |||
语言 | 2010销售册数 | 2009销售册数 | 2010品种数 | 2009品种数 | 10年市场占有率 | 09年市场占有率 |
Mathematica | 1,675 | 900 | 9 | 4 | 0.12% | 0.06% |
Erlang | 1,513 | 2,276 | 3 | 2 | 0.11% | 0.16% |
Scheme | 1,479 | 1,364 | 8 | 7 | 0.11% | 0.10% |
FBML | 1,367 | 2,335 | 5 | 4 | 0.10% | 0.16% |
Clojure | 1,332 | 1,460 | 2 | 1 | 0.10% | 0.10% |
AWK | 1,200 | 1,642 | 2 | 2 | 0.09% | 0.12% |
Nxt-g | 1,172 | 969 | 4 | 1 | 0.08% | 0.07% |