實時消息:JetBrains正式發布Kotlin 1.0,JVM和Android上更好用的語言

jopen 8年前發布 | 28K 次閱讀 英特爾

來自: http://www.lcode.org/實時消息jetbrains正式發布kotlin-1-0,jvm和android上更好用的語言/

Kotlin是一門實用的編程語言,可用于JVM和Android程序開發。日前,Kotlin 1.0正式發布。以下為原文翻譯:

我們欣然宣布:Kotlin 1.0 發布了!

這是條令人激動的漫長之路,如今我們總算達成首個大版本發布。為了慶祝正式版本的發布,我們為Kotlin準備了煥然一新的logo:

什么是 Kotlin ?

Kotlin是一門實用的編程語言,可用于JVM和Android程序開發,Kotlin結合了面向對象和函數式特性,致力于互操作性、安全、簡潔和工具支持。

Kotlin是一門通用的語言,只要能用Java的地方就能用Kotlin,包含:服務器程序開發、移動應用開發(Android)、桌面客戶端程序開發。 Kotlin支持所有主要的開發工具以及服務,比如:

  • IntelliJ IDEA、Android Studio和Eclipse;
  • Maven、Gradle和Ant;
  • Spring Boot (Kotlin 支持今天正式發布!);
  • GitHub,Slack,甚至Minecraft。

Kotlin的主要特點之一是Java+Kotlin混合工程的互操作性以及無縫兼容,使引入Kotlin的過程簡單容易,并達成更少的重復性代碼(boilerplate code)和更佳的類型安全(type-safety)。

Kotlin還有一個擴展標準庫(extensive standard library)能讓日常工作變得簡單順暢,它能幫助保持 低字節碼足跡 (bytecode footprint)。當然,Kotlin 中自然可以使用 Java 庫,反之亦然。

何謂實用?

了解核心價值是長期項目最至關重要的一環。如果要選擇一個詞來形容Kotlin設計,那必是”實用”。這也是為什么在一開始我們便聲明Kotlin的重心不在發明或研究。雖然最后我們仍然做了一些新發明,但從未是項目的重點。當然,我們是在建立一個防止錯誤的類型系統,以及有利于代碼重用的抽象機制,換作其他人在我們相同位置上,也都會這么做的。但我們用以獨特的(并且是務實的)方法來落實-我們專注于使用案例,來促使語言成為一個好工具。

這也立即的點出了最根本的概念,即與現有代碼和基礎設施的互操作性是極致重要的。誰不希望能用正確方法重新創造世界,認一切從零開始?如果不是考量著與Java的互操作,Maven的整合,以及Android的兼容發展,Kotlin的設計會是更容易的!并且肯定在許多方面更優雅。優雅雖是可喜的,但并不是我們的主要目標。Kotlin的首要目標是在實用。而只要我們的用戶能避免重新學習,重新發明,從頭開始重做,并且越能重復使用,就是對用戶好的。

為什么Kotlin沒有自己的包管理器,或自己的構建系統?

  • 因為已經有Maven和Gradle,并重復使用他們龐大的插件對許多項目是非常重要的。
  • 為什么在重新設計集合會更加容易的情況下,我們還是投入了大量的時間和精力制作JDK兼容的集合接口?
  • 因為大量的Java代碼通過JDK集合運行,而轉換數據是非常痛苦的。
  • 為什么Kotlin支持Java 6的字節碼?
  • 因為很多人還在運行的Java 6(尤其是Android)。

對我們來說實用是在創造用戶體驗,而不是只一種語言或單獨的庫。許多語言設計的決策是在重重限制下不得不為,比如: “這個設計是否會阻礙增量編譯?”,“萬一這個設計增加了APK方法計數?”,“IDE將如何標示這個as-you-type?”…等等。因此我們特別為我們的工具以及語言感到自豪。

Kotlin 是否足夠成熟,能適用于正式產品中?

Kotlin是足夠成熟的,并且已經應用于產品開發有一段時間了。在過去的兩年中,JetBrains不止實現了編譯器和工具化,同時還在項目中進行過大規模地對 Kotlin 進行實戰檢測。除了JetBrains內部,許多外部公司都已經使用Kotlin開發正式產品一段時間了。

正因為我們花費了相當大的精力通過實踐來驗證我們的設計決斷,我們花了相當長的時間才正式發布1.0版本。這是必須的步驟,因為往后的這個編譯器將確保它的向后兼容性,并且未來Kotlin 的后續版本也必須兼容現有的代碼。于此,我們花了點時間來確保我們的選擇是正確的。

我們之所以能夠達成這個里程碑,必須感謝來自 Kotlin 早期使用者的幫助。感謝他們的勇敢,感謝他們付出的精力,感謝他們的熱情!

Kotlin 的背后是誰?

首先必須知道的是,Kotlin是一個開源語言。

  • Kotlin是在 GitHub 上基于Apache 2.0 Open-Source license開發的;
  • 如今已經有超過100位貢獻者。

目前而言,JetBrains是Kotlin的主要支持者,我們為了開發Kotlin付出了巨大的努力并且承諾會長期的堅持下去。最初我們創造Kotlin是為了滿足自身開發產品的需求,如今我們已經有十多個JetBrains產品使用Kotlin開發,包含IntelliJ IDEA、 JetBrains Rider 、JetBrains Account和E-Shop、YouTrack以及部分IDE。因此Kotlin將會長存。

從2012年開始,我們對 Kotlin 的開發就保持著非常開放的態度:無時無刻在社區中交流著,收集并且處理了大量反饋意見與建議。我們正計劃著設立一個集中地以供匯總討論和設計建議,如此一來整個流程就會變得更加透明,有條理。Kotlin 規范化相關的工作目前尚未開始,但這只是遲早的事情。

語言設計與項目的統籌管理已經由 JetBrains 雇用的團隊完成了,目前我們有超過20位全職員工致力于 Kotlin,這也說明了 JetBrains 是認真的對待這個項目。

Kotlin 相關的數字

讓我們從一些數字來了解Kotlin。

談到代碼行數,在GitHub上的開放知識庫內Kotlin的代碼行數正隨著時間指數增長,這還不包含JetBrains自己的項目。

今天,將Kotlin用于正式產品開發的企業數目不斷的增加,其中包括大家熟知的Prezi和Expedi。如果你也正在使用Kotlin,請提交一個 Pull Request 讓我們將你的項目也加進這個名單上。

Kotlin將如何演進?

隨著1.0的發布,我們承諾了Kotlin語言的向下兼容性以及其標準庫,kotlin-stdlib,的長期發展:

  • 新版編譯器能夠兼容舊版二進制文件(但是舊版本的編譯器無法理解新的編譯,就像 javac 1.6 無法解析 javac 1.8 編譯的類一樣)
  • 在運行時環境,舊版二進制文件能與新版二進制文件兼容(但是新的代碼還是需要新的依賴)

這僅適用于JVM/Android。JavaScript的支持仍處于實驗階段,之后會單獨發布。

至于計劃,除了修復bug之外我們近期的目標包含:

  • 對Kotlin工具鏈持續性能優化(例如,Gradle增量更新)
  • JavaScript語言支持(包括JVM和JS的交叉編譯)
  • 支持將優化過的lambdas 表達式生成Java 8字節碼,以及其他(只要Android用戶需要,我們也會積極支持Java 6)

工具更新和bug修復會在次要更新中發布,比如1.0.x。較大的變更,首先會發布一個早期試用版本(EAP版本),然后才會發布正式版,比如1.1。

如何開始使用?

最簡單的試用Kotlin的辦法是使用在線的迷你IDE: try.kotl.in ,以及 Koans ,一個有系統的入門教學,來引導你了解語言基礎。

你也可以選擇在自己的設備上使用Kotlin(Koans也可以 離線使用 ):

  • IntelliJ IDEA( Ultimate或者Community 版本):直接創建一個Kotlin工程或者在Java工程中新建一個Kotlin文件
  • Android Studio:通過Plugin Manager安裝Kotlin插件
  • Eclipse:通過 Marketplace 安裝Kotlin插件

溫馨提醒:如果你使用的是舊版本,你可能需要將 Kotlin 插件升級到1.0。

為了快速了解Kotlin語言的概念,語言文檔和教程可以在 官方網站 上取得,你也可以在 Digest of 2015 上找到社區成員分享的演講和文章。

如果你計劃在現有的Java項目中使用Kotlin,你可以用IDE中內置的Java-to-Kotlin轉換器輕松的轉換類。

最后,也請記得來我們的 論壇 或 Slack ( 獲取邀請 )上分享你的想法和問題。

我們在此再次感謝大家,Kotlin是依靠著社區的力量達成的。

現在就讓我們享受Kotlin吧!

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!