InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

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

作者 Dionysios G. Synodinos 译者 张龙 发布于 2008年5月24日

领域
架构 & 设计,
语言 & 开发
主题
架构 ,
领域专用语言 ,
Java ,
动态语言 ,
脚本
标签
DSLs

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? 

译者 张龙 热衷于编程,乐于分享,对新技术有强烈的探索欲,对Java轻量级框架有一定研究。

一定会有新的语言 发表人 withyou gakaki 发表于
Re: 一定会有新的语言 发表人 麦 书 发表于
  1. 返回顶部

    一定会有新的语言

    发表人 withyou gakaki

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

  2. 返回顶部

    Re: 一定会有新的语言

    发表人 麦 书

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

深度内容

大规模视频网站的计费与流量管理

本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011

专访Jeffrey Richter:Windows 8是微软的重中之重

Jeffrey Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffrey Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011

"伤得起"的云计算应用——对云端应用之架构的思考

2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

让交付的速度跟上思考的速度

12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011

架构之路——穿行在产品和业务之间

篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。