【编者按】本文作者为 RoboVM 的 CEO 兼联合创始人 Henric Müller,主要介绍选用 Java 编写移动应用的八大理由。文章系国内 ITOM 管理平台 OneAPM 编译呈现。

在过去的十年中,Java一直很火。2015年,它又被再次证明是业内中坚力量——在TIOBE语言指数中占据绝对优势。虽然TIOBE排名的计算方法存在一些问题,但是与其他流行排名如RedMonk和PYPL结合来看,Java语言的受欢迎程度还是显而易见的。

作为行业内的领先选手,Java语言的增长步伐一直比较稳定。但是如何解释它最近的激增呢?甲骨文 使用Java 8 编写Lambdas和Streams显然是很重要的一大原因。此外,在增速极快的移动平台上面担任通用语言更是让Java如虎添翼。随着近来安卓向OpenJDK的靠拢,加上 Java 9 的步步逼近,笔者相信Java 的活跃度将持续增长。

Java语言的诸多益处显然引来了新鲜血液,但是作为老兵,我们知道久经考验的平台实力才是Java真正吸引开发者的原因。下面列出了8个你应该使用Java编程的原因:

1. 静态类型

随着后端和移动应用复杂度的不断增加,拥有一个易于维护和重构的代码库至关重要。静态类型确保了开发者在整个项目的开发周期中都保持理智,它在编译时就能发现大量的程序错误,确保了代码最优化,从而保证Java在工具生态系统中绝对领先的地位。

2. 运行时管理

JVM的垃圾回收器有效降低了编写内存安全应用的复杂度,消除了手动内存管理时容易出现的大多数错误。而并发,作为在Java早期就已出现的重要属性,提供了线程安全回收,原始类型同步和简单易用的多线程API。反射(reflection)是运行时管理的最后一招,它确保了依赖注入(dependency injection)或面向方面(aspect oriented)编程等高级理念的实现。

3. 性能

考虑服务端应用的性能时,HotSpot JVM 的 JIT(Just-in-Time)编译器和它多种多样的垃圾回收器几乎让人毫不犹豫地选择Java。而提前(Ahead-of-Time)编译是移动平台上的主导机制。在安卓上,ART 为计算型重负荷提供了几乎原生的性能。而在 iOS 平台上,RoboVM 使用了 LLVM( C/C++/Objective-C/Swift编译所用的相同后端),从而达到与Objective-C和Swift相当或更好的性能表现。

4. 工具

如果不管理论上的益处,围绕语言的工具数量与质量才是真正决定语言成败的关键。Eclipse,IntelliJ和NetBeans之类的IDE(集成开发环境)是其他可比平台工具的优质对比标准。代码导航,重整,完善和模板使得书写和维护项目代码变得更为高效。代码热调换(hot-swapping),调试,性能分析和单元测试让你很轻易找到问题根源。源码控制、应用服务器管理以及编译和依赖管理的集成环境为你的项目部署提供了基础。

5. 庞大的社区

世界上大概有超过九百万Java程序员。这一数字进而催生了大量的Java会议,书籍,在线资源,论坛和培训计划。Java开发者可以从中选择来提高技能。相比于Java人才资源库,其他语言平台的资源显得微不足道。此外,由于Java语言同时应用于服务器端和移动应用端,Java开发者能更灵活地全栈中放光发热。

6. 第三方生态系统

不管你正尝试解决什么难题,几乎可以确认的是Java社区中已经有人提出了解决方案。你的后端需要大数据分析?没问题,你可以在众多方案中选择,如Hadoop,Spark或是Elasticsearch。不想亲自为手机应用写分析代码?Twitter Fabric或Parse,你拿来用就行。需要JSON在后端和移动应用上同时实现序列化?简单,添加Gson,然后在全站分享你的POJO和序列逻辑。有了Maven和Grable的帮忙,添加第三方库就像在编译文件里添加一段代码那样简单。

7. 备选语言

虽然Java语言一直都是Java虚拟机里面的首要语言,而且正变得更具表现力。但是平台架构同时也欢迎其他语言。最近几年, Kotlin,Scala或Clojure等语言的采纳率正不断提升,这不仅仅是因为它们的语言特性,更是因为它们与现有的Java生态系统具有互通性。

8. 代码分享

我们将最为重要的问题放在了最后。Java在后端运行,不管是安卓还是iOS,它覆盖了几乎所有的大型平台。它的可移植性使你能够跨平台共享大量代码,进而节省应用部署所需的成本与资源。使用那些免费且有用的资源,将精力放在你真正的产品上,以此获得用户的青睐!

2015年对Java来说是辉煌的一年。或许,借助这个契机,使用Java编写跨平台移动应用会给你的2016带来事业上的成功。

OneAPM 能为您提供端到端的 Java 应用性能解决方案,我们支持所有常见的 Java 框架及应用服务器,助您快速发现系统瓶颈,定位异常根本原因。分钟级部署,即刻体验,Java 监控从来没有如此简单。想技术文章,请访问 OneAPM 官方技术博客。

本文转自 OneAPM 官方博客

原文链接: https://dzone.com/articles/8-reasons-your-next-mobile-ios-and-android-app-sho

转载于:https://www.cnblogs.com/oneapm/p/5482441.html

选择 Java 编写 iOS 与 安卓 App的八大理由相关推荐

  1. android icon 圆角半径,iOS和安卓APP启动图标的尺寸和圆角值详解

    今天在APP设计交流群里,又有不少的初学的APP设计小伙伴都在问ios端和安卓端的启动图标尺寸大小和圆角半径大小. 第一部分:我们先来看看iOS端的图标的尺寸和圆角大小详解 A.iOS6和之前版本,应 ...

  2. 安卓APP登录忘记密码以及通过邮箱找回密码的实现

    本文章主要实现的是APP端点击忘记密码之后,服务器将自动发送密码给APP. 需要做的事有: 1.java发送邮件需要的jar包: 2.在qq邮箱开通IMAP/SMTP服务,并生成授权码 3.编写邮件工 ...

  3. iphone装android软件,黑科技降临,红手指教你苹果手机如何安装安卓APP

    原标题:黑科技降临,红手指教你苹果手机如何安装安卓APP 苹果手机怎么安装安卓APP? 苹果手机怎么玩安卓游戏? 苹果手机怎么多开? 苹果手机游戏怎么多开? 苹果手机游戏多开的方法大全 苹果手机源自美 ...

  4. Python Kivy打包成安卓App

    Kivy官方提供了打包工具buildozer,该工具使用十分简便,其内部实际上是使用python-to-android完成的. 但是这个工具目前只能在Linux系统上使用,因此对于windows用户, ...

  5. 若依APP 一个非常火的java框架做个APP,若依Flutter安卓IOS桌面前端,若依安卓APP、若依苹果IOS APP、若依Linux APP、若依 MAC APP、若依 Windows APP

    在若依官网看了介绍,框架使用了最新技术栈.前后端分离.完全响应式布局.代码生成器......,似乎已经完美..... 若依这个框架在java非常火,后端和前端的技术非常先进,发现缺少一个原生APP,经 ...

  6. java applet 记事本_jsb java编写的安卓app记事本程序,适合app初学者 Applet 243万源代码下载- www.pudn.com...

    文件名称: jsb下载  收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 86 KB 上传时间: 2015-08-25 下载次数: 0 提 供 者: dr 详细说明:j ...

  7. Python 编写的图形程序打包为安卓 APP、IOS

    如果想使用 Python 语言编写图形界面程序,那么有不少的框架可以提供支持,比如 Kivy.Tkinter.PyQt.WxPython.pyui4win等等. 这些框架都是只能创建桌面图形界面程序, ...

  8. java安卓软件开发_9大安卓app开发软件盘点,0基础自己也能开发开发安卓app

    最近很多人咨询:安卓开发软件有哪些?最近新出了好几个安卓开发工具,如何选择?这里为大家盘点一下开发安卓app需要的专业工具,学习使用这些工具,可以让你开发出高质量.高效率的安卓app. 同时为大家推荐 ...

  9. 安卓APP注册登录+Tomcat服务器搭建+MySQL数据库建立+加密传输+servlet后端内容编写及部署到Tomcat服务器

    认真学习安卓也有三四个月了,现在记录一下关于用户的各种操作. 1.安卓APP的实现: 先看一下展示动图吧! 首先是登录界面的xml---------activity_mian.xml <?xml ...

最新文章

  1. 帆软所有销量为0的显示为空值_市场上最流行的9款跨境电商亚马逊销量预估工具精准度报告详解!...
  2. 资讯丨NVIDIA自造AI超级计算机:轻松进入世界前五
  3. Android CameraSurfaceView在SurfaceView上实现拍照,视频录像
  4. 临床医生如何解读Meta分析论文?
  5. python1加到100总和_从1加到一百总和是多少?有什么公式吗?
  6. spider RPC过滤器
  7. keil c语言怎么写程序,用keil软件如何编写单片机程序?
  8. 【Vue】VSCode搭建Vue项目
  9. 国内智能网联汽车信息安全政策汇总及思考
  10. 智能家庭本周锋闻:小米终于还是做了空气净化器
  11. OpenCV | 直线拟合fitline函数
  12. GMM-EM in Mnist
  13. Java读写json
  14. 几种下载慢的解决办法
  15. gps+wifi+mobile 5的手机参数对比
  16. ASP.NET2.0关于BIN目录下DLL文件访问的问题
  17. 关于 JS 中,实现在异步代码执行完毕再执行后续代码
  18. 韩国PAYWAVE认证之技术篇2
  19. 万年历显示程序C语言,C语言万年历的源程序
  20. 摸鱼加速小能手,实用笔刷快拿走

热门文章

  1. linux6.5 yum命令,CentOS6.5使用yum命令方便快捷安装Nginx
  2. 训练效果不好的解决办法
  3. 提取lbp特征java代码_特征提取算法之LBP
  4. mysql镜像备份和同步备份_mysql 主从同步及备份
  5. 调整oracle scn,在Oracle中增进SCN及案例介绍
  6. python scrapy爬虫遇见301_python Scrapy框架 报301
  7. springboot中配置多数据源mybatisPlus
  8. vscode remote ssh_win10 下安装Vscode
  9. linux如何卸载光驱显示busy,关于linux卸载设备时的busy问题处理
  10. java8获取路径_创建和读取目录