如何看待 Kotlin 成為 Google 正式支持的 Android 開發一級編程語言?

在5月17日(北京時間5月18日凌晨)的Google I/O 2017 Keynote上, 谷歌宣布,將Kotlin語言作為安卓開發的一級編程語言……Kotlin由JetBrains公司開發,與Java 100%互通,並具備諸多Java尚不支持的新特性。(消息來源:這次谷歌I/O大會沒什麼驚喜,踏踏實實地將AI first又往前推了一步)


看了一天這個問題,終於有機會好好答一下。

首先明確,Google 說的是 Official support kotlin 不是 Official replace java with kotlin。

區別是什麼?

Kotlin作為「官方」開發Android用的語言,幾乎已經是大家都默認的事實(畢竟JetBrains也算Android半個爹)。 社區在用Kotlin甚至已經用了很久的公司數不勝數,著名的有Square,flipboard, NetFlix等等。

Kotlin作為Android開發語言,可以說早已經經過了時間的驗證,很多大型第三方庫都有對應的Kotlin增強版本。Function Extension,Inline Function,Data Class, Sealed Class等等語法都是你在Java不能做到的。更不用說Kotlin中lambda無處不在的應用。

Kotlin當然有坑,我自己也踩過不少坑。但是哪有語言沒有坑呢? 而且Kotlin的坑絕對比Kotlin填好的Java坑少的太多了。

Kotlin作為開發Android唯一缺乏的就是官方的支持也就是我們想要的Kotlin對應的Support Library。

Kotlin std-lib 體積龐大,給app增加體積一直被詬病。Kapt也來的沒有官方的annotationProceccor來的快。 並且Kotlin的語言特性如果有官方支持肯定能做到的更多。

還有一個就是社區也怕Google萬一某天說我就是要支持Dart 就是要支持Go。就不支持Kotlin這種擔心。

與其說Google支持kotlin是為了推廣kotlin, 我更覺得Google這次是給正在使用或大量使用kotlin的開發者,還有某些正在猶豫要不要使用Kotlin的開發者一個定心丸。 大家都可以安心的使用Kotlin。 對比Google這次出的Architecture Component。Kotlin只有一個3.0的 AS 和一些模板支持。暫時還沒有出現對應的support lib。 所以Google這次根本就不是為了推廣,而是對社區的一種反饋。

所以我來懟一下目前某些高票回答

首先這位。 他也提出了,大問題是生態和社區。Kotlin可以說在沒有官方支持之前,就已經在Android上活的很自在了。而且Kotlin作為工具語言,學習成本可以說非常之低。很多特性都是為了方便而設計,而不是像Java。想有新特性,又忌憚歷史包袱最後搞出個奇奇怪怪的東西出來。

再來這位。 Kotlin至少在NPE這方面確實比Java強的太多了。Kotlin被官方支持難道不該高興么? 我不懂為什麼包括這個回答的人在內的很多人。都在給Kotlin潑冷水。

要麼說什麼想成為Android中的Swift 路還長, 要麼說什麼看看現在Swift什麼地位,再看看kotlin。

對於這種無力吐槽。 希望你們真的用過Kotlin做過一個差不多的項目之後,再回來評價Kotlin。

至於為什麼這種答案這麼高票,我想可能也就是太多人不想擁抱變化了吧。


利益相關,工作開發用Kotlin快兩年了

怎麼說,真是心累,一年半前我就在公司開始安利Kotlin,沒人理我,沒人願意學,非要Google爸爸出來說你們才學,你們之前幹啥去了。昨天我GitHub瞬間多了好多star,驚了。

Android這個行業魚目混雜,大多數人只會Java,只學習火的東西,為了就是找工作方便,都沒聽說過函數式編程,更不要說學新語言了,這種人是很難交流的。很早之前我跟 @zzz40500 安利過多次Kotlin,雖然他表現出了興趣,但始終不肯學,就是這種情況。

綜上所述,Kotlin現在還是發展初級階段,要想火,必現有大量公司提供相關職位(與Java區分開,比如Kotlin工程師),不然寫Java的還是寫Java,寫Kotlin的還是寫Kotlin,跟語言好不好什麼、編譯快不快什麼的關係不大,商業而已,你們啊不要老想搞個大新聞,拿衣服。

不過等Kotlin火了,什麼培訓班、知乎live就、小密圈什麼的就出來了,凈土也就被污染了,反正我也不打算搞Android了,你們愛咋搞咋搞。

我之前為了在公司推廣Kotlin,寫了點東西,有興趣的可以看看:

Kotlin: A Brief Introduction(PPT需科學上網);Kotlin The Right Way;So Let"s Talk About Kotlin

語言相關的話:Kotlin的DSL真的很強大,讓我找回了Lisp的感覺;Kotlin 1.1加了coroutine,以後會出現類似akka的並發庫,Android上可以利用它擺脫非同步的回調地獄,很方便;Kotlin以後的路還很長,要加的東西還很多,比如type class,到時候函數式的庫會變多起來,Monad也跑不了(笑):

真是越來越像Scala了呢,親(Haskell笑而不語)


拉黑了某人,然後轉換成簡體給大家看

=======================================

就亂說一下

1. kotlin解放生產力,java 8的語法是很不錯了,但比起kotlin還是差一點

2. kotlin在js和native的道路上邁步向前了,而Google新的OS Fuchsia也正式確立了Dart(框架: Flutter)的地位,而非既存的Java,在既存的java/jvm的法律問題的影響下,kotlin在將來是有望成為Android與Fuchsia的備胎語言,那是作為Dart以外針對Java使用者的一個重要緩衝手段,畢竟Flutter是以通用移動平台應用開發框架為目標(其實也就iOS/Android),Flutter會支援Kotlin也並非不可能的事...

3. kotlin家的JB和java家的Oracle....和JB合作了這麽一段時間了,追加kotlin官方支持又不是甚麽難事,更重要的是姿勢啊姿勢,繼採用openjdk後另一發還擊,對於Oracle來說會變成怎樣我不清楚,可是Java alive and kicking的除了Android就是...SE? Java會加速老化,成為下一個Cobol吧,大而不能倒,一堆Legacy code,最主要是Oracle對Java真的就放置PLAY,除了能壓榨其他公司時才看到Oracle的身影...說遠了,總之是加強自己的掌控能力,Google不會一直捱打的


終於有足夠的理由不再寫哪怕一行又臭又長的java代碼了,話說啥時候有es next to kotlin?


這個新聞來得有點突然,有點像秘密籌劃的(或者說是我們反映太慢還是風聲傳播得不遠?)。

大概在一年多以前,還有人向官方提問,說 Google 曾經考慮過將 Kotlin 納入官方語言,但據說因為 Kotlin 編譯速度太慢,所以放棄考慮了。

當然,這是個謠言,立馬被 Kotlin 官方的人回應了。Kotlin 在多數情況下並沒有編譯速度過慢的問題,而且也沒有收到過 Google 官方宣稱要合作的意圖。

現在,Google 宣布 Kotlin 作為安卓開發語言被正式支持了,實在突然。說實話,Android Studio 3.0 官方支持 Kotlin 我也並不期待能帶來多友好的變化,因為現在的 Kotlin 作為小三已經直逼正宮了,絲毫沒有違和感。

再說說 Kotlin 和 Android 的淵源:

創造 Kotlin 的公司 Jetbrains 有深厚的 Java 開發經驗:他們的 IDE 全部用 Java 創造,IntelliJ IDEA 作為最初拿出手的產品就是專門為 Java 這門語言打造的。

以至於到後來更多語言開發工具的支持以及獨立的 IntelliJ Platform 的成功都功不可沒。不得不說是 Java 成就了這家公司。

Kotlin 則是 Jatbrains 的工程師們對 Java 開發經驗的總結,而自己創造的 JVM 語言。

Android Studio 是由 Google 和 Jetbrains 合作開發的 IDE 工具,在啟動界面還可以看到 Powered by IntelliJ Platform 字樣。也就是說 Android Studio 的開發都有 Kotlin 參與,Google 有什麼理由不信任這門語言?

—— 說個多餘的,如果你多關注 Kotlin 最近的項目和博客,會發現 Kotlin 的野心很大,:

移動平台(包括 IOS)、高並發服務端(利用協程)、嵌入式/物聯網、科學計算等領域都是 Kotlin 的目標,不過能不能實現我倒是並不關心。 Kotlin 用於安卓讓開發體驗提升了不少這是實實在在的。

不過,即便是純 Java 開發安卓也並不存在什麼大的問題。以為學了 Kotlin 是一種投機取巧或者就能鄙視 Java 之類的心態還是省省。在高逼格的 Java 程序員面前你仍然是被吊著打。


嗯,怎麼說呢,個人認為,Google專門從外面請了Jake Wharton(Square員工,Butterknife作者,知名Kotlin推動者)來在I/O 2017上分享Kotlin心得,而不是派自家員工,應該可以說明Google的態度。再怎麼說,用Kotlin還是跑在傳統Android API上,不像React Native或Litho那樣把UI / layout層都干翻了重來過,感情上還是可以接受的嘛。


厲害的開發工程師不是語言決定的,而是代碼質量決定的,換了語言入門並不改變什麼,深入程度才是王道。


感覺不少人只是因為自己早於他人接觸了kotlin,等谷歌消息一出,覺得屬於自己的時代到來了,自覺有先見之明而表達一下爆棚的自豪感而已。java也好,kotlin也罷,愛怎麼寫怎麼寫,艹什麼心?一不耐煩手寫位元組碼,那才叫屌了


眾所周知 kotlin for jvm 已經做的很完美,贏得了眾多鐵粉,就等以後jvm真泛型之類的了, 而 kotlin 下一個大的目標是kotlin native, wasm也是順帶的, for js 在前段時間剛推出 .d.ts 轉換工具, 當然我覺得 js.next 還是由 typescript 來引領更好. 敬請期待。


Google IO 2017宣布了 Kotlin 會成為 Android 官方開發語言。一時間朋友圈和Android圈被各種刷屏。當然我也順勢而為發布了一篇的文章《為什麼我要改用Kotlin 》,著實狠狠地蹭了一波熱度(儘管這樣會被鄙視)。眼下Android圈已經躁動了,甚至嚴重到如果對Kotlin視而不見就顯得自己不像一個合格的Android程序員。

本文嘗試從一個客觀全面一點兒的角度來看待這件事情,儘力為大家提供一個比較理性的觀點供參考。

為什麼會選用Kotlin

關於 Google 為什麼會選擇 Kotlin,我認為有兩方面的原因。

  1. 為了逐漸擺脫專利流氓Oracle。從去年的轉向OpenJDK,到現在的支持Kotlin作為官方語言,某種意義是為了擺脫藉由9行代碼敲詐獲取天價賠償的Oracle。
  2. 選用Kotlin,實至名歸,這個榮譽它值得擁有。Kotlin確實以其實用,高效贏得了海外很多公司和開發者的認可,比如Square的Jake大神一直在推Kotlin。Kotlin在國外至少有將近2年的應用生產環境的實踐(非JetBrains內部實踐應用)。在移動開發中,相比iOS程序員,Android程序員總是很幸運,因為我們有很多優秀好用的工具(Android Studio等),選用Kotlin,則是Google 為開發者提供高效的開發工具的一貫作風。

成為 Android官方開發語言意味著什麼

  • 官方:工具支持(Android Studio 3.0附帶Kotlin),官方的宣傳(教學視頻,主題演講等)
  • 對於社區來說,Kotlin版本的庫和框架如雨後春筍般湧現
  • 對於Java,曾經藉助Android這場春風,著實讓遲暮的它再度輝煌,現在和將來在Android領域可謂是棋逢敵手,Java的在Android開發語言市場份額會降。但是這也並不一定是壞事,有競爭才能更好進步。
  • 對於Android 開發者,我們多了一種開發Android的語言選擇,那些對於之前由於前景不明朗卻對Kotlin躍躍欲試的人可以放心使用了。有了Kotlin意味著開發效率應該會有所提升。
  • 對於團隊,這往往帶來了一個選擇的問題,Use Kotlin or not, That』s a question. 團隊中總有人想要嘗試Kotlin,而另一些人則興緻不那麼高。由於歷史包袱,團隊成員興趣,對於已有項目採用Kotlin和Java長期並存是實際可行的方案。而新項目則應該鼓勵使用Kotlin,但具體還需要結合團隊的能力和其他因素。

Kotlin的魅力究竟在哪裡

Kotlin的有很多特點,比如簡潔,安全實用,開發效率高和提升可讀性,更好的函數式編程支持。

1.簡潔,Kotlin的代碼確實比Java更加簡潔,比如類型推斷,省去結尾的分號等等,然而這遠不能成為我們改用Kotlin的原因。

2.安全,這是Kotlin的一個很重要的特性。Kotlin是空指針安全的,JetBrains做了一件很聰明的事情,它們將運行時才能空指針的檢測提前到了編譯時,主要方式是增加了Any?這種可為空的類型,使用Kotlin之後,我們程序的空指針會得到明顯的改善。

3.實用,高效率。Kotlin的實用具體表現在

  • 引入Object,便於我們更好的應用單例模式
  • 引入data class, 避免了我們手寫getter/setter/toString等方法
  • 引入參數默認值和具名參數,避免了不必要的方法重載
  • 支持擴展方法,讓我們可以省去好多必須要的代碼

4.Kotlin引入了Lambda,Streams API 和函數式編程支持。

  • Lambda表達式可以省去了我們創建很多匿名內部類的代碼(注由於目前Kotlin基於JVM6,Lambda表達式在位元組碼階段依然會翻譯成內部類形式)
  • Streams API 結合Lambda表達式和方法引用,讓我們的代碼處理一件事情以描述的形式,而不是命令實現的方式。
  • Kotlin支持OOP(面向對象編程)和FP(函數式編程),語言本身並沒有限制,給了我們選擇的自由,Kotlin對FP的友好支持,便於我們寫出更加穩定,易於測試,無副作用的方法和代碼

5.可讀性 從客觀上,Kotlin語法和特性上讓代碼更加具有描述性而已。但是不得不指出代碼可讀性主要依賴編寫者的編碼素質和能力

對我個人而言,高階函數和方法擴展這兩個特點著實真心受用。方法擴展會讓我有一種創造感,這是Java種的Util方法所無法比擬的。

Kotlin是否會取代Java

這個很難說,因為這個世界上並不是一件事物好,就會必然得到廣泛應用的。一件事物的推廣開來靠的是一群人,但阻力也往往也來自一群人,只不過和前者不是相同人群。

從個人主觀來看這個問題,我更加願意看到這種現象發生。原因並不是因為我更喜歡Kotlin,而是在於我更願意看到事物在進步,在變得優秀,所以即便某一天Kotlin被更加優秀的語言取代,我也是很歡迎的。

哪些人適合率先應用 Kotlin

Kotlin適用於多個平台,並沒有對學習者做限制。任何有學習意願的人都可以習得這門語言。

但是考慮到國內 Kotlin 資源不夠豐富,網路不夠暢通等問題,所以導致了很多人變成了吃瓜群眾進行觀望。

然而,對於一個項目和團隊來說,總需要有第一個人先來推進。而且這個推進過程並非順利,這其中包括

  • 首先你需要足夠了解Kotlin
  • 你需要說服團隊,這期間你會接收到很多challenges,有時候你會很沮喪和生氣
  • 你需要提供一系列的資料或分享,比如如何配置,sample code, troubleshooting等等
  • 有時候甚至你經常兼職做mentor指導工作,這也就意味著你的手頭上的其他工作需要被打斷

上述推進 Kotlin 觀點部分參考自Life is Great and Everything Will Be Ok, Kotlin is Here (Google I/O 『17) 中 Christina Lee(Pinterest Software Engineer,國外 Kotlin 美女佈道師之一)的分享內容。

雖然 Kotlin 很優秀,但是推動在項目中推動 Kotlin 應用並非易事,因為這對於新事物來說在正常不過了,就像明治維新一樣看起來很光鮮,成功,但是它的變革進程並非順利,先是血雨腥風的倒幕運動,再到明治六年爆發的標誌武士時代結束的西南戰爭,經過數十年的努力才算取得成功。

因此關於哪些人適合率先應用 Kotlin,我認為需要具備以下幾點

  • Java 技術和基礎要好,這一點很重要
  • 英語要好,因為目前 Kotlin 的資料幾乎都是英文的,當然也推薦看英文的
  • 願意承擔在項目團隊推進工作,有耐心,敢挑戰,負責任

關於Kotlin 項目應用中 的一些顧慮

目前想到了一些關於 Kotlin 應用在項目中的一些顧慮。這些顧慮目前並非全面,但是提出來,希望大家可以規避和改善。

1.寫出來的代碼並不是 Kotlin style。解決這個問題,還是需要多學習和思考

2.擴展方法的濫用,Kotlin 的擴展方法很好,我們可以擴展很多方法,彌補Framework的一些不完善,但是擴展時我們需要謹慎,一定要把合適的方法放到合適的類型上,不可為了簡單增加不符合某些類不應該具備的職責。 具體需要最好以下兩點

  • 選擇在合理範圍內的最抽象類增加方法,比如我們想為Activity增加一個longToast,應該想一想是不是放在更加抽象的Context會更好一些
  • 同時也不能為了便利,增加和當前類不相關的方法,比如我們想為每個Context增加顯示一個簡單dialog的擴展方法,這顯然不是很合理,因為對於非UI的Context這是有問題。

Android 程序員的核心競爭力在哪裡

Kotlin出來之後,聽到了兩種不同的聲音:

  • 太好了,終於可以有理由改用Kotlin了,寫代碼更加高效了。可以逐漸開始放棄Java了。
  • WTF,又要學新的語言,感覺好累,會不會以後面試不會Kotlin就被pass掉呢。

出現以上兩種不同的聲音,不得不引起我們對於 Android 程序員的核心競爭力的思考。那麼到底什麼才是 Android 程序員的核心競爭力呢?

Android程序員和其他程序員甚至其他職業並無二致,我認為這種競爭力表現在解決問題的能力。想要具備這種能力,極其依賴我們對問題和技術的準確認識和紮實的基礎。

編程語言本質上還是工具,好的工具能帶來更好的效果,但是如何運用好,將效率和質量提升到最高,則還是更主要的依賴於開發者的能力。

選用好的工具,更側重夯實基礎和加強對事物本質認識的能力,我想這樣才能讓我們的競爭力更強。

總結而言,Kotlin是一個更好的工具,沒有它,並不影響我們日常的 Android 開發工作。但是我還是建議開發者和團隊去嘗試這種語言,抓住這個近在咫尺的小確幸。

額外的話

事情的發展越來越顯得不可控了,推介Kotlin和不看好Kotlin的人逐漸分化出來,更準確的說,甚至這件事已經快要演變成了從對事變成了對人。

Kotlin 成為 Android 官方語言的消息一出來,一下子出來了很多被當做投機蹭熱點的Kotlin推介者,當然還出現了一些看不慣這些做法的人,他們認為前者刻意拔高了Kotlin。因而討論越來越偏向從事情到人的方面。我想要說的是,就像商人追求利潤,資本家攫取剩餘價值那樣,投機者蹭熱點,以及招致他人批評,這都是正常的事情,但是我們不能讓討論脫離問題的本質,我們需要回歸。

很多人說Kotlin無非就是很多語法糖,沒什麼突破

沒錯,Kotlin是有很多很多的語法糖。有必要簡單普及一下語法糖的概念(如下摘自維基百科)

In computer science, syntactic sugar is syntax within a programming language that is designed to make things easier to read or to express. It makes the language 「sweeter」 for human use: things can be expressed more clearly, more concisely, or in an alternative style that some may prefer.

由定義可知,語法糖的目的就是讓代碼更簡單,更可讀。

決定Kotlin使用這麼多語法糖的除了簡潔,高效可讀之外,還有一個原因,是因為kotlin編譯生成的class文件是目標到JVM 6(基於JVM 6 是一種權衡後的結果),比如我們在Kotlin中使用了Lambda,它是不可能編譯成invokedynamic指令的,因為那樣會導致在JVM6上根本無法識別,所以經常通過翻譯成內部類的形式來實現。

使用語法糖又能怎樣,它的目的是好的,畢竟它真真實實介紹了開發人員的代碼量。

Kotlin是一門實用語言,這是它的基因,它不是學術語言,它的目標是減輕開發者的負擔。它很適合 Android,因為大多數的 Android 的程序員是做工程。

基於JVM沒有什麼不好

Kotlin,是基於JVM的編程語言,但是基於JVM的編程語言並沒有什麼不好。(J)VM的出現無非也是一種平衡的結果。在犧牲部分執行效率的前提下,提供了一定的抽象,加快了開發者的效率。這種tradeoff其實更加有利於人的一側,這也是編程語言發展的趨勢和目標

Kotlin 在國內推廣應用的道路可謂是 漫漫而修遠兮。因此更需要真正實踐,去踩坑的人開始on board,去出產更多的真正能推動 Kotlin 應用的文章,分享等這些有實質性意義的行動。

附加一篇學習研究 Kotlin 的方法 研究學習Kotlin的一些方法 - 技術小黑屋 如果你感興趣的話。


你aosp還能全部用kotlin改寫啊?

目前framework層代碼還是eclipse工程結構的java代碼

沒有ioc沒有dao沒有你現在看到的所有主流框架,但這就是前端android開發的一切了

遑論native開發的大量c/c++代碼,不能用kotlin重構?

kotlin只是一個前端框架的可選項,而我們都知道kotlin這類語言的學習成本相比之下是很低的,它的語法特性決定了開發效率的高效,能使更多開發人員迅速加入到android開發中。對android開發而言,語言根本不是屏障,而是對系統各模塊工作模式的熟悉程度啊

麻煩各位糾結語言的程序員,能別糾結語言了么?說的好像搞過android開發就能一下上手去做web java開發一樣?naive


搞的好像都是java程序員的錯一樣,是java程序員不想學新東西?誰不想使用新特性,誰不想用java8,google就是不給你用,你能怎麼樣?用java就守舊了,那現在還用C的是原始人嗎?

本來google支持kotlin是件值得高興的事情,非要帶節奏,java程序員怎麼你了,搶你飯碗了還是殺你全家了?有這個必要噴嗎?從eclipse換到AS,難道用AS的像你一樣秀優越了?用eclipse怎麼了,用java怎麼了,當年還不是這樣寫的第一批Android程序,只不過學了點kotlin就可以鄙視了?

kotlin在android上得到官方認可就好像已經佔領全世界了一樣,缺了kotlin地球就不轉了?說的好像其他編程語言都是垃圾一樣,kotlin哪怕只在android上都還有很長一段路都要走

java到kotlin,就好像eclipse到AS一樣,google官方支持了,過一段時間自然而然都會轉過去,有什麼好秀優越的?用的早的人就可以鄙視用的晚的或者還沒開始用的?什麼邏輯?

一邊噴著java老舊,大罵java程序員守舊,一邊用著java寫的Android API,手動滑稽

就這樣也想安利別人kotlin,別給kotlin招黑了行嗎,說的就是你 kmxz


kotlin和java非常接近於一門語言,兩者無縫轉換。

而像Scala,Groovy並沒有這種感覺,要加一個很大的運行時。

並不是說kotlin火了,java就消亡了,kotlin發展的底層還是靠JDK推動。

皮之不存,毛將焉附?

當然kotlin to js和kotlin to native,那就是另外一回事了,用了這兩個,那麼java寫的那些框架,都是用不了的。


哈哈哈哈哈…… 也許是我在知乎上第一次在技術話題下掛人?我今天真是大開眼界,居然全文沒半個字是對的,還有臉自稱所謂「技術專家」。

當然,掛人還是要有理有據,我還是一句一句解釋一下:

好好的優化不做

每年 Android 做的那麼多性能優化他都不知道?

安安靜靜的把java 8支持做好

所以世界上那麼多機器的 Dalvik VM 怎麼替換呢?Jack Jill 也從沒能完整支持 Java 8 的所有特性呀,因為確實不現實。

只會把生態搞的更亂!!!

沒人告訴過他使用大量感嘆號是沒教養的表現嗎?而且全文的標點符號用錯了的比用對了的還多……

提swift的,kotlin能和swit比么

先不說拼寫錯誤了,在實際使用兩門語言寫過項目後,我認為 Kotlin 總體來說強於 Swift 不少 。從語言特性上說,Swift 在 Kotlin 面前顯得很 dumb。

親爹沒法比

hhhhhhh…… Apple 可曾出過像樣的開發工具?水平能到 JetBrains 的一半嗎?

平台沒法比

hhhhhhh…… Swift 至今也就那麼點應用場景;而論平台,哪個平台能和 JVM 相提並論?更不用提 Kotlin 還有官方支持的 JavaScript 後端。

另一個開發者反正我不認識

所以他沒見識還挺驕傲?

直接開噴的這些人使用kotlin的經驗應該選沒我多……

我寫 Scala 和 Kotlin 的經驗都比他多。

jvm上那麼多優秀的語言,scala groovy那個都不比kotlon差

先不說拼寫錯誤了,Scala 和 Groovy 當然都是很好的語言,尤其 Scala 我非常喜歡;但論工程性上,我認為他們並不如 Kotlin。

當然,我建議那位答主還是好好學習怎麼在知乎上寫回答吧。直接這樣自稱「技術專家」,我都為他感到臉酸。

話說回來,Kotlin 確實還有很長的路要走。但是過去的幾年裡,JetBrains 已經表現出了他們將 Kotlin 建設得更好的能力和決心。目前我手上的兩個 Android app 都是純 Kotlin 寫的,也在嘗試用 Kotlin 進行一部分 Web 前端以及服務端的開發,總體來說我對 Kotlin 是很有信心的。

更新:我忍不住想再掛個人——

我看了都很驚異,我一個寫 Java 的人,莫名其妙就被扣上了個「大罵 Java 程序員」的帽子,實在不知道他從哪裡讀出來的我噴過 Java。

不過那貨色閱讀能力為零、外加受迫害妄想症也就都不說了,連掛我都不敢實名,還不如那個所謂技術專家呢。


很簡潔,很明了

但是....

請問我什麼時候才能下完kotlio包???

vnp?切換了好幾個線路了。

要麼下不動,要麼下一半斷開。

你儘管推動,我能用到算我輸


大家還記得JackJill嗎!好好的優化不做,每天凈想著出新東西替換舊的。安安靜靜的把java 8支持做好意義不是更大。天天挖坑,只會把生態搞的更亂!!!

提swift的,kotlin能和swit比么,親爹沒法比,平台沒法比,iOS還沒有什麼碎片化,最最重要的,設計者,一個出自大師,另一個開發者反正我不認識,語言這個東西,一定要出自大師,設計才足夠靠譜。看看c#和f# golang等!!

另外新語言的推廣,如果想強行插入一個成熟穩定的市場,基本沒有可能,必要要另闢蹊徑,比如go選擇了並發,又剛好趕上docker容器化。swift蘋果爹這樣推,如今進展如何?不要說swift和oc沒有無縫集成,這只是一個小問題,大問題還是在生態和社區,以及新東西的採納成本!

評論區的一些人不要急,我又沒說kotlin不行,話說過來,直接開噴的這些人使用kotlin的經驗應該還沒我多。語言並不是Android生態最嚴重的問題。提oracle版權的,請你想想,kotlin你脫離jvm了么,即便後面可以編譯成native或者現階段編譯成js,那大量的android api如何遷移!

jvm上那麼多優秀的語言,scala groovy那個都不比kotlin差,這些語言都沒走向主流,想想路有多難!

另外手機打字,有錯別字,見諒


一層紙的事,現在捅破了

有些人也很奇怪,這事哭的明明是go,go都哭暈在廁所里了,自己的爹親生兒子不要,非要去領養一個別人家的孩子,匪夷所思嘛哈哈,跟java什麼關係啊,java根本沒有啥問題好不好?jvm上跑兩種語言太正常不過了,那個vert.x,你就是七種語言一起跑都可以好吧?


律師事務所甲骨文這是想要成為軟體界的高通啊,離眾矢之的不遠了

谷歌先是發布AS代替eclipse,又是用Kotlin代替JAVA,這是要徹底擺脫甲骨文擁抱JetBrains啊

說著說著,那首歌謠又縈繞在耳邊(前方高能,手動滑稽)

美國加州,美國加州 ,甲骨文軟體廠倒閉了。美國加州最大軟體,甲骨文軟體廠,倒閉了。 王八蛋王八蛋老闆埃里森,吃喝嫖賭欠下70萬,背著馬克赫德跑啦!
我們沒有沒有沒有辦法辦法,狀告谷歌發工資!
原價十多萬,二十多萬,三十多萬的軟體,通通要收專利費,通通通通要收費!王八蛋甲骨文,你不是人!

毒瘤Oracle,坑完MySQL坑openOffice,坑完了Solaris坑JAVA,谷歌現在也中槍了,不知道下一個是不是VirtualBox
不過畢竟是xx殺手甲骨文,業界xx甲骨文,律師公司甲骨文……做出這種事,嗯,可以理解


等「3 天入門 Kotlin」、「21 天 Kotlin 從入門到精通」...


不只是想替代Android里的Java而已。還可以期待下kotlin native,直接編譯成機器碼。


推薦閱讀:

「安卓是iOS的盜版」這個說法有依據嗎?
Windows 10 會不會打敗 iOS 和 Android?
用過哪些好用的Android開源項目呢?
如何評價諾基亞推出的 Nokia X 系列 Android 手機?
如何評價驍龍820?

TAG:Java | 谷歌Google | Android | Kotlin |