icon Rails 的相关感想

哪种编程语言将来有前途

哪种编程语言将来有前途?

IT界人士没有谁不关心这个问题的吧。

我想在统计数据的基础上将我的专业 Ruby 和其它的语言进行一下比较。

用来比较的对象是在 Web 开发方面经常使用的 JavaPHPC#PythonPerl


首先从有名的 TIOBE Index 的数据(2009 年 1 月)开始。

  • Java (19.022%) (-1.83%) 1位→1位
  • PHP (8.882%) (-0.31%) 4位→5位
  • C# (5.609%) (+0.75%) 8位→6位
  • Python (4.731%) (-0.81%) 6位→7位
  • Perl (4.303%) (-0.94) 7位→8位
  • Ruby (3.149%) (+0.80%) 11位→11位

括号中显示了一年一来市场占有率的变化。

光看这个数字,只有 C# 和 Ruby 增加,说不定会感觉我专门选择了有利的数据。

注意一下,Ruby 在 2007 年 1 月是 10 位,2007 年 11 月是 9 位,排名有所下降。

但是,从2004年开始看的话,情况大不一样。

  • Java (19.022%) (-4.55%) 1位→1位
  • PHP (8.882%) (+2.57%) 6位→5位
  • C# (5.609%) (+3.81%) 7位→6位
  • Python (4.731%) (+3.61%) 9位→7位
  • Perl (4.303%) (-5.30%) 4位→8位
  • Ruby (3.149%) (+2.99%) 23位→11位

在这五年里份额增长的是C#、Python、Ruby、还有 PHP。

虽然不在我的比较范围之内,Delphi (+2.50%)、JavaScript (+1.61%)和Basic (+0.61)这几个的份额也在增加。Basic包含了 Visual Basic 。


接下来是Google Trends

被用来作为搜索关键字的“走势”,当然就像是编程语言受关注度的风向标。

用“ruby”作为关键字的话,结果会包含对宝石 ruby 和人名 ruby 的搜索,所以用 "programming ruby" 的搜索量来比较。

为求公平,其它语言也采用 "programming xxx" 的搜索量。

以下蓝色的图表是 Ruby 的搜索量,红的图表是其它语言的搜索量。

下层的小表是新闻参考数。

Ruby vs. Java

trend-ruby-java

Ruby vs. PHP

trend-ruby-php

Ruby vs. C#

trend-ruby-csharp

Ruby vs. Python

trend-ruby-python

Ruby vs. Perl

trend-ruby-perl

网上 Ruby 热的兴起是在2005年,在2006年达到顶峰后开始有所下降。

但搜索量是否真的减少尚存疑问。

2006年开始,由于编程语言 Ruby 的知名度提高,即使不加 "programming" 也可能马上就搜到。

上面的图表是以全世界为对象的。

以日本为对象比较Java, PHP, C#, Perl, Ruby的图表如下:

trend-languages-japan

蓝色的是 Java,红色是 PHP、黄色是 C#、緑色是 Perl、紫色是 Ruby。

只使用了语言名称做关键字如“java”。

Google Trends 只能同时显示5个图表,就省略了 Python 。在日本,Python 的搜索量大概是 Ruby 的一半。


再看一下商业方面的统计吧。

使用求职网站indeed的 Job Trends 来比较看看。

job-java-csharp-ruby

job-php-python-perl-ruby

我对这个图表很感兴趣。

  • 在TIOBE上Java的使用量是C#的4倍,需求人数却只有2倍。
  • 在TIOBE上C#和Ruby的份额没有什么大的差别(大概1.8倍),需求人数C#却力压Ruby。
  • 在TIOBE上PHP的使用量是Perl的2倍,Perl的需求人数却比PHP多很多。

C# 的需求人数大大超出了其在 TIOBE 上显示的市场份额,恐怕这是因为 C# 实际上是微软.NET Framework 的御用语言,很少由于爱好研究而被使用的吧。

而Perl对过去制作的软件进行功能追加以及保守的需要意味着它还未衰退。

掌握“流行”编程语言的知识未必与职位的确保挂钩啊。

但是,用2005 年 1 月开始的相对值表示图表的画法,就成了这样。

job-java-csharp-ruby-relative

job-php-python-perl-ruby-relative

对 Ruby 程序员的需求确实增加了。

至少在英语圈是这样。


对IT工程师来说,选择一门编程语言作为自己的专业是十分重要的。

重新学习一门新的编程语言并不是那么简单的事。

单单理解语法的话还可能很快完成,但只凭这个是不可能有效率地完成软件的开发的。

不同的语言都有其 ecosystem

必须掌握工具、程序库的搜索方法和使用方法,还必须习惯开发环境和安装顺序。

我认为要写出流畅的代码,即使存在个体差别,至少也需要大概3年的时间。

令人烦恼的是,据说受到技术员欢迎的编程语言和有商业市场的编程语言差异有不少。

新的编程语言被商界接受要花上几年到十几年的时间,还不能保证一定能被接受。

另外,对已在产业界盛行许久的编程语言的程序员的需求,经过了很长时间也没见衰退的迹象。

总之,对于IT工程师来说,编程语言的学习是很大的投资。

不管从短期还是中长期来看,对情况进行清楚的分析都是很重要的。

(2009/01/10)