為這是每一種語言的最終命運都是:覆滅湮沒,準(zhǔn)確地說是越來越少地被利用到新項目中,。問題是:最后誰會取代它們呢,? 上周我們在 InfoQ 一篇同樣類型的文章,。至少,,這篇文章說出來這個語言可能的替代者 Kotlin。這讓我對 JVM 的語言現(xiàn)狀和趨勢有了許多思考:注意,,語言的趨勢與每個語言的技術(shù)優(yōu)點和缺點無關(guān),。 我于 2001 年年底開始做 Java 開發(fā),當(dāng)時,,Java 是真的很酷,。每一個新開發(fā)者都想使用所謂的新技術(shù):無論是 .NET 還是 Java,而有經(jīng)驗一些的開發(fā)者使用的是 COBOL,。我在學(xué)校學(xué)習(xí)了 C 和 C ,,所以 Java 內(nèi)存管理對于我來說非常簡單。我對 Java 很滿意,,但并不是每個人都這么認為,。 Groovy 誕生于 2003 年。但我不記得我是什么時候開始學(xué)習(xí)它的,。而實際上:使用它后我不再需要一門腳本語言了,。在具有多個開發(fā)團隊并長時間開發(fā)企業(yè)級應(yīng)用程序的背景之下,靜態(tài)類型相比動態(tài)類型擁有巨大優(yōu)勢,。尤其在進行產(chǎn)品測試以檢查類型系統(tǒng)時,。我唯一需要創(chuàng)建腳本的時候,是作為 WebSphere 管理員時:選擇 Python 還是 TCL。 一年之后,,Scala在2004年被我接受,。 我不記得是什么時候以及是怎樣知道Scala的,但那時候確實是很晚了,。與Groovy相反,,我決定試試它。主要的理由是我長期以來對創(chuàng)建“更好”的代碼(更好的可讀性和可維護性)感興趣,。Scala是靜態(tài)類型的,,它更像我正在尋找的東西。我報了Coursera課程Scala中的函數(shù)式編程原理,。它有三個主要的影響:
在 Groovy 和 Scala 之后,,第二代(如果你把 Java 也算做第一代的話,則是第三代)JVM 語言包括:
大致瀏覽一遍后,,我確信他們沒有太多的吸引力,,不值得我投入時間。 幾年前,,我決定自學(xué)基本的 Android 開發(fā),,以便能夠了解移動開發(fā)者的開發(fā)環(huán)境。好家伙,,即使有多年開發(fā) Java EE 和 Spring 應(yīng)用程序的經(jīng)驗,,但它還真給我一個驚喜了 - 還不是愉快的那種。這就像回到過去十年前那樣的開發(fā)體驗,,Android API 非常低級,,更別說在本地測試應(yīng)用程序。經(jīng)過快速的搜索相關(guān)信息,,我發(fā)現(xiàn) Kotlin 在很多地方被提到,,所以最后決定試一試。我立即愛上 Kotlin 了,,得虧它的擴展功能,,我可以將現(xiàn)有的垃圾 API 改進得更好,甚至更優(yōu)雅,。我開始更多的挖掘這門語言,,并開始在服務(wù)器端項目中使用 Kotlin,。然后,Spring 框架宣布了與 Kotlin 的整合,。然后在 Google I/O 大會上,,Google 也宣布在 Android 開發(fā)中官方支持 Kotlin。 這篇文章基于我個人的體驗和觀點,。如果你更喜歡閱讀你贊同的帖子,,請隨時停止閱讀。 除了我自己的經(jīng)驗,,這些語言的現(xiàn)狀是如何呢,? 我在Google Trends中進行了一個快速搜索。 有幾件有趣的事情值得關(guān)注:
進一步挖掘可能會發(fā)現(xiàn)有趣的事實:
我并不擅長預(yù)測,,但這是我的一些展望: 1,、Groovy擁有自己的強項——腳本,這就留下Java,、Scala和Kotlin在服務(wù)器端的JVM上為純應(yīng)用程序開發(fā)而爭奪占用率,。 2、Scala也開創(chuàng)了自己的領(lǐng)域,。Scala開發(fā)人員通常認為這種語言優(yōu)于Java(或Kotlin),,而不會轉(zhuǎn)移到另一種語言。然而,,由于Spring和Google的公告,,Kotlin可能會成為對Java不滿意的開發(fā)人員的Scala的替代。 3,、Kotlin已在Android戰(zhàn)場上獲勝,。Scala過去忽視了這個領(lǐng)域,并且不會在將來中繼續(xù)投入,,因此Kotlin在這場比賽中已經(jīng)遙遙領(lǐng)先了,。 4、Kotlin在手機上的崛起不是一個預(yù)期中的舉動,,而是一個不錯的意想不到的驚喜,。JetBrains一旦注意到這個趨勢就把它用作了前進的路標(biāo),。 5、Kotlin與Java的互操作性是殺手級別的功能,,這可能會說服管理者將遺留項目遷移到Kotlin上然后開始新項目,。正如Java的不間斷的后向兼容性一樣。 親愛的讀者,,盡管(特別是)你不同意上述的觀點,,但我將對你的意見非常感興趣。只要你有禮貌地提供事實,,并證實你的觀點即可,。
|
|