备选JVM语言:Scala的阐述

日期: 2013-05-06 翻译:蒋红冰 来源:TechTarget中国 英文

Java应用开发这一词语,并不只是限定在核心Java语言和Java企业版本平台上。Java虚拟机(JVM)要归功于大量的其它语言,如Scala, Groovy和Clojure,每一个都有自己的优点和缺点。此文中,the Basement Coders的Java领袖Craig Tataryn解释了一种JVM替代放言——Scala。

  有许多理由把从Java EE或 Java SE而出来的分支,考虑进众多可用的替代JVM语言。有些开发人员抱怨说,Java变得有点不景气了。Tataryn说,“这是不对的。(ish)”对于Java EE仍过于冗长这一说法,他是持反对意见的。看看钻石形的语法,看看是怎样如何减少类型声明和丑陋的Java语法。

  另外一个关于Java的反对声音是,有太多的框架了。Hibernate、Spring、cglib和其它一些构架都值得考虑。Tartaryn承认,学习Java并不是困难的一部分。学习何时以及如何使用关于它的一些构架,另外当涉及到Java应用开发时,是没有存储框架的。

  然后就是缺乏语言特性如多态,头等函数、高阶函数、lambdas、类型推断和动态和静态类型之间的混合方式。多态让你把不同的功能组合到一个类中,而这个类用那个函数进行声明,在创建它的时候。

  高阶函数允许开发人员传递能力给其它的函数,或返回给另一个函数;这可以在Java中完成,但是函数要包含进一个类中。Lambdas让开发人员声明一组函数, 或一个代码块可以被其它的函数引用。类型推断是编译的一个能力,用来在基于上下文代码的情况下,推断适当的变量类型。

  如果Java的这些不足之处 太多的话,Java开发人员可能会希望考虑一下像Scala这样的备选方案。Scala提供了大量的Java互操作性。Scala的这一巨大优势来自于Java。Scala是静态类型的,是面向对象的,Scala的语法类似于Java,而且继承了Java的工作。

  Scala是一种函数式编程语言,同时拥有头等函数与高阶函数。在Scala不变式规则不是很严重,它缓解多线程进程。Scala也使用持久数据结构,融合了不变性的功能性好处,在必要时会拥有优先的可变性。可以在列表中添加额外元素,此列表就是持久数据结构的一个原始例子。

  在Scala,多态是通过创建特性实施的。Scala中的一个特性就像Java中的一个接口,但除了不是所有的特性函数都将会被抽象。有些可能有实现行为。有了多态,你可以融合几个特性,而且你不必马上选择出那些类。Scala也有隐式这一概念。在编译出现错误——当一个类型与另一个类型不匹配时,隐式方法可以定义的更顺畅一些。

  通过给Java开发人员提供lambdas、类型推断和其它的一些重要功能,使得Java 8很有帮助。尽管,开发人员没有足够的耐心等待Java 8,但他们应该考虑一下转换到JVM的备选,如Scala。“学习这些Java之外语言的一种,并没有坏处,” Tataryn总结说。“你应该继续学习更多我,这是百利而无一害的。”

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

翻译

蒋红冰
蒋红冰

TechTarget云计算主编,主要负责云计算和虚拟化网站的内容建设。长期专注于IT前沿技术,对云计算、虚拟化、人工智能、区块链等技术都有了解;对行业趋势、市场动态有一定的洞察。

相关推荐