Skip to main content
 Web开发网 » 操作系统 » linux系统

嫌 Java 太繁琐、表现力太差?这些 JVM 语言给你不一样的体验

2021年10月15日7520百度已收录

作为上世纪 90 年代发明的语言,从 1996年1月发布 1.0 版到 2019年9月发布 Java 13,Java 语言将迎来 24 周年。近十年来,Java 在 IT 软件业界非常流行,一直占据着编程语言排行榜首,成了企业开发的第一选择。

Java 语言天生拥有众多优势:跨平台、面向对象、安全稳健、简单高效。不过相对 Python、JavaScript、Ruby 等语言,Java 的语法显得死板、冗长、不够灵活。虽然 Java 也在不断吸收其他语言的优点:比如 Java 8 引入了函数式编程,Java 10 引入了 var 类型推断等,但受制于规模、兼容性和商业因素等原因,Java 只能小步改进,不可能期待 Java 语法能有 Python 等动态语言的表现力。

不过 Java 不是 JVM 的全部,近些年来 JVM 上产生了许多优秀的语言,给开发者们带来了新的选择。这些语言提供更多的语言特性(包括语法糖),使语言变得有表现力,实现相同只需要少量代码。另外,这种语言通常能与 Java 互操作,充分利用 Java 强大的生态库。

Scala嫌 Java 太繁琐、表现力太差?这些 JVM 语言给你不一样的体验  Leiningen 第1张

Scala 是一门基于 JVM 的多范式的编程语言,由洛桑联邦理工学院的 Martin Odersky 教授领导开发,设计初衷是要整合面向对象编程和函数式编程的各种特性。

Scala 语言特性丰富、语法复杂,被一些人称为 JVM 上的 C++。Scala 是一种纯面向对象的语言,每个值都是对象。Scala 也是一种函数式语言,其函数也能当成值来使用。Scala 运行于 JVM,并兼容现有的 Java 程序,在高并发、大数据领域应用广泛。

代表项目:

Akka 基于 Actor 模型的并发框架Spark 大数据计算平台Kakfa、Samza 分布式日志、流处理系统Play、Lift 等 Web 开发框架Kotlin嫌 Java 太繁琐、表现力太差?这些 JVM 语言给你不一样的体验  Leiningen 第2张

Kotlin 是一种现代的、基于 JVM 的静态编程语言,由 JetBrains 俄罗斯圣彼得堡团体开发。Kotlin 兼容 Java,但比 Java 更简洁、更安全,能够静态检测常见的错误。另外,相比成熟的竞争对手 Scala,Kotlin 语言更加简单,更容易上手。

Kotlin 最近几年迅速窜红,移动端,Kotlin 已成为 Android 官方推荐的首选开发语言;在服务端,Kotlin 是 Spring、Vertx 等项目除 Java 外的第一选择。

代表项目:

okio、ok嫌 Java 太繁琐、表现力太差?这些 JVM 语言给你不一样的体验  Leiningen 第3张

Groovy 是一种基于 JVM 的面向对象编程语言,拥有 Python、Ruby 和 Smalltalk 等语言的一些特性,可以作为 Java 平台的脚本语言使用。

Groovy 使用与 Java 相似的语法,并弥补了 Java 语言动态性不足的弱点,使得开发的趣味性和效率大大提高。Groovy 代码动态地编译成运行于 JVM 上的 Java 字节码,并能与其他 Java 代码和库进行互操作。从 Groovy 2.0 版本开始,Groovy 也可以静态编译,提供类型推到和 Java 相近的性能。

代表项目:

Gradle 新一代自动化构建工具Grails、Ratpack Web 开发框架Clojure嫌 Java 太繁琐、表现力太差?这些 JVM 语言给你不一样的体验  Leiningen 第4张

Clojure 是 Lisp 语言在 JVM 平台上的现代、动态及函数式方言。与其他 Lisp 一样,Clojure 视代码为数据且拥有一套 Lisp 宏系统。Clojure 不仅可在 JVM 上运行,而且在设计上还兼顾了 Java 的互操作性。Clojure 在设计上也考虑了并发性,并具有并发编程的一些独特特性。

Clojure 提倡不可变性(immutability)与持久数据结构(persistent data structures)并鼓励程序员显式地管理标识(identity)及其状态(state)。对利用不可变值(immutable values)及显式时间进展构造(explicit progression-of-time constructs)进行编程的专注旨在促进更加健壮的(尤其是并发)程序的开发。

代表项目:

Metabase 数据分析、可视化工具Light Table 全新理念轻量级 IDELeiningen 项目管理、自动构建系统Ceylon嫌 Java 太繁琐、表现力太差?这些 JVM 语言给你不一样的体验  Leiningen 第5张

Ceylon 是由 Redhat 公司的一门 JVM 语言,由 Hiberate 之父 Gavin King 领导,面向企业级应用开发设计。Ceylon 是一种模块化的静态类型的现代编程语言,它保留了一些好的 Java 语言特性,在 JVM 上执行,支持与 Java 的交互操作。

Ceylon 使用静态类型并提供高阶函数等语言特性,拥有强大的类型系统并融合了 C 和 Smalltalk 的一些特性。Ceylon 语法灵活,突出了可读性,在保持代码良好可读性的同时进一步降低了开发者入门的难度。

Jython嫌 Java 太繁琐、表现力太差?这些 JVM 语言给你不一样的体验  Leiningen 第6张

Jython(原名 JPython),是 Python 语言在 Java 中的完全实现,使用户能以 Python 的语法编写在 JVM 上运行的软件。Jython 程序可以和 Java 无缝集成,除了一些从 CPython 中继承的模块,Jython 可以使用 Java 的模块。

Jython 优点:

与 Java 相比,Jython 和 Python 强调了代码的简明、方便和易读,大大减少了代码量。Jython 同时拥有解释器和编译器,无需编译就可以测试程序代码。JRuby嫌 Java 太繁琐、表现力太差?这些 JVM 语言给你不一样的体验  Leiningen 第7张

JRuby 是 100% 纯 Java 实现的 Ruby 解释器,可以在 JVM 上直接运行 Ruby 程序(支持 Rails),调用 Java 的类库。JRuby 由 JRuby 团队开发维护,成员包括 Charles Oliver Nutter、Thomas Enebo 和 Nick Sieger 等。JRuby 最新版本为 9.2.9.0,兼容 Ruby 2.5.7。

评论列表暂无评论
发表评论
微信