Kotlin語言1.0Beta發布,JetBrain介紹其設計理念
Kotlin 是 JetBrains 開發的現代編程語言,可運行于JVM環境同時也能用來開發Android應用。它的1.0Beta版本已經發布,這里是新版本的 特性列表 ;
Kotlin起源與設計理念
2010年,長達是十年之久的Java開發讓JetBrains的工程師認為老舊的Java語言已經嚴重阻礙了生產力。他們認為是時候開發一款現 代化的JVM語言了,這也是因為他們有足夠的資源和專家。本身做各種IDEs起家的JetBrains就開始著手新工具的開發——一個編程語言。
開發新語言有諸多因素需要考慮:首先之前的代碼幾乎全部用Java編寫,所以要考慮平滑遷移的需求;新語言在生產力方面要有巨大提升;同時它要易 于學習和理解。這樣的工程牽扯到許多方面,不可能從一開始就滿足所有需求。這就是為什么他們對核心設計選擇進行了一段時間實驗和驗證,方式是持續收集 JetBrains內部和外部的早期使用者的反饋報告,并根據反饋作出進一步的調整。
JetBrains已經在 Intelli IDEA 、 YouTrack 和其它產品中使用Kotlin有一段時間了。也有一些產品完全使用Kotlin( account.jetbrains.com )編寫.Kotlin語言已經達到可與Java自由透明交互的地步,Kotlin可以通過versa調用Java方法,源碼可在同一項目中混合使用,甚至 生成的.class文件完全兼容Java工具。JetBrains內部現在已經有一個超過20個開發人員的團隊使用Kotlin開發。
目前已經有大量的開發人員使用Kotlin開發web服務后端和Android應用。下面是GitHub中的公開倉庫中Kotlin代碼行數的變化:
Kotlin初印象
根據JetBrains開發人員自己的經驗和外部用戶總結的對Kotlin的印象有:
- 更少代碼量
- 高可讀性
- 跟高的類型安全性
- 更高的表現力
- 同工具的交互操作流暢
Beta版本的意義
- 正在準備發布官方正式版本相關工作
- 二進制格式已經完成
- 主要的語言變化已經完成
兼容性
Kotlin會很快發布正式版。在開發之初JetBrains就承諾了流暢的用戶體驗,這當然也包括Kotlin語言版本的兼容性。1.0版本之后語言的所有變化都將是后向兼容的:
- 新版本的編譯器將兼容舊版本二進制文件,但舊版編譯器或許不能兼容新的二進制文件,就像javac 1.6不能讀取javac 1.8 編譯的classes文件。
- 舊版本二進制文件將能夠和新版本二進制文件一起在runtime一起運行,但新版本代碼可能需要新的依賴。
以上的所有特性僅保證支持JVM/Android平臺。
關于Kotlin的一些事實
- 它是 開源 的(在 Apache 2.0 許可證 下):編譯器、運行時庫和所有的工具,包括IED。
- 它提倡 函數式 編程風格(同時也是一個多范式語言)
- 它是靜態編譯的,相較于Java它 沒有運行時開銷 。
- 它通過 Quasar 支持 高效安全 的并發。
- 它和 IntelliJ IDEA是綁定的 (最終版和OSS社區版也是),同時也是開箱即用的。
- 它有 Android Studio、Eclipse、Maven、Gradle 和Ant插件(更不用說IntelliJ IDEA和TeamCity)。
- 它有 REPL 。
- 它有一個活躍和有幫助的 社區 ,提供有用的庫。
- 目前已經有兩本關于它的書出版了: Kotlin in Action 和 Kotlin for Android Developers 。
遷移
目前為止基本所有的Java或Android框架或庫都能平滑地和Kotlin一起工作。當然還有像Spring MVC、Vaadin和Jackson等等其它框架和庫。Kotlin也有由JetBrains和社區開發的自己的框架和庫。比如: Anko 、 RxKotlin 、 funKtionale 、 kohesive 、 kovenant 和 Kobalt 構建工具 等等 。
學習
學習資料鏈接: Koans 、 Playground 、 介紹 、 語言文檔 。
安裝方法: * IntelliJ IDEA 15 ( 高級版或者社區版 ):直接在創建一個Kotlin項目或在Java項目中創建Kotlin文件。 * **Android Studio :通過 插件管理器 安裝插件。 * Eclipse :通過 MarketPlace 安裝插件。 * 命令行 :下載 編譯器 。
社區: Forum 、 Slack ( get invite )、 StackOverflow 、 GitHub (歡迎PRs)。