java 多语言开发_5.1 多语言开发

第5章多语言开发

Neal Ford,意见***

用不了十年,所有程序员都将用Smalltalk编程,不论他们把它叫什么。

--Glenn Vanderburg

时间回到1995年,当时C++程序员们还在为指针、内存管理和其他怪异的技巧而身心疲惫的时候,Java出现了。它减轻了C++程序员的痛苦,从而受到热捧。程序员可以用Java更轻松地完成工作。不过为了让Java能够更成功,Java设计者们需要吸引当时主流程序员--也就是那些C++程序员--的注意。因此,Java语言的设计者有意地让Java看起来非常像C++,这在当时看来是非常合理的。如果让开发者从最基础的东西开始学习一门新的语言,他们是很难接受的。

但是走到2008年,向后兼容性的问题已经不那么重要了。Java开发新手要学很多奇怪的内容,而且这些内容大多与需要解决的问题没有关系,而仅仅是为了满足Java中的一些规矩套路。看看下面这段很多Java开发者***次碰到的Java代码。

f27979856312a184e2ce131f2f3a30f6.png

想想你要向一个开发新手解释多少事情,才能让他理解这段代码?Java自身充斥着C++的遗风(比如索引基于0的数组),以及在1995年看来合理的设计(比如区分原生数据类型和对象)--这些都成为阻碍当代程序员生产率提高的障碍了。

幸运的是,Java的设计者们在创造Java时做出了一个英明的决定:将语言和平台分离。这样,就给了开发者一个逃离Java牢笼的机会,它就是多语言开发(Polyglot Programming)。

5.1 多语言开发

单词polyglot是指可以讲多种语言的能力。多语言开发利用了Java中语言和平台分离的特性(C#亦如此)。开发者可以使用特定的语言解决特定的问题。现在,在Java虚拟机和.NET托管运行时上可以运行数以百计的编程语言了。然而作为开发者,我们还没有充分利用这一能力。

当然,开发者们一直都使用着多种编程语言进行开发:大多数应用程序都使用SQL访问数据库,用JavaScript为网页添加交互性,更不用说无处不在的XML配置文件。但是,多语言开发的思路与此并不相同。前面的几个例子都与JVM无关;它们运行在Java世界之外。这让人非常头疼。试想为了解决对象和基于集合论的SQL之间的阻抗不匹配,人们已经花掉了多少亿美元?这种阻抗不匹配会令开发者十分不安,因为在用到多种语言的地方,他们会感到痛苦。但是多语言开发是不同的,它利用的编程语言都会生成运行于JVM的字节码,因此不存在阻抗不匹配的问题。

多语言开发的另一个问题是你必须变换语言。在以前,变换语言通常都意味着变换平台。这对于开发者来说明显是个坏消息,因为他们不希望重写所有的库。但是对于像Java和C#这类与平台分离的语言来说,你不必再为这个问题而困惑了。多语言开发让你能够继续利用所有现有的资产,同时还能够选择更适合完成当前工作的语言。

那么,所谓"更适合完成当前工作的语言"是什么意思呢?下面几节展示了一些应用多语言开发的范例。

【责任编辑:董书 TEL:(010)68476606】

点赞 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值