在变化中老去 没有“银弹”,没有哪种语言可以完美适应日新月异的IT界,至少Java的进化的速度在最近几年已经远远无法追赶日趋复杂项目需求和苛刻的交付日期。人们开始尝试各种开源项目以缓解Java在某些方面的不足,以Hibernate和Spring为代表的框架快速发展和普及;另一方面,Sun和 JCP的各种标准不断遭到人们的质疑,JSF和JPA等官方框架被大多数开发者抛在一边。而这背后,是Sun和JCP对新需求的麻木和对社区的漠视,这直接导致Java的更新落后于变化,Java正在新变化新需求中变得缓慢和老态。 Java近年走势图 Java最近一次让你兴奋的功能更新是什么?是1.4到Java 5.0的版本更新还是新加入的泛型语法?这些都是5年前的事了。面对社区中的众多需求,JCP早已无法及时考量和应对,Java的脚步在日趋蹒跚;更多的开发者在考虑项目是否应该使用Java或者其他什么语言,总之,要他们解决的问题Java解决起来很麻烦;不满的情绪开始在社区中蔓延。 DSL和敏捷 远在日本的松本行弘就是这其实之一,寻找适合自己的编程语言的梦想促使他开发了Ruby,一种比Perl更强大,比Python更面向对象的语言;这时,关于程序开发效率的讨论从各个软件公司的项目小组蔓延到社区,以Tom DeMacro为首的一群人人开始倡导敏捷开发以提高效率;作为对敏捷宣言的实践,DSL(特定领域语言)开始被人们重拾并重视起来。基于灵活的语法,Ruby无疑成为DSL和敏捷的不二选择。 不久,DHH(DAVID HEINEMEIER HANSSON)推出了基于Ruby编写框架。随着Web2.0引领的又一次互联网高潮,基于Ruby on Rails的敏捷项目一个又一个的迅速建立并投入使用,人们惊奇的发现通过简单的DSL改造,Ruby几乎可以适应任何Web项目。这时,Java阵营也开始躁动不安,Sun甚至雇佣了两名JRuby团队的核心成员开发自己的Ruby解释器以期拥有Ruby的动态和敏捷。JRuby是一个纯Java实现的 Ruby解释器。通过JRuby,你可以在JVM上直接运行Ruby程序,调用Java的API。 |