开源中国

我们不支持 IE 10 及以下版本浏览器

It appears you’re using an unsupported browser

为了获得更好的浏览体验,我们强烈建议您使用较新版本的 Chrome、 Firefox、 Safari 等,或者升级到最新版本的IE浏览器。 如果您使用的是 IE 11 或以上版本,请关闭“兼容性视图”。
下一代移动 iOS 和 安卓应用程序应该用 java 来编写的8大原因 - 技术翻译 - 开源中国社区

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

oschina 推荐于 2年前 (共 5 段, 翻译完成于 01-20) 评论 85
收藏  
81
推荐标签: 待读

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

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

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

ostatsu
 翻译得不错哦!

1. 静态类型

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

2. 托管运行时

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

ostatsu
 翻译得不错哦!

3. 性能

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

4. 工具

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

ostatsu
 翻译得不错哦!

5. 庞大的社区

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

6. 第三方生态体系

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

ostatsu
 翻译得不错哦!

7. 其他语言

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

8. 代码共享

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

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

ostatsu
 翻译得不错哦!
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们
评论(85)
Ctrl/CMD+Enter

虽然关于 Java 的优势的讨论是老生常谈,但这篇文章总结得不错,这也是我们为什么使用且继续使用 Java 的原因。
"其使用的是与 C/C++/Objective-C/Swift 相同的后端,提供了比 Objective-C 和 Swift 只高不低的性能"
确定不忽悠?
论“真假”后台的重要性
苹果是不是要准备8GB内存才够用。
扯鸡巴蛋呢!该用什么还是用什么,c能搞定一切,为毛要用java的逻辑?
貌似Java最被人诟病的就是性能和稳定性了吧~~~在移动应用上~~~
超过 9 亿的 Java 开发人员 @ostatsu

引用来自“余不知”的评论

超过 9 亿的 Java 开发人员 @ostatsu
已改 #_#

引用来自“payon”的评论

"其使用的是与 C/C++/Objective-C/Swift 相同的后端,提供了比 Objective-C 和 Swift 只高不低的性能"
确定不忽悠?
肯定忽悠,他偷换概念了,java运行的时间是字节码解释执行的时间,Jvm后面虽然也是c实现的,但是你拿c等实现的功能和c解释字节码的时间做比较,我就不知道不一样的东西怎么放一起比啊
还是用Java开发Android是最好的

引用来自“payon”的评论

"其使用的是与 C/C++/Objective-C/Swift 相同的后端,提供了比 Objective-C 和 Swift 只高不低的性能"
确定不忽悠?

引用来自“xpbob”的评论

肯定忽悠,他偷换概念了,java运行的时间是字节码解释执行的时间,Jvm后面虽然也是c实现的,但是你拿c等实现的功能和c解释字节码的时间做比较,我就不知道不一样的东西怎么放一起比啊
JIT 是直接将字节码转成 CPU 指令的,跟 JVM 翻译字节码有本质区别,理论上由于算法问题不可能比 C 更快,然而并没有真正底层的差别。
eechen还有30秒到达战场,碾碎他们
Robovm 也要发软文了么

引用来自“洛阳码农”的评论

eechen还有30秒到达战场,碾碎他们
@eechen : PHP 性能碾碎 Java
股沟如果不赔钱给龟壳,就不能在Android上用Java了,所以也不排除2016年是Java在Android上死掉的第一年.基于Web技术(WebView)开发App才有前途,比如在服务器端用PHP开发一个体验友好的手机站.又比如把内置HTTP服务器和SQLite数据库的PHP部署到Android本地,开一个WebView设一个随机UserAgent访问本地PHP,由本地PHP操作文件系统和网络,基于本地PHP开发本地WebApp.Ubuntu上静态链接交叉编译的PHP解释器APK打包后也才6MB.

引用来自“Br00k”的评论

苹果是不是要准备8GB内存才够用。

引用来自“Codi”的评论

Robovm 也要发软文了么
RoboVM 性能出众是事实,实测不比 Obj-C 差。
Android上用PHP运行时和调用BusyBox命令来削弱Java编程.
PHP和BusyBox经过APK打包后,大小仅为6MB左右,非常轻巧.
PHP进程占用的内存也很小,才5MB左右.
PHPer行动起来,在Android上用"WebView+本地PHP"革Java的老命.
http://ncu.dl.sourceforge.net/project/anmpp/binary/php-cli_7.0.0_arm.bz2
https://busybox.net/downloads/binaries/latest/busybox-armv7l

引用来自“Codi”的评论

Robovm 也要发软文了么

引用来自“cboomup”的评论

RoboVM 性能出众是事实,实测不比 Obj-C 差。
授权有点小贵啊 而且主要用户估计都是kingdom

引用来自“Codi”的评论

Robovm 也要发软文了么

引用来自“cboomup”的评论

RoboVM 性能出众是事实,实测不比 Obj-C 差。

引用来自“Codi”的评论

授权有点小贵啊 而且主要用户估计都是kingdom
Libgdx
顶部