自 Google 于 2017 年宣布 Kotlin 成為 Google IO 的 Android 開(kāi)發(fā)官方語(yǔ)言以來(lái)吨铸,想要成為Android開(kāi)發(fā)人員的程序員正陷入兩難境地行拢。
在討論這個(gè)問(wèn)題前,我首先要明確一點(diǎn)诞吱, 不要陷入編程語(yǔ)言戰(zhàn)爭(zhēng)舟奠,不要進(jìn)行語(yǔ)言鄙視,只要能賺錢的編程語(yǔ)言就是好語(yǔ)言房维。
最近看到這樣一篇文章: [Android 冬天來(lái)了] 其實(shí)吧沼瘫, 技術(shù)菜的人,同樣 iOS冬天來(lái)了咙俩,PHP冬天來(lái)了耿戚,python冬天來(lái)了,每年都是冬季,哪有春天可言溅话? 人工智能來(lái)了晓锻,是不是程序員死了 ?
我作為一名程序員飞几,深知 Android的發(fā)展并不像在2012移動(dòng)風(fēng)口時(shí)那么熱門砚哆, 但是Android開(kāi)發(fā)也不是寒冬, 天天網(wǎng)上唱衰這語(yǔ)言屑墨,助興那語(yǔ)言躁锁,真的沒(méi)必要瞎操這個(gè)心,這是google操心的事 卵史。
在我們面前真實(shí)的一個(gè)大問(wèn)題 我們學(xué)習(xí)什么战转,怎樣提高技術(shù),說(shuō)難聽(tīng)點(diǎn)就是怎樣多賺錢以躯,對(duì)于今天的話題 更是我應(yīng)該學(xué)習(xí)Kotlin還是Java槐秧?
如果你是一個(gè)想要學(xué)習(xí)Android開(kāi)發(fā)的編程初學(xué)者,那么我建議學(xué)習(xí)Java忧设,如果你是一個(gè)想要進(jìn)入Android App開(kāi)發(fā)目前待遇不錯(cuò)的Java開(kāi)發(fā)人員刁标,那么我建議是Kotlin。今天解釋下面兩個(gè)問(wèn)題址晕。
1.為什么Android初學(xué)者應(yīng)該先從學(xué)習(xí)Java開(kāi)始膀懈?
2.為 什么Java開(kāi)發(fā)人員應(yīng)該 在開(kāi)始 學(xué)習(xí)Kotlin?
當(dāng)我說(shuō)初學(xué)者應(yīng)該從學(xué)習(xí)Java開(kāi)始的時(shí)候,你可能會(huì)想:“為什么谨垃?Kotlin更加高效启搂,代碼更簡(jiǎn)潔,并且也是Android開(kāi)發(fā)的官方語(yǔ)言"而且這個(gè)人建議學(xué)習(xí)Java刘陶。并不是唱衰Kotlin....."
那么胳赌,作為一名Android開(kāi)發(fā),我的觀點(diǎn)可能有點(diǎn)偏見(jiàn),匙隔。
Android開(kāi)發(fā)初學(xué)者應(yīng)該先從學(xué)習(xí)Java開(kāi)始
作為一名程序員疑苫,我知道我的粉絲大都是搞Android開(kāi)發(fā)的,但如果你是做Java開(kāi)發(fā)的牡直,你的職業(yè)瓶頸相對(duì)較高,這意味著你有更多纳决,更高薪的就業(yè)機(jī)會(huì)碰逸。
其次,目前Java也擁有自己強(qiáng)大的開(kāi)源社區(qū)阔加,當(dāng)你遇到問(wèn)題就能通過(guò)這些找到答案饵史。
作為初學(xué)者,會(huì)遇到很多技術(shù)問(wèn)題,當(dāng)我們?cè)贕oogle搜索問(wèn)題時(shí)胳喷,肯定會(huì)得到答案;
相對(duì)Kotlin來(lái)說(shuō)湃番,還是一種新的編程語(yǔ)言,很多開(kāi)源項(xiàng)目還未成熟吭露,并且也相對(duì)稀少吠撮。
推薦:2017 年開(kāi)發(fā)者生產(chǎn)力報(bào)告: Kotlin 很受 Java 開(kāi)發(fā)人員的歡迎
[RebelLabs通過(guò)深入調(diào)查得到2017年開(kāi)發(fā)者生產(chǎn)力報(bào)告,Kotlin 很受 Java 開(kāi)發(fā)人員的歡迎讲竿,Spring 繼續(xù)主宰企業(yè)市場(chǎng)泥兰。 RebelLabs通過(guò)深入調(diào)查得到2017年開(kāi)發(fā)者生產(chǎn)力報(bào)告
此外,還有很多關(guān)于android開(kāi)發(fā)的教程题禀,書籍和課程鞋诗,包括免費(fèi)和付費(fèi)的,這些教程可以讓你先用java語(yǔ)言開(kāi)始入門Android開(kāi)發(fā)之路迈嘹,但對(duì)于Kotlin來(lái)說(shuō)這塊資料并不多削彬,特別是在Android上的免費(fèi)資源,在國(guó)外很多關(guān)于kotlin的進(jìn)階教程大都收費(fèi)的秀仲。
隨著越來(lái)越多的程序員開(kāi)始使用Kotlin開(kāi)發(fā)融痛,情況肯定會(huì)有所改善,但我懷疑它會(huì)撼動(dòng)Java編程語(yǔ)言的主流使用地位啄育。
但是酌心,這不是一條硬性的建議,如果你更喜歡學(xué)習(xí)Kotlin挑豌,并且數(shù)學(xué)不太好安券,并且主要想或者已經(jīng)從事Android開(kāi)發(fā),那么肯定是從Kotlin開(kāi)始學(xué)習(xí)氓英,目前Android Studio已經(jīng)支持kotlin開(kāi)發(fā)侯勉,
但是,一旦你熟悉Java語(yǔ)言铝阐,你的Kotlin之旅也將變得簡(jiǎn)單和順利址貌,因?yàn)镵otlin完全與Java互相支持調(diào)用。它依然編譯成Java字節(jié)碼并在 JVM上 運(yùn)行徘键。
Java程序員應(yīng)該學(xué)習(xí)Kotlin
對(duì)Java開(kāi)發(fā)人員來(lái)說(shuō)练对,我認(rèn)為最好學(xué)習(xí)Kotlin,因?yàn)樗_實(shí)提高了開(kāi)發(fā)效率吹害。
一個(gè)在Java中使用50行代碼的類可以在Kotlin中只寫一行螟凭。
它可以幫助你避免所有的火車代碼(說(shuō)了一大堆不知道寫的是什么),例如你不需要指定 getter和setter 它呀, equals() 螺男, hashCode() 或 toString() 方法棒厘。Kotlin可以自己生成所有這些。我對(duì) Kotlin 和 Java 在開(kāi)發(fā)編寫生產(chǎn)力和編寫類似代碼的代碼方面進(jìn)行了比較:
如果你不知道Kotlin是由JetBrains開(kāi)發(fā)的下隧,后者也是最流行的Java IDE之一IntelliJ IDEA的后臺(tái)奢人。
他們是一家Java 工具開(kāi)發(fā)商,正在開(kāi)發(fā)像IntelliJ IDEA淆院,PyCharm和ReSharper這樣的IDE何乎,所有這些都是用Java編寫的,并且構(gòu)建了Kotlin來(lái)提高他們的工作效率迫筑,但同時(shí)他們不能在Kotlin中重寫所有的代碼宪赶,所以這就是為什么他們讓Kotlin與Java完全互通。
因?yàn)镵otlin生成Java字節(jié)碼脯燃,所以可以在Kotlin中使用你最喜歡的Java
框架和三方庫(kù)搂妻,并且其他Java開(kāi)發(fā)人員也可以使用你開(kāi)發(fā)的Kotlin框架。
即使是Spring辕棚, 有個(gè)主要的Java框架 已經(jīng)開(kāi)始從Spring5.0 開(kāi)始支持Kotlin了, 可見(jiàn)對(duì)于java 人員欲主,Kotlin的未來(lái)前景蠻鮮明。 2017 年開(kāi)發(fā)者生產(chǎn)力報(bào)告: Kotlin 很受 Java 開(kāi)發(fā)人員的歡迎逝嚎。
盡管目前幾乎所有的Android代碼扁瓢,示例demo 和App都是用Java編寫的,但這種情況維持不了多久补君,因?yàn)镚oogle從宣布Kotlin是Android應(yīng)用程序開(kāi)發(fā)的官方語(yǔ)言以來(lái)贪磺,都對(duì)Kotlin進(jìn)行了大量的推廣针贬,在不同開(kāi)發(fā)者大會(huì)都會(huì)進(jìn)行技術(shù)演進(jìn),并且想facebook, Squre等公司已經(jīng)切到kotlin開(kāi)發(fā),國(guó)內(nèi)也有一些獨(dú)立開(kāi)發(fā)者編寫Kotlin教程祖今,雖然國(guó)內(nèi)App目前并沒(méi)有公開(kāi)說(shuō)明已經(jīng)使用kotlin語(yǔ)言折柠。
但是很多多公司已經(jīng)開(kāi)始使用Kotlin開(kāi)發(fā)Android應(yīng)用程序蚣抗,這也是我認(rèn)為Java道偷,和android高級(jí)進(jìn)階開(kāi)發(fā)人員應(yīng)該在今年學(xué)習(xí)Kotlin的主要原因
想學(xué)習(xí)更多Android知識(shí),或者獲取相關(guān)資料請(qǐng)加入Android開(kāi)發(fā)交流群:1018342383更扁。 有面試資源系統(tǒng)整理分享盖腕,Java語(yǔ)言進(jìn)階和Kotlin語(yǔ)言與Android相關(guān)技術(shù)內(nèi)核,APP開(kāi)發(fā)框架知識(shí)浓镜, 360°Android App全方位性能優(yōu)化溃列。Android前沿技術(shù),高級(jí)UI膛薛、Gradle听隐、RxJava、小程序相叁、Hybrid遵绰、 移動(dòng)架構(gòu)師專題項(xiàng)目實(shí)戰(zhàn)環(huán)節(jié)、React Native增淹、等技術(shù)教程椿访!架構(gòu)師課程、NDK模塊開(kāi)發(fā)虑润、 Flutter等全方面的 Android高級(jí)實(shí)踐技術(shù)講解成玫。還有在線答疑