icon Rails 的相关感想

哪种框架将来有前途

继续上一章的哪种编程语言将来有前途,这章想探讨一下关于 Web应用程序框架的趋势。

当然还是拿我们的 Ruby on Rails 作为比较的中心。

比较的对象如下(括号内是框架记述的语言):

  • Apache Struts (Java)
  • JSF (Java)
  • Spring Framework (Java)
  • JSF (Java)
  • .NET Framework (C# 等)
  • Zend Framework (PHP)
  • Symfony (PHP)
  • CakePHP (PHP)
  • Mojavi (PHP)
  • Django (Python)
  • Catalyst (Perl)
  • Merb (Ruby)
  • ColdFusion (CFML 等)

Merb将在接下来的2.0版本里,和Ruby on Rails合并。

这章像TIBOE一样的标准是不存在的。

首先从 Google Trends 开始吧。

Google Trends

使用'ruby on rails' 作为Ruby on Rails的关键字。

实际上一般都用 'rails''ror' 等进行搜索的,所以我认为结果稍微偏低。

要注意一下框架名称也会与普通名词或人名相重,所以有时候光比较绝对的数值是没有意义的。

vs. Apache Struts

trends-rails-struts

'struts' 比较搜索量。

strut ,也有意思是“支柱”的普通名词,也许这个出现的也有点多,但误差不会太大的吧。

2004年以后,搜索量有长期下降的趋势。

vs. Spring Framework

trends-rails-spring

Spring Framework 1.0的发布是在2004 年 3 月,我想图表主要显示了查找Spring Framework的人数。

以2006年为顶点,搜索量开始一点点下降。

但是,随着这个框架的普及,仅仅与 'spring' 相关的网页也应该出现热潮,也许会有影响。

vs. JSF

trends-rails-jsf

JSF (JavaServer Faces) Specification 1.0的发布是在2004 年 3 月。

因为没有其它的广为熟知的'jsf' 的略语,我想图表是非常可信的。

2006-2007年是顶点,到了2008年搜索量有所减少,是和Rails 十分相似的曲线。

但是,新闻参考数比Rails多出很多。

vs. .NET Framework

trends-rails-dotnet

2004年以后,搜索量飞速上升。

Microsoft好像取得了巨大的成功啊。

到2008年末,搜索量是Ruby on Rails 的6 倍,但是这恐怕是因为用 '.net' 检索的人很多,用绝对值比较是没有意义的。

而且,也应注意到.NET Framework 在Web开发以外也能被使用。

vs. Zend Framework

trends-rails-zend

Zend Framework是和后面要说的Symfony以及 CakePHP同时问世的,基于PHP的web 框架的一种。

搜索量在接近2008年的时候缓慢的上升。

vs. Symfony

trends-rails-symfony

2006年问世以来就飞速发展着。

Symfony是从 symphony 构词而来的,因此图表作为绝对值来说也是很据可信度的。

vs. CakePHP

trends-rails-cakephp

和Symfony差不多的轨迹。

vs. Mojavi

trends-rails-mojavi

这个框架好像就没出现过热潮。

vs. Django

trends-rails-django

django 这个词是从吉普赛人的爵士乐Django Reinhardt而来的。

作为漫画《ONE PIECE》中的一个人物名称,本来就具有一定的搜索量。

作为Web开发框架的Django是在2005 年 7 月发行的。

图表1.00上面的部分如果对应搜索框架的人数的话可以假定。

在这个假定下,可以说2006年以后是飞速增长的。

而且,要特别注意从2007年开始新闻参考数也在增加。

vs. Catalyst

trends-rails-catalyst

catalyst 有“触媒”的意思,自然被搜索的很频繁。

因此,我用'catalyst framework' 进行搜索。

绝对值的比较没有意义。

图表数据过低甚至不能看清楚,但至少可以看出2006年面世后,2007年开始搜索量便逐渐下跌了。

vs. Merb

trends-rails-merb

现在用merb 搜索的话,相关的网页便大量涌现出来。

但是,考虑到Merb0.5是在2008年1月后发行的话,就要考虑2005-2007 年的搜索是针对其它语言的。

按国家的搜索量调查了了一下,加拿大大大超出其它国家,这在加拿大大概是一个意思的词吧。

在2008年第4个半期,新闻参考数激增。

考虑和Rails合并的消息是在2008 年 12 月,结果未必就是这样。

Merb1.0在11月的BubyConf 的发表是个契机吗?

但是,仅看图表的话是可以说势头迅猛的。

vs. ColdFusion

trends-rails-coldfusion

最后说Adobe的框架ColdFusion。这是老一代的框架了。

有长期衰退的趋势。

需求人数的趋势(indeed.com)

接下来根据indeed.com的 Job Trends 来分析对人才的需求。

Struts, Spring, JSF

job-struts-spring-jsf-rails

只输 'spring' 的话出来太多无关信息,所以我用 'spring framework' 进行搜索

对Struts人才的需求涨停了。

其它三个则沿着差不多的轨迹,顺利地发展着。

.NET Framework

job-dotnet-rails

'.net framework''ruby on rails' 比较。

Zend Framework, Symfony, CakePHP、Mojavi

job-zend-symfony-cakephp-mojavi-rails

指定PHP框架的需求似乎还是很少。

并不是一定意味着在PHP业界不使用框架,但是与Rails的差别还是给人留下了深刻印象。

为了突出框架间的差异显著,下面的图表去掉了Rails。

job-zend-symfony-cakephp-mojavi

大概是2007年的夏天,指定PHP框架的招聘急速上升。

从这个图表来看,可以知道PHP方面这3个框架在激烈地竞争。

Catalyst

job-zend-catalyst

catalyst framework 做了图表。

基本上没有和Rails作比较,为了参考,我试着和 zend framework 作了比较。

产业界需要有限。

Django

job-django-rails

与Rails相比有些落后,但是Django的劳动市场也正在缓缓上升。

ColdFusion

job-coldfusion-rails

虽然ColdFusion在Google Trends上有长期低落的倾向,但也维持着稳定的需求人数。

但是,到了2008年末,Rails开始反超。

结论

给我很深印象的是.NET Framework的成功。

编程语言C#的人气在这些年被证实有了很大的提高。

但是,因为.NET Framework也被使用在了客户端程序和嵌入式设备的开发中,作为Web框架取得了怎样的成功,并不是很清楚。

在Java业界中,JSF和Spring Framework等新的框架斗志昂扬,但还达不到“席卷”这样的程度。Struts可能太成功了。或者说是,后继者的杂乱突出了它的成功。

在轻量级语言(Perl, PHP, Python, Ruby)的框架中,果然还是可以说Ruby on Rails的人气最高。

但是,从搜索量的变化来看,通常所说的hype结束了。我有点担心。

另一方面,从需求人数的变化来看,感觉已开始被产业界接纳。

在PHP业界,Web框架才刚开始正式被采用。

Zend Framework, Symfony以及CakePHP展开着不分胜负的赛跑。

PHP业界内部的竞争,既有好处也有坏处不是吗。

它成为提升品质的原动力,但是产业界的工程师们可能都等着看结果。

关于Perl 的Catalyst,还没有看到形成热潮的迹象。

Python 的框架 Django在短时间内发展迅速。

Python在程序员的数量方面比Ruby有利,今后也可能会威胁Rails。

(2009/01/11)