像Ruby Python 甚至Java/ECMAScript这样的动态编程语言正在受到创新开发者们的亲睐这种趋势已变得很明显Ruby on Rails为提高Ruby编程语言做出了很大贡献 Ajax 正将更多的兴趣集中在JavaScript 上Python 尽管还没有找到它的发展方向 但它现在也在受到更多的关注动态编程语言的时代即将到来我的意思是当动态编程语言成为一种标准而不是异类(例外)的时代即将到来 在今后的五年当中绝大多数机构将在一些企业开发中运用动态语言程序当然不是说在所有的开发中都会用到因为对于传统编程语言的需求总是存在的传统编程语言可以让你在编译时就发现(程序)错误而不是在运行时才发现但是动态语言摆脱被称为危险物或玩具的日子指日可待 当创新开发者蜂拥向像Ruby这样的动态语言程序时主流的开发群体却不太倾向于采用这种语言程序这是因为两个原因FUD和生产率恐惧(Fear)不确定(Uncertainty)及怀疑(Doubt)即FUD 不断得阻碍着开发者试图体验和使用动态语言程序的行动听到人们说动态语言程序是玩具并且有危险的话也是稀松平常的事但我所发现的是说这些话的人通常都很少有或根本没有使用过动态程序语言的经历FUD的出现通常只是因为无知然而对于动态程序语言为什么没有被大众采用还有一个更实际的原因就是生产率学习一个新的编程语言平台可不是一件轻松的事虽然学习一种语言的语法不是很难但学习一整个新的程序库却是一项巨大的工程例如Java 程序师花在学习如何使用标准enterprise 专利权及打开APIs (应用编程接口)的时间要比花在学习语法上的时间比例大很多事实上 依我看这种时间的比例在第一年可能是:而在往后会是: 如果你花费了所有脑力去学习如何合理的使用Java 程序包以及APIs(而不是学习语法)那么丢掉以前所学的一切而去学习一个全新平台的想法可能……似乎……有点愚蠢或者更准确一点说在这个全新平台的优势不是很明显的时候这种选择是不实际的从本质上来讲这种选择会使一个java 开发者所了解的有关访问数据库控制信息串输入及输出等一切知识变得毫无用处另外新平台的生态系统也没有Java的坚固 对于主流Java 开发者来说把平台改为Ruby 那样的看起来似乎不是很理想不要误解我的意思我不是说Ruby不好我也是Ruby 的一个忠实粉丝 但是将Java 平台与 Ruby 平台做个很真实的对比就会看到Ruby确实有所欠缺Ruby 生态系统的规模以及APIs(库)的数量与Java 平台相比较显然逊色不少全世界大概有万或更多的Java开发者而如果Ruby开发者的数量能超过万我都会感到很惊讶大概仅有万人每天在生产代码中用到Ruby程序当然这仅仅是一种推测ruby开发者的真实数量也许会与推测的有所出入但是很少有人会说ruby 开发团体的规模能与Java开发团体的规模相比 动态程序语言(如RubyPython JavaScript)总体来说要比传统的编程语言多产(效率高)在我为期三年的研究中我总是发现开发者在同一环境中使用动态语言要比使用传统语言多产近倍这也就是说一旦你能熟练操作一种动态语言那你在产量和维护方面会有巨大收益只要是清洁代码那么代码越少越容易维护少量的清晰的代码更容易维护 因此这就创造了类似于第条军规一样的东西(So this creates a Catch of sorts)虽然动态编程语言相比而言更多产(更高效)但是学习一种新的平台要花费开发者很多时间事实上就短期内而言转而学习Python或是Ruby是很不划算的(学习它们花费的时间要比要比因为它们高效而节约的时间多很多)另外真的没有一种动态语言有与java一样的生态系统及基础结构因此要采用动态语言程序就要接受资源工具及技术人员数量较少的状况 因此解决这个问题的方案似乎是找到一种以Java 开发团体已熟知的平台为基础的动态语言虽然很多动态语言是为java平台而创造其中包括Jython JRuby BeanShell Pnut 还有其它一些动态语言但我坚信groovy是其中最有潜力的动态编程语言我这么说最主要的原因是groovy在java团体中正在被标准化虽然标准化从来都不是衡量质量的量度器但无奈的事实是技术不是仅靠着自身的优点而取胜的(也就说还要符合一定标准)不难理解企业都会认为采用一种通过了标准化过程(类似于JSE 和 JEE标准化的过程)的语言要比采用没有标准化的语言舒心的多不管是对是错 权威们决定将标准化作为接受和使用一种技术的前提 除了正在被标准化Groovy 还有一个作为动态语言的优点即从它被创造之初就考虑到了java开发者们它保留了很多为Java开发者所熟知的语法和语义同时又具备了动态语言的特征如动态键入mixins 以及闭包正是这些特征使得动态语言比传统语言更多产(更有效率)还有最后一点就是你现在所用的所有Java APIs 在Grooy中可以用完全相同的方式被使用Groovy可以汇编成字节代码因此任何你能够在java中输入和访问的字节代码同样也能在Groovy中输入和访问 Groovy 标准化(JSR )是在三年前开始的而现在正在取得成果 对一些人来说这似乎是很长的一段时间但有这种想法的人是不了解相关的历史即不了解一种语言要走向成熟需要花费多长时间例如Ruby这个刚刚受到很多关注的编程语言已经在 open source团体中发展了年JavaScript 发展了年Python 年事实上Groovy 编程语言标准的发展只用了三年时间已经算是取得了很显着的成绩 前景看起来似乎很明朗动态语言正逐步流行起来它们的多产性(高效率)及广泛的适用性是不容忽视的要知道Java 平台被多万开发者的庞大系统以及成千的工具和APIs 支持着如果任何一个动态编程语言要成功它就得a) 被标准化b) 受到Java 开发者的亲睐c) 容易学习以及d) 能利用现有的Java 系统现在只有一种动态语言程序能满足这些要求那就是Groovy Groovy 周遭的大肆宣传已经平息对于这个项目的嘈杂的评论也销声匿迹了我认为这是再好不过的事情了因为这样的结果是一种语言得以有时间发展成为一种真正有用的语言在很多方面Groovy是Java平台和动态语言设计的完美结合Groovy 一直都很安静像一个沉睡的巨人但是在它成为 JCP 标准后这个巨人必将苏醒过来并且成为最重要的动态编程语言 |