您的位置:首页 > 编程语言 > Java开发

java 之未来

2011-12-30 17:42 127 查看
转载于51cto

Java之父自己也清楚的表述了这个观点:“我们看中的并非Java语言,而是JVM。事实上我们可以让所有语言一起工作。”

以后的企业级项目和Web项目需要怎样的语言?一般而言,有下面几点:

◆可伸缩性

◆可移植性

◆并行编程

◆高性能的

◆DSL(领域特定语言)的实现

他们可能想要:

◆动态的

◆静态的

◆强类型的

◆函数式的

◆富有表达力的

◆面向对象的

◆简洁的

◆容易理解的

◆容易学习的(在有Java或其他语言开发经验的基础上)

◆深刻的

◆快捷的

◆模块化的

◆灵活的

◆有强大的类库

◆有好用的框架

◆有合适的IDE

◆有活跃的社区

某些语言能够满足上述条件中的很多条,但是很明显,没有任何一种语言能够满足所有的条件!同时,同一个项目的不同层面的需求也是不同的。现在全世界最流行的微博服务Twitter,表层是Ruby on Rails,底层是Scala,而Twitter团队进行这样的选择正是因为考虑到不同层面的业务需求。

在预言中他描述了同一个项目中可能会需要不同语言的三个层:

◆稳定层(stable layer)–不包含大量的应用程序功能,可以使用静态语言构建

◆动态层(dynamic layer)- 包含大量的应用程序功能,使用动态语言构建

◆领域层(domain layer)- 包含大量的应用程序功能,使用DSL构建

不过话又说回来了,既然混合语言编程这么好,为什么一直以来都没怎么流行呢?答案很简单,和我们与国际友人之间有沟通问题的原因是一样的:一段Ruby代码要如何明白一段Java代码说了些什么呢?对于高级语言来说,要互相理解对方的功能,进而进行交互,是一件很困难的事情。如果无法交互,又要如何一起来完成同一个项目呢?

沟通问题是一个很大的障碍。然而,这个障碍的清除早就有了一个成功的案例:那就是微软的.NET平台。在微软官方文档的描述中,这种“沟通”被命名为“跨语言互操作性”,或者“语言互用性”。在.NET平台上,这个问题的解决方案是公共语言规范 (CLS)。事实上,不得不说微软在这方面做的要远远超过解决“沟通问题”的这个层面:它的目的是能够让多种语言可以自由共享和扩展彼此的库。不过,在过去的很长一段时间内,.NET平台上的主要公民只有两个:C#和VB.NET,其他公民则大多半死不活,这使得这个互操作性的意义大打折扣。

综上所述,软件项目的未来在于混合语言编程。此前景的舞台将在未来数年内搭建成熟,而聚光灯的焦点就是一个百家争鸣的JVM。基于JVM的混合语言编程的发展趋势,为Java开发者们提供指引。想一想看,当你的老板或项目经理决定要尝试Groovy或是Scala进行部分开发的时候,如果你能够立即站出来为他进行一些解惑或指点,那么你又何愁饭碗随着Java语言的老去而消逝呢?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: