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中国
相关推荐
-
内存数据网格提供商一头扎进Java
10年的时间里,应用性能解决方案提供商Alachisoft一直在用NCache(针对N-Tier和网格计算.NET应用的内存计算和数据网格产品)为.NET社区服务。
-
遇到这样一个问题:通过java service wrapper部署应用,wrapper进程占用的内存会一直升高, 直到把内存吃完应用崩溃,但是这个wrapper
遇到这样一个问题:通过java service wrapper部署应用,wrapper进程占用的内存会一直升高 […]
-
Google App Engine for Java 对于目前中国需要学习吗?
-
前无古人后无来者的Java平台
开发人员一直在致力于保持Java的活力,经过20年后,我们感觉从来没有更好的、更令人激动的时刻如同Java社区一样。