虚拟化导论
人们很容易想当然的以为虚拟化技术仅仅应用于服务器。而在现实中,虚拟化这一苏醒的概念正被运用于各个层面,其中包括网络,存储以及应用基础架构。在这篇导论中,InfoQ将深入每个方面,详尽向您描述虚拟化技术的运用以及其优点与不足。
- Architecture, .NET, Java,
- 1
作者 Dionysios G. Synodinos译者 张龙 发布于 2008年5月24日 上午8时27分
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也提到我们可能正在走进这样一个时期:
我们看到项目中使用了多种语言,开发者选择语言的根据是它能做什么,就像他们选择框架一样。
我们难道回退到80年代晚期和90年代初期那种语言争论的时代了吗?我想我们将看到多语言的争论,但这有一个很重要的区别。在80年代晚期,语言之间很难实现紧密的交互。现在人们将很多精力放在使得不同语言能紧密交互的环境构建上。脚本语言本来就与C有着密切的关系。人们投入了大量精力实现JVM和CLR平台的交互。人们在库的构建上花费了大量时间以使语言能忽略它们的不同。
去年在InfoQ上有一篇文章讨论到DSLs是否会终结单语言开发。
你的想法如何?多语言和DSLs会占据主导地位,从而不给新的“下一代的大语言”留下任何余地吗?
查看英文原文:Will Polyglotism and DSLs make Java the Last Big Language?
人们很容易想当然的以为虚拟化技术仅仅应用于服务器。而在现实中,虚拟化这一苏醒的概念正被运用于各个层面,其中包括网络,存储以及应用基础架构。在这篇导论中,InfoQ将深入每个方面,详尽向您描述虚拟化技术的运用以及其优点与不足。
在这篇案例研究中,InfoQ对Adobe AIR和Amazon的简单存储服务(Simple Storage Service ,S3)在NASDAQ市场回放程序(NASDAQ Market Replay)中的应用进行了详细的分析。
本视频对SOA在互联网系统中的应用进行了探讨,主要以支付宝在SOA的实践为例,主题从敏捷的应用程序(对象与组件)到敏捷的企业系统(应用集成与面向服务),再到敏捷的生态圈(网关与开放平台)。
因为不知道如何反击,技术人员不得不听从业务人员的要求。这已经是老生常谈了。问题何在?开发人员用数字主要是进行计算的,而业务人员使用数字辅助决策。在下面的故事中,“敏捷精灵”鼓励一个开发人员用数字来描述与计算无关的问题。
本文介绍了Hadoop如何配置分布式框架运行环境,同时特别讲解了其中的一些细节。Hadoop可以单机跑,也可以配置集群跑,这里主要重点说一下集群配置运行的过程。本文是Hadoop入门实践三部曲的第二部。
2 条回复
回复