【編者按】本文作者為 RoboVM 的 CEO 兼聯(lián)合創(chuàng)始人 Henric Müller,主要介紹選用 Java 編寫移動(dòng)應(yīng)用的八大理由苗傅。文章系國內(nèi) ITOM 管理平臺(tái) OneAPM 編譯呈現(xiàn)。
在過去的十年中属韧,Java一直很火述吸。2015年,它又被再次證明是業(yè)內(nèi)中堅(jiān)力量——在TIOBE語言指數(shù)中占據(jù)絕對優(yōu)勢啥么。雖然TIOBE排名的計(jì)算方法存在一些問題,但是與其他流行排名如RedMonk和PYPL結(jié)合來看贰逾,Java語言的受歡迎程度還是顯而易見的饥臂。
作為行業(yè)內(nèi)的領(lǐng)先選手,Java語言的增長步伐一直比較穩(wěn)定似踱。但是如何解釋它最近的激增呢?甲骨文 使用Java 8 編寫Lambdas和Streams顯然是很重要的一大原因。此外核芽,在增速極快的移動(dòng)平臺(tái)上面擔(dān)任通用語言更是讓Java如虎添翼囚戚。隨著近來安卓向OpenJDK的靠攏,加上 Java 9 的步步逼近轧简,筆者相信Java 的活躍度將持續(xù)增長驰坊。
Java語言的諸多益處顯然引來了新鮮血液,但是作為老兵哮独,我們知道久經(jīng)考驗(yàn)的平臺(tái)實(shí)力才是Java真正吸引開發(fā)者的原因拳芙。下面列出了8個(gè)你應(yīng)該使用Java編程的原因:
1. 靜態(tài)類型
隨著后端和移動(dòng)應(yīng)用復(fù)雜度的不斷增加,擁有一個(gè)易于維護(hù)和重構(gòu)的代碼庫至關(guān)重要皮璧。靜態(tài)類型確保了開發(fā)者在整個(gè)項(xiàng)目的開發(fā)周期中都保持理智舟扎,它在編譯時(shí)就能發(fā)現(xiàn)大量的程序錯(cuò)誤,確保了代碼最優(yōu)化悴务,從而保證Java在工具生態(tài)系統(tǒng)中絕對領(lǐng)先的地位睹限。
2. 運(yùn)行時(shí)管理
JVM的垃圾回收器有效降低了編寫內(nèi)存安全應(yīng)用的復(fù)雜度,消除了手動(dòng)內(nèi)存管理時(shí)容易出現(xiàn)的大多數(shù)錯(cuò)誤涤躲。而并發(fā)陌宿,作為在Java早期就已出現(xiàn)的重要屬性椰棘,提供了線程安全回收,原始類型同步和簡單易用的多線程API叨恨。反射(reflection)是運(yùn)行時(shí)管理的最后一招,它確保了依賴注入(dependency injection)或面向方面(aspect oriented)編程等高級理念的實(shí)現(xiàn)挖垛。
3. 性能
考慮服務(wù)端應(yīng)用的性能時(shí)痒钝,HotSpot JVM 的 JIT(Just-in-Time)編譯器和它多種多樣的垃圾回收器幾乎讓人毫不猶豫地選擇Java。而提前(Ahead-of-Time)編譯是移動(dòng)平臺(tái)上的主導(dǎo)機(jī)制晕换。在安卓上午乓,ART 為計(jì)算型重負(fù)荷提供了幾乎原生的性能。而在 iOS 平臺(tái)上闸准,RoboVM 使用了 LLVM( C/C++/Objective-C/Swift編譯所用的相同后端)益愈,從而達(dá)到與Objective-C和Swift相當(dāng)或更好的性能表現(xiàn)。
4. 工具
如果不管理論上的益處夷家,圍繞語言的工具數(shù)量與質(zhì)量才是真正決定語言成敗的關(guān)鍵蒸其。Eclipse,IntelliJ和NetBeans之類的IDE(集成開發(fā)環(huán)境)是其他可比平臺(tái)工具的優(yōu)質(zhì)對比標(biāo)準(zhǔn)库快。代碼導(dǎo)航摸袁,重整,完善和模板使得書寫和維護(hù)項(xiàng)目代碼變得更為高效义屏。代碼熱調(diào)換(hot-swapping)靠汁,調(diào)試蜂大,性能分析和單元測試讓你很輕易找到問題根源。源碼控制蝶怔、應(yīng)用服務(wù)器管理以及編譯和依賴管理的集成環(huán)境為你的項(xiàng)目部署提供了基礎(chǔ)奶浦。
5. 龐大的社區(qū)
世界上大概有超過九百萬Java程序員。這一數(shù)字進(jìn)而催生了大量的Java會(huì)議踢星,書籍澳叉,在線資源,論壇和培訓(xùn)計(jì)劃沐悦。Java開發(fā)者可以從中選擇來提高技能成洗。相比于Java人才資源庫,其他語言平臺(tái)的資源顯得微不足道藏否。此外瓶殃,由于Java語言同時(shí)應(yīng)用于服務(wù)器端和移動(dòng)應(yīng)用端,Java開發(fā)者能更靈活地全棧中放光發(fā)熱秕岛。
6. 第三方生態(tài)系統(tǒng)
不管你正嘗試解決什么難題碌燕,幾乎可以確認(rèn)的是Java社區(qū)中已經(jīng)有人提出了解決方案。你的后端需要大數(shù)據(jù)分析继薛?沒問題修壕,你可以在眾多方案中選擇,如Hadoop遏考,Spark或是Elasticsearch慈鸠。不想親自為手機(jī)應(yīng)用寫分析代碼?Twitter Fabric或Parse灌具,你拿來用就行青团。需要JSON在后端和移動(dòng)應(yīng)用上同時(shí)實(shí)現(xiàn)序列化?簡單咖楣,添加Gson督笆,然后在全站分享你的POJO和序列邏輯。有了Maven和Grable的幫忙诱贿,添加第三方庫就像在編譯文件里添加一段代碼那樣簡單娃肿。
7. 備選語言
雖然Java語言一直都是Java虛擬機(jī)里面的首要語言,而且正變得更具表現(xiàn)力珠十。但是平臺(tái)架構(gòu)同時(shí)也歡迎其他語言料扰。最近幾年, Kotlin焙蹭,Scala或Clojure等語言的采納率正不斷提升晒杈,這不僅僅是因?yàn)樗鼈兊恼Z言特性,更是因?yàn)樗鼈兣c現(xiàn)有的Java生態(tài)系統(tǒng)具有互通性孔厉。
8. 代碼分享
我們將最為重要的問題放在了最后拯钻。Java在后端運(yùn)行帖努,不管是安卓還是iOS,它覆蓋了幾乎所有的大型平臺(tái)说庭。它的可移植性使你能夠跨平臺(tái)共享大量代碼然磷,進(jìn)而節(jié)省應(yīng)用部署所需的成本與資源。使用那些免費(fèi)且有用的資源刊驴,將精力放在你真正的產(chǎn)品上,以此獲得用戶的青睞寡润!
2015年對Java來說是輝煌的一年捆憎。或許梭纹,借助這個(gè)契機(jī)躲惰,使用Java編寫跨平臺(tái)移動(dòng)應(yīng)用會(huì)給你的2016帶來事業(yè)上的成功。
OneAPM 能為您提供端到端的 Java 應(yīng)用性能解決方案变抽,我們支持所有常見的 Java 框架及應(yīng)用服務(wù)器础拨,助您快速發(fā)現(xiàn)系統(tǒng)瓶頸,定位異常根本原因绍载。分鐘級部署诡宗,即刻體驗(yàn),Java 監(jiān)控從來沒有如此簡單击儡。想閱讀更多技術(shù)文章塔沃,請?jiān)L問 OneAPM 官方技術(shù)博客。
本文轉(zhuǎn)自 OneAPM 官方博客
原文鏈接: https://dzone.com/articles/8-reasons-your-next-mobile-ios-and-android-app-sho