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

oschina 投递于 2016/01/19 14:59 (共 5 段, 翻译完成于 01-20)
阅读 12413
收藏 81
7
加载中

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

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

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

ostatsu
ostatsu
翻译于 2016/01/19 20:55
3

1. 静态类型

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

2. 托管运行时

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

ostatsu
ostatsu
翻译于 2016/01/19 20:55
3

3. 性能

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

4. 工具

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

ostatsu
ostatsu
翻译于 2016/01/19 20:55
2

5. 庞大的社区

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

6. 第三方生态体系

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

ostatsu
ostatsu
翻译于 2016/01/19 20:55
2

7. 其他语言

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

8. 代码共享

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

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

ostatsu
ostatsu
翻译于 2016/01/19 20:55
4
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
加载中

评论(85)

红白机
红白机

引用来自“想入肥菲”的评论

感觉还是用最好语言PHP比较靠谱!

引用来自“ylmotol7”的评论

php既然是最好的语言,为啥不用php开发操作系统?

引用来自“红白机”的评论

有人用PHP开发了一个web操作系统!!

引用来自“ylmotol7”的评论

你是来逗我的吧?web操作系统?呵呵,php不是最好的语言吗?还需要基于web?
调节一下气氛嘛~~最好的语言并不代表可以做所有事啊
我是小小的然
我是小小的然
这论坛真是让人开眼界啊33
开源X
开源X
php不是最牛逼的么,应该用PHP写
y
ylmotol7

引用来自“想入肥菲”的评论

感觉还是用最好语言PHP比较靠谱!

引用来自“ylmotol7”的评论

php既然是最好的语言,为啥不用php开发操作系统?

引用来自“红白机”的评论

有人用PHP开发了一个web操作系统!!
你是来逗我的吧?web操作系统?呵呵,php不是最好的语言吗?还需要基于web?
Rezeroer
Rezeroer
等我大clojure一统天下
徐迎龙
徐迎龙
下辈子,我要做女人
kidfruit
kidfruit

引用来自“gzwxn”的评论

Java 本身就是一个面向对象语言,那 C 来开发不是找不自在吗?
JVM 用的是 C++。这样一个 Java 对象大致能映射到解释器中的一个 C++ 对象。
是的,C 也可以模拟面向对象,像 GTK+ 那样,但很丑陋,干嘛不把这个工作让 C++ 编译器来完成?

引用来自“eechen”的评论

面向对象那么牛逼?那为什么Linux内核,PHP,Nginx,Apache这些大名鼎鼎稳定可靠的应用都没有用C++开发呢?

引用来自“妈她亲我”的评论

我也想问下,这些东西为什么不用PHP开发?

引用来自“地薯”的评论

同问

引用来自“Big Head”的评论

因为我大PHP根本不屑于开发这么简单的东西!!

引用来自“妈她亲我”的评论

那你大PHP都开发了什么高大上的东西?

引用来自“Big Head”的评论

那你得问我们@eechen大神
ee神的php是万能高贵的,怎么能开发这种凡夫俗子的东西
红白机
红白机

引用来自“想入肥菲”的评论

感觉还是用最好语言PHP比较靠谱!

引用来自“ylmotol7”的评论

php既然是最好的语言,为啥不用php开发操作系统?
有人用PHP开发了一个web操作系统!!
y
ylmotol7

引用来自“想入肥菲”的评论

感觉还是用最好语言PHP比较靠谱!
php既然是最好的语言,为啥不用php开发操作系统?
__JM_Joy__
__JM_Joy__
你咋不上天呢??
返回顶部
顶部