从编程一开始,人们就会在一种语言与另一种语言的有效性和有用性之间进行辩论。开发者、管理者、博客们等等没完没了地反复争论为什么一种语言比另一种语言更好。让我们回到2006年9月,当时,广为人知创造了Java的Sun Microsystems摆出了一个明显的姿态,它将支持JRuby。消息源自于Sun宣布他们打算雇佣两个JRuby项目的主要开发者—— Charles Nutter和Thoams Enebo,来全职开发JRuby项目。正如历史所证实的,Sun支持这一项目的决定引发了一场新的辩论。
最近,Rick Hightower(1)在博文中写出了自己对Sun支持JRuby一事的感受,并请愿道,
Sun,请停止对JRuby的支持。这是浪费时间。把这些钱花在Groovy上吧!它兼容Java语法的。请在Groovy上进行语言进化并停止滥用Java语法。给我们提供像样的Groovy IDE工具。停止对Java这么频繁的胡搞。
Rick就其对Sun的请愿提供了几条原因,包括语法方面的问题,Sun通过投资JRuby来投资Ruby。咄!Groovy看起来更象Java。它更容易上手。其语法也不会让开发者感到厌烦。
除了语法,Rick提出语言流行趋势也应被考虑,而且他还展示了一个图表以显示Java比Ruby更流行。
这是不要在Ruby上投巨资的另一个原因。提醒一下色盲:Ruby排在最后!
Ruby排在最后。如果能发生一场革命的话,早就应该发生了。Ruby要终结这一可怜地位却又显得有些年迈了。你不这么认为吗?
Java之所以流行是因为长得象C++和C。C++之所以流行是因为长得象C。C#之所以流行是因为长得象Java。看一下这个模式吧!让我们在Gosling的领导下,增加一些对Groovy像样的支持(代码补全,重构等)。如果新的语言特性变为主流,那么就把它加入Java(如果没有意义就算了)。
对Rick博客上的观点和建议,有相当多的议论。实际上,在他的这篇文章下跟有超过50个评论。
大多数评论者认为可以选择编程语言是一件好事情,我认为我们应该可以选择,因此要求停止开发JRuby对我来说不公平。不要误解我,我也不喜欢JRuby,而且现在我在用Groovy,但是应该让JRuby和Scala活着,有得选总是好事。
Michael Galpin(2)发表了另一篇回应,站在了辩论的另一方。特别是,Michael提供了一个理由,解释为什么投资Scala是一件值得做的事。
带有控制抽象功能的语言有巨大的潜能。Scala就是这么一门语言。Scala能够实现actor模型(一个不共享任何东西、基于消息的并行计算设计)。这在Java里是不可能的。你也可以在Groovy中做到几分,但是它可能会很笨拙。原因很简单。如果你有一个对象调用了一个 method,而该method又调用了closure(以此为例),在Scala中closure可以将控制返回给对象,但是在Groovy中只能返回给方法。Groovy中耦合了一些额外的控制结构,使得控制抽象的一些方面显得非常笨拙。
另一个博客作者,JRuby开发者Ola Bini,也不同意Rick Hightower,他说道:
我认为JRuby是重要的,因为它可以在与Java一样的环境中运行,但是却没有Java的一些问题。
Ola继续解释他认为存在于Java中的一些问题以及为什么JRuby是更好的选择。作为附加内容Michael Galpin解释了为什么Sun对JRuby有兴趣。
Sun知道什么是成功引入一个新语言和平台以及使其成为工业实际标准的必要条件。这是很困难且昂贵的。他们只能做一次,这耗费了 他们大量资金。Java不能总是停留在顶点。他们不想再为这一战役进行战斗了。然而,如果他们能够在上面所描述的场景下让Rails继续生存下去,那么他 们这次无需进行任何作战即可“停留在顶点”。他们让Rails社区为他们做到这一点。
Sun除了站在JRuby一边之外,还发展NetBeans IDE支持JRuby。然而,需要提及的是,Netbeans正在积极发展对Groovy和Grails的支持。事实上,Martin Adamek在其博客上提供了一个对NetBeans的更新,它支持Groovy和Grails。
那么,你作何感想呢,JVM有容纳不同语言的空间吗?Sun应该站在Groovy一边并加大对它的开发和工具支持吗?
相关人物介绍
(1)Rick Hightower是ArcMind公司的CTO。他是《Java Tools for Extreme Programming》一书的合著者之一,这是一本关于在J2EE开发中采用极限编程的书;他还与人合著了《Professional Struts》一书。
(2)Michael Galpin拥有California Institute of Technology的数学学位。他从20世纪90年代晚期开始成为Java开发人员,作为软件工程师为加州Sunnyvale的Vitria Technology公司工作。
【相关文章】
|
|||
| · Windows Home Server .. · 甲骨文85亿美元收购BEA · Windows Server 2008 · 如何优化IT 控制能耗 · 龙芯要做中国的“奔腾” · 手机病毒揭密 · 清除流氓软件——51CTO.. · 华为、贝恩资本22亿美.. |
· 网络安全之网吧安全 · 2007盘点专题:有多少.. · 数字证书技术ABC · 身份认证技术 · 即时通信软件(IM)安.. · 电子邮件安全 · 运营商封堵非法ADSL共享 · ARP攻击防范与解决方案 |
||
|
|||
| · VPN技术 · SOA 面向服务架构 · 子网掩码教程 · 三层交换技术专题 · Windows远程桌面应用 · 深入了解PGP加密技术 · MySQL数据库备份 · VPN技术 |
· 病毒查杀专题 · Solaris 10 配置管理 · Linux 基础 · Linux防火墙 · SSL VPN详细知识 · 路由器设置与口令恢复 · 打造安全服务器 · Linux 集群技术专题 |
||
|
|||
| · VPN技术 · SOA 面向服务架构 · 子网掩码教程 · 三层交换技术专题 · Windows远程桌面应用 · MySQL数据库备份 · 身份认证技术 · 病毒查杀专题 |
· 清除流氓软件——51CTO.. · SSL VPN详细知识 · Sniffer安全技术从入门.. · 常用交换机典型配置 · Linux 集群技术专题 · VPN技术 · 路由器设置与口令恢复 · Linux 基础 |
||
| ·DB2 Viper快速入门 ·DB2 9数据库的镜像分割与.. |
·将XML应用程序从DB2 8.x.. ·DB2 9中的pureXML:如何.. |
| ·ASP.NET 2.0 Web Part编.. ·ASP.NET 2.0 Web Part编.. |
·ASP.NET 2.0 Web Part编.. ·ASP.NET 2.0服务器控件之.. |
| ·擒马记 ·失声的黄莺 |
·我的 linux历程 ·2008第一运 |
| ·08第3周回顾:Sun成开源.. ·08第2周回顾:07年华为收.. |
·08第1周回顾:TCP/IP协议.. ·办理驾驶证降级攻略 |
| · 思科警告统一通信管理存.. · 家用路由器存在严重缺陷.. · 华为2008市场攻略 240亿.. |
· 浅谈国内的渗透评估过程 · VPN安全技术与应用 · 企业如何进行计算机取证.. |
| · IDC:2008年IT市场10大.. · Visual Studio 2005开发.. · 测试开发人员参考手册 |
· 年初17大热门技术 年底.. · 解析Ajax开发框架 走进A.. · 基于Google Maps与Ajax.. |
| · Linux操作系统下文件和.. · 热点:国内大型企业如此.. · IBM和Sun起争议 坚持不.. |
· 中小企业刀片市场将达20.. · IT人员应当了解的七个存.. · IDC:2008年IT市场10大.. |
| · 甲骨文Oracle 11g正式发.. · Oracle数据库开发之PL/S.. · Oracle数据库开发基础教.. |
· IT人员应当了解的七个存.. · 希捷承认部分硬盘暗藏病.. · 硬盘之父获得诺贝尔物理.. |