BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 Dio Synodinos 关注 3 他的粉丝 ,译者 张龙 关注 12 他的粉丝 发布于 2008年5月25日. 估计阅读时间: 3 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

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的能力,并提高了构建优秀软件的成本。

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

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

他说自从SmallTalk之后已经发生了很多变化

我们难道回退到80年代晚期和90年代初期那种语言争论的时代了吗?我想我们将看到多语言的争论,但这有一个很重要的区别。在80年代晚期,语言之间很难实现紧密的交互。现在人们将很多精力放在使得不同语言能紧密交互的环境构建上。脚本语言本来就与C有着密切的关系。人们投入了大量精力实现JVM和CLR平台的交互。人们在库的构建上花费了大量时间以使语言能忽略它们的不同。

去年在InfoQ上有一篇文章讨论到DSLs是否会终结单语言开发

你的想法如何?多语言和DSLs会占据主导地位,从而不给新的“下一代的大语言”留下任何余地吗?

查看英文原文:Will Polyglotism and DSLs make Java the Last Big Language? 

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

一定会有新的语言 by withyou gakaki

java也会跟着改变 ,如果没有新的语言 java就不会进步,即使希望不要在出现big的语言,
也是不可能的了,java也在变化.程序员真是自虐的行业啊

Re: 一定会有新的语言 by 麦 书

Java这种语言最初设计的时候就是为了“小”设计的,后来没完没了地贴金。
凭他?这种破烂语言还配做唯一。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

2 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT