小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

JVM 語言的興衰史

 Levy_X 2017-11-14

為這是每一種語言的最終命運都是:覆滅湮沒,準(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ù)式編程原理。它有三個主要的影響:


  • 它讓我質(zhì)疑我寫Java代碼的方式。 例如,為什么當(dāng)我設(shè)計類時要自動生成getter和setter方法?

  • 對大多數(shù)開發(fā)者來說,我覺得Scala很容易寫出缺乏可讀性的的代碼——包括我。

  • 我開始尋找其他替代語言。


在 Groovy 和 Scala 之后,第二代(如果你把 Java 也算做第一代的話,則是第三代)JVM 語言包括:


  • JetBrains Kotlin

  • Red Hat Ceylon

  • Eclipse eXtend


大致瀏覽一遍后,我確信他們沒有太多的吸引力,不值得我投入時間。


幾年前,我決定自學(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)注:


  • Google已經(jīng)識別到諸如Scala、Groovy和Kotlin作為'編程語言'的搜索關(guān)鍵詞,而沒有把Ceylon和eXtend作為關(guān)鍵詞。對于Ceylon來說,我只能假裝它是因為Ceylon是一個受歡迎的地方。對于eXtend,恐怕是因為大家很少在Google中搜索它。

  • Scala是迄今為止最受歡迎的,其次是Groovy和Kotlin。我沒有關(guān)于Scala的真實線路圖。

  • 五月份的Kotlin搜索巔峰是與谷歌在Google I/O上的支持公告相關(guān)的。

  • 大多數(shù)搜索Scala和Kotlin的數(shù)據(jù)來自中國,考慮到地理位置上的平衡,Groovy更勝一籌。

  • Scala搜索與術(shù)語“Spark”強烈相關(guān),Kotlin搜索與術(shù)語“Android”相關(guān)。


進一步挖掘可能會發(fā)現(xiàn)有趣的事實:


  • xTend沒有死,因為它從未活過。從來沒有讀過任何關(guān)于它的帖子。從來沒有聽過一個關(guān)于它的峰會。

  • 2017年,紅帽公司將Ceylon捐贈給Eclipse基金會,創(chuàng)建了Eclipse Ceylon。將軟件贈送給基金會的私人行為可能會被不同的方式解釋。在這種情況下,盡管圍繞這一舉措進行了可靠的談判,但這并不意味著Ceylon的未來。

  • 2015年,Pivotal停止贊助Groovy,并轉(zhuǎn)移到Apache基金會。雖然我相信Groovy有足夠的支持基礎(chǔ),并且在JVM腳本上也是獨一無二的,但這并不是一個好兆頭。這與Groovy核心創(chuàng)建者的提交頻率相關(guān):它們的提交次數(shù)急劇減少 - 到某些停止點。

  • 有趣的是,Scala和Kotlin最近都入侵了其他領(lǐng)域,并將其翻譯成JavaScript并編譯成原生代碼。

  • 在Java中,JEP 286是使用類型推斷來增強語言的提議,這是Scala和Kotlin已經(jīng)提供的功能。然而,它僅限于局部變量。

  • 有意思的是,通過保留語言的一小部分,來努力提升Scala編譯時間。然后提出問題,為什么要保持Scala,如果你拋棄它強大的功能(如宏)?


我并不擅長預(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的不間斷的后向兼容性一樣。


親愛的讀者,盡管(特別是)你不同意上述的觀點,但我將對你的意見非常感興趣。只要你有禮貌地提供事實,并證實你的觀點即可。



  • 來自:開源中國社區(qū)

  • 鏈接:https://www.oschina.net/translate/the-rise-and-fall-of-jvm-languages

  • 原文:https:///articles/the-rise-and-fall-of-jvm-languages

  • 程序員大咖整理發(fā)布,轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)

【點擊成為安卓大神】

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多