未来系统中的编程语言
最近看到的两种观点值得思考:
1)Java语言规范本身需不需要进一步扩展?
凡是有过数年编码经验的程序员都发觉,他们很少使用泛型等1.5版本引进的新语法。Java的发展方向应该是基础infrastructure的语言,应该更强调稳定性。把提高代码的Productivity的工作交给动态语言去做。
2)Sun或者Java社区是否更应该支持Groovy,而不是JRuby?
Groovy是天然的面向Java开发者的动态语言,当前Sun和Eclipse都没有给予官方的支持,反而是IntelliJ给予足够的重视。
1)Java语言规范本身需不需要进一步扩展?
凡是有过数年编码经验的程序员都发觉,他们很少使用泛型等1.5版本引进的新语法。Java的发展方向应该是基础infrastructure的语言,应该更强调稳定性。把提高代码的Productivity的工作交给动态语言去做。
2)Sun或者Java社区是否更应该支持Groovy,而不是JRuby?
Groovy是天然的面向Java开发者的动态语言,当前Sun和Eclipse都没有给予官方的支持,反而是IntelliJ给予足够的重视。
第一层我称其为稳定层。尽管从功能性的角度上讲,它只占整个应用程序的很小一部分。但是程序的其他部分都是构建在它之上的,因此它是非常重要的一部分。所以,静态类型安全在这一层中将会大有裨益。 大部分应用程序的功能都存在于动态层: 第二层是动态层。也许程序中一半的代码都集中在这一层。这一层中用到的语言主要是动态的、强类型的语言[…] 它绝对是有趣且多产的一层。很明显,由于我对JVM语言的痴迷,我相信这层与稳定层之间的交互绝对会产生非常强大的功效。 第三层是领域层。它应该由DSL实现。根据系统的不同需求,可能需要一种或多种DSL。大多数时候,将领域层实现为一种动态层内的内部DSL就足够 了,在这种情况下,第二层和第三层是很难区分的。但是有时候,我们的确应该拥有一个外部的DSL,并可以与之交互。一个典型的例子就是规则引擎 (rules engine,比如Drools)。 但是我必须要澄清一件事——我相信,在任何一层中,都不会有哪种语言会成为绝对的赢者。事实上,我认为倘若有一种语言在任何一层上战胜了其他语言, 都肯定是一件坏事情。或者说,我预见的未来是,我们可以看到Jython、JRuby和Rhino等许多其他语言会在同一层中共存,而且不必为此引发任何 对立和语言之争。 |
没有评论:
发表评论