网站首页 > java教程 正文
作为上世纪 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
Scala 是一门基于 JVM 的多范式的编程语言,由洛桑联邦理工学院的 Martin Odersky 教授领导开发,设计初衷是要整合面向对象编程和函数式编程的各种特性。
Scala 语言特性丰富、语法复杂,被一些人称为 JVM 上的 C++。Scala 是一种纯面向对象的语言,每个值都是对象。Scala 也是一种函数式语言,其函数也能当成值来使用。Scala 运行于 JVM,并兼容现有的 Java 程序,在高并发、大数据领域应用广泛。
代表项目:
- Akka 基于 Actor 模型的并发框架
- Spark 大数据计算平台
- Kakfa、Samza 分布式日志、流处理系统
- Play、Lift 等 Web 开发框架
Kotlin
Kotlin 是一种现代的、基于 JVM 的静态编程语言,由 JetBrains 俄罗斯圣彼得堡团体开发。Kotlin 兼容 Java,但比 Java 更简洁、更安全,能够静态检测常见的错误。另外,相比成熟的竞争对手 Scala,Kotlin 语言更加简单,更容易上手。
Kotlin 最近几年迅速窜红,移动端,Kotlin 已成为 Android 官方推荐的首选开发语言;在服务端,Kotlin 是 Spring、Vertx 等项目除 Java 外的第一选择。
代表项目:
- okio、okhttp、anko :大量 Android 开源库
- Ktor Web 开发框架
- Spring、Vertx 等项目引入 Kotlin
Groovy
Groovy 是一种基于 JVM 的面向对象编程语言,拥有 Python、Ruby 和 Smalltalk 等语言的一些特性,可以作为 Java 平台的脚本语言使用。
Groovy 使用与 Java 相似的语法,并弥补了 Java 语言动态性不足的弱点,使得开发的趣味性和效率大大提高。Groovy 代码动态地编译成运行于 JVM 上的 Java 字节码,并能与其他 Java 代码和库进行互操作。从 Groovy 2.0 版本开始,Groovy 也可以静态编译,提供类型推到和 Java 相近的性能。
代表项目:
- Gradle 新一代自动化构建工具
- Grails、Ratpack Web 开发框架
Clojure
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 全新理念轻量级 IDE
- Leiningen 项目管理、自动构建系统
Ceylon
Ceylon 是由 Redhat 公司的一门 JVM 语言,由 Hiberate 之父 Gavin King 领导,面向企业级应用开发设计。Ceylon 是一种模块化的静态类型的现代编程语言,它保留了一些好的 Java 语言特性,在 JVM 上执行,支持与 Java 的交互操作。
Ceylon 使用静态类型并提供高阶函数等语言特性,拥有强大的类型系统并融合了 C 和 Smalltalk 的一些特性。Ceylon 语法灵活,突出了可读性,在保持代码良好可读性的同时进一步降低了开发者入门的难度。
Jython
Jython(原名 JPython),是 Python 语言在 Java 中的完全实现,使用户能以 Python 的语法编写在 JVM 上运行的软件。Jython 程序可以和 Java 无缝集成,除了一些从 CPython 中继承的模块,Jython 可以使用 Java 的模块。
Jython 优点:
JRuby
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。
猜你喜欢
- 2024-11-13 Java+Redis 通过Lua 完成库存扣减,创建消息队列,异步处理消息
- 2024-11-13 [每日一题][Redis]为什么Lua脚本可以保证原子性?
- 2024-11-13 python脚本查找java类所属jar包(python 调用jar)
- 2024-11-13 Gradle 6.4 RC4 发布,带来 Java 模块、Groovy DSL 脚本插件
- 2024-11-13 Scala声明变量 定义函数 编写脚本
- 2024-11-13 Javacom英文脚本手写字体(java脚本怎么写)
- 2024-11-13 宝藏脚本!Linux系统快速启动Java应用服务,提升开发效率!
- 2024-11-13 分享一个实用脚本——服务器日志清理脚本
- 2024-11-13 只因知晓Java平台的脚本引擎,面试官当场录用:这小子还不错
- 2024-11-13 Shell编程:命令列表 && 和 ||
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)