Java 、Groovy、 Scala 的未来
1. 什么是Groovy
Groovy 是用于Java虚拟机的一种敏捷的动态语言,是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言。使用该种语言不必编写过多的代码,同时又具有闭包和动态语言中的其他特性。
Groovy的使用方式基本与使用 Java代码的方式相同,该语言特别适合与Spring的动态语言支持一起使用,设计时充分考虑了Java集成,这使 Groovy 与 Java 代码的互操作很容易。
2. 什么是Scala
Scala是一门多范式的编程语言,一种类似java的编程语言,设计初衷是实现可伸缩的语言、并集成面向对象编程和函数式编程的各种特性。该语言运行于JVM之上,并具有优雅、效率高、易融合等优势。随着开发者对Scala的兴趣日增,以及越来越多的工具支持,无疑Scala语言将成为一款炙手可热的工具;
3. 对java的冲击
Scala 和 Groovy 都是基于 JVM 的语言,相比 Java,它们的语法更加简明和表达能力更丰富。对于那些既想不脱离开 JVM 又想避免 Java 繁琐语句的开发人员来说,Scala 和 Groovy 都是不错的选择。
正如上述所说,Groovy与Scala的诸多优点,使得业界专业人士的预测- GroovyScala终将取代java,那么,java未来该如何?
前段时间Groovy创始人James Strachan在其博客上发表了一篇文章,题目为《Scala将取代Java /javac?》,大致意思是,java的使用太过繁琐、赋值,缺乏灵活性;例如基本类型,字符串/文字/缓冲器/集合类以及数组缺乏多态性,以至于处理任何数据结构都需要冗长的语法;而且,由于Bean属性和对闭包支持的缺失,使得代码里充满了 try/catch/finally 这些语句(除非你使用框架和新的自定义API)。
4. 未来的发展趋势
虽然java有许多缺陷需要进行改进,但是,java对于大型网站后端开发领域,依然是王者。在我看来,某种技术的兴起,必然是广大开发用户的福音,但是,并不是谁会取代谁,Java也可以在 Groovy与scala的新特性的基础上进行借鉴与学习来缩小差异化。
例如,java语言中让开发者较为头疼的数据类型的冗余化及缺乏灵活性问题,要是能改进为类似php,python,perl的 hash, list, array 等灵活的类型定义,就完美了, 就能大幅提高开发效率;或者,可以引入一个第三方的"语言"来实现,并保持原有java的强大特性。
伴随jdk新特性的升级, Java已经拥有了很多动态语言中的一些优点,如闭包等。未来JVM平台的多语言应用会是趋势,Java依然是老大哥地位。Java强类型的静态编译带来的安全保障和模块化分层的架构依然是大型企业级应用的首选。