下一代移动 iOS 和 安卓应用程序应该用 java 来编写的8大原因

jopen 8年前

Java 在近十几年来一直是最流行的编程语言之一,而在 2015 年,这种语言再一次被证明是行业的驱动力,因为它在 TIOBE 编程语言排行榜 中取得了领先的优势。虽然 TIOBE 的统计方法合理性还存在一些问题,但可以结合像  RedMonk 或  PYPL 的这些其他排行榜,也能给出 Java 普及度的一个很好的指标。

做为企业界的主要参与者,Java 一直保持着稳健的步伐,但是我们如何解释其最近的增长呢? Oracle 在  Java 8 中引入 Lambda 表达式和 Streams是一个很大的原因。而做为发展速度最快的移动平台的通用语言也是另一个重要原因。随着 Android 最近迁移 到了 OpenJDK,以及即将到来的  Java 9 ,我们预测 Java 的实用性将继续增加。

这些生态体系的好处已经明显会引来大量新人,然而,做为老鸟,经过这么多年的实践检验,我们都知道平台留住开发者的优势是什么。以下有 8 个原因,来说明为什么 Java 是你下一个移动项目的明确选择:

1. 静态类型

随着后台及移动应用复杂性的提高,拥有一个易于维护及重构的健壮的代码库是很重要的。静态类型是确保开发人员在项目的整个生命周期中都能保持头脑清醒的关键,因为它会在编译期就捕获到大量 bug,启动优化并构成了 Java 首屈一指的工具生态系统的基础。

2. 托管运行时

JVM 垃圾收集器大大降低了编写内存安全的应用程序的复杂度,并消除了大部分手动内存管理时容易出错的工作。自从 Java 成立伊始,并发就已经是其重要组成部分了,其提供了线程安全的集合、同步原语以及简单易用的多线程 API。反射机制是管理运行时的最后一部分,其支持了像依赖注入或面向切面编程这种先进的概念。

3. 性能

HotSpot JVM 的 实时编译器(JIT) 及它的各种垃圾收集实现使其成为当涉及到服务器端应用程序的性能问题时可以无需纠结其他平台而选择 Java。 静态编译(AOT) 是在移动平台中的体系。在 Android 上, ART 为高负荷计算提供了接近本地应用的性能。在 iOS 上, RoboVM 使用 LLVM ,其使用的是与 C/C++/Objective-C/Swift 相同的后端,提供了比 Objective-C 和 Swift 只高不低 的性能。

4. 工具

先不管语言本身理论上的好处,还有一些语言相关的工具。诸如像 EclipseIntelliJ 和  Netbeans 这些 IDE 是由其中可比平台工具测得的黄金标准。代码导航、重构、自动完成以及模板可以有效的编写及维护你的项目。代码热插拔、调试、分析及单元测试可以让你轻松的查明问题。而集成的源码管理、应用服务器管理、以及构建和依赖管理则涵盖了部署项目的基础设施。

5. 庞大的社区

无论如何,在世界各地估计有 超过 9 亿的 Java 开发人员 。这个数字意味着 Java 开发者可选的能够提高自己能力的讨论会、书籍、在线资源、论坛及培训项目的数量是巨大的。随着 Java 在服务器和移动端应用程序的普及,Java 开发人员完全能够自由的往全栈方面发展。

6. 第三方生态体系

无论你遇到什么问题,Java 社区几乎都已经为你解决了它。你的后台需要大数据分析?没问题,从 HadoopSpark 或  Elasticsearch 这么多的解决方案中选择一个吧。不想自己分析你的移动应用?可以使用  推ter Fabric 或  Parse 。需要在你的后台及移动应用中进行 JSON 序列化?很简单,使用  Gson 并在所有平台上共享你的 POJOs 和序列化逻辑。使用 Maven 和  Gradle 来整合第三方库是很简单的,只要在你的构建文件中添加一行就可以了。

7. 其他语言

虽然 Java 仍然是 JVM 的主要语言,并且在不断的演变成更具表达力,而该平台的架构也欢迎其他语言。近年来,像 KotlinScala 或  Clojure 这些语言已经被越来越多的采用。这不仅是由于它们的特性,还因为它们与现有的 Java 生态体系的互操作性。

8. 代码共享

最后我们保留了这个最重要的原因。Java 运行在你的后台、Android 和 iOS 上,覆盖了所有主要平台。由于这种可移植性,你可以通过在这些平台之间共享你的大量代码来节省开发成本和资源。使用这些资源,来专注于你的实际产品,并满足你的用户。

2015 年对 Java 来说显然是丰收的一年。也许是时候享受这些成功了,让 移动跨平台 Java 开发 成为你 2016 年专业成就的一部分吧。

</div>

来自: http://www.oschina.net/translate/8-reasons-your-next-mobile-ios-and-android-app-sho