Jeff的
企业级Ruby的文章非常好,提供了很多有用的信息。但是最近的工作经历让我思考凡是加上“企业级”的东西,都不仅仅是技术的问题。
先说技术的问题。从技术角度看,“企业级”根本不是个问题:
Q: What the hell is "Enterprise Ruby" anyway?
A: Yet another 'stack' of crap so complex that any salesperson can use Steak and Strippers to
easily sell it to management thanks to the bikeshedding effect.
-- Zed Shaw (author of Mongrel) at QCon 2007
当然,其实还是有些问题的,Jeff说得很清楚了,但我想说还不够,例如:
- single sige on
- commercial support for database driver
- dababase connection pool
- scalability (Multi-Connection would be an solution, but it takes time, and it takes more time to convince client)
- performance (you can NOT say RoR beats Java for ALL kinds of application on ALL platform. We all know that for data-driven application, the impact of programming language is insignificant, it's the data-manipulations that matter.)
技术上讲,我丝毫不怀疑RoR will beat Java in ALL aspects,但就是我开头说得“企业级”的东西,不仅仅是“新企业”,不仅仅是技术:
- 已经投资买了用了WL(大到Cluster,中到App Server,小到Express)这么些年了,你叫换掉?
- 已经“培养了”(说“习惯了“更贴切)这么些WL的dev, admin了,重新学过?上哪儿培训去?
- 这JDBC连接Oracle,DB2这么些年了,你叫改用open sourced驱动?
- 这一大!帮Java甚至VB dev,你叫他们RoR去?
- 真正能谈的起”企业级计算“的企业都不在乎钱,因为钱的问题讨论企业级计算方案的都不是在做企业级计算。企业级计算关心的不仅仅是访问量,更是稳定性。银行,保险,证券。和这些企业谈论开源……需要很多:数据,数据,还是数据:
- 性能数据:用了这么些年的IBM服务器 + AIX,RoR在上边性能如何?
- 成本数据:需要多少台服务器?
退一步讲,都说LAMP好,可是能玩的起企业计算的企业(银行、保险、证券等)有几家用LAMP?
OK,共存是王道:Java继续backend + legacy system,RoR frontend + new system,但:
- Web Service。性能?
- JRuby。性能?稳定性?Scalability? commercial support?
你说怎么引入?
所以我想,企业级计算不仅仅是谁技术上优秀就一定能进企业,Java曾经的机会很难再现:一来Java的十年已经在企业扎根很深很深,二来现在的Java不会死掉。即便将来出现RoR的BEA,JBoss,看看Java替代Combo的过程和结果——google一下combo便知。而且Java不是当年的Combo。
结论只能是企业计算将会进入三分天下。没有一统江湖。