Ola Bini说这个世界不会再有新的大(big)语言了,因为开发者要根据其问题域来选择不同的语言。同样,Martin Folwer说开发者选择语言的根据是它能做什么,就像他们选择框架一样。另一方面,Joe Winchester说你只能精通一种语言。
Ola Bini在一篇最近发表的文章中详细分析了Haskell、Java和Ruby的类型系统的优劣,对这些语言进行比较并非不可能,但却很难:
现在我们有三种语言。一种静态检查较强,比如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的能力,并提高了构建优秀软件的成本。 |
我们看到项目中使用了多种语言,开发者选择语言的根据是它能做什么,就像他们选择框架一样。
他说自从SmallTalk之后已经发生了很多变化:
我们难道回退到80年代晚期和90年代初期那种语言争论的时代了吗?我想我们将看到多语言的争论,但这有一个很重要的区别。在80年代晚期,语言之间很难实现紧密的交互。现在人们将很多精力放在使得不同语言能紧密交互的环境构建上。脚本语言本来就与C有着密切的关系。人们投入了大量精力实现JVM和CLR平台的交互。人们在库的构建上花费了大量时间以使语言能忽略它们的不同。 |
你的想法如何?多语言和DSLs会占据主导地位,从而不给新的“下一代的大语言”留下任何余地吗?
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- Java环境安装配置 (5912篇文章)
- Java编程开发手册 (8602篇文章)
- 自己写框架 (371次浏览)
- Spring框架概述 (244次浏览)
- Struts应用开发 (234次浏览)
- Struts 2, spring 2, hibernate 的整合 (175次浏览)
- OpenXava框架发布3.0版本 (117次浏览)
- Java应用中Hibernate对多表关联查询总结 (111次浏览)
- java字符串编码类型获取 (108次浏览)
- 100行Java代码构建一个线程池。 (107次浏览)
- 关于提高自己水平的十大技术 (89次浏览)
- hibernate 经验谈 (78次浏览)



