多语言和DSLs会使Java成为最后的大语言吗?

发表于:2008-10-17 16:29

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Dionysios G. Synodin    来源:InfoQ

#
Java

  Ola Bini说这个世界不会再有新的大(big)语言了,因为开发者要根据其问题域来选择不同的语言。同样,Martin Folwer说开发者选择语言的根据是它能做什么,就像他们选择框架一样。另一方面,Joe Winchester说你只能精通一种语言。

  Ola Bini在一篇最近发表的文章中详细分析了Haskell、JavaRuby的类型系统的优劣,对这些语言进行比较并非不可能,但却很难:

  现在我们有三种语言。一种静态检查较强,比如Haskell。一种静态检查较弱,比如Java。还有一种是动态检查的,如Ruby。从我的角度来说,他们分别善于不同的方面。甚至在同一个领域里他们都不会互相竞争。对他们进行比较真的没有什么太大意义。

  Ola在多语言中找到了希望:

  一个优秀的程序员通过其判断来提供最佳值。这包括为工作选择最佳的语言。如果Ruby使你能用比Java快5倍的速度完成同样的功能,你需要考虑一下这是否可接受。另一方面,Java的IDE使得维护变得很简单,但是通过使用Ruby代码,你需要维护的代码量只有Java的五分之一。这种交换可接受吗?有些情况下,是的。

  最后他建议:

  成为优秀的通晓多种语言的程序员。这个世界不会再有新的大语言了,你需要调整思维适应这个环境。

  Joe Winchester在Java开发者杂志上给出了一个不同的视角。他相信:

  你只可能精通一门语言——如果什么都会,那其实就是什么都不会。

  Joe回想起Smalltalk社区所做的尝试:让Java运行在他们的虚拟机上(Universal Virtual Machine——UVM),这一切简直就是一场噩梦。

  最后他说:

  我们需要完善Java,而不是对VM做一些手脚,更不是仅仅为了适应几年前就已不存在的语言而徒增复杂性。

  如果我们不把Java看做一门语言,而仅仅看做是一些“Java技术”之类的东西的话,那么我们正在用其他语言来减弱Java的能力,并提高了构建优秀软件的成本。

  另一方面,Martin Folwer也提到我们可能正在走进这样一个时期:

  我们看到项目中使用了多种语言,开发者选择语言的根据是它能做什么,就像他们选择框架一样。

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号