閱讀666 返回首頁    go windows


你與高薪僅差一本Kotlin

 穀歌在17年舉行的I/O開發者大會上宣布,將Kotlin語言作為安卓開發的一級編程語言。於此同時,Kotlin語言一出就上了各大IT門戶網站的頭條,百度搜索達到300萬條,招聘公司已經開始高薪找人,今天小編帶你了解一下Kotlin,並推薦一本Kotlin入門書《Kotlin程序開發入門精要》


![](https://user-gold-cdn.xitu.io/2017/9/1/f658b55768fe3333a682c2feb88fb3bd) 本文摘自:人民郵電出版社異步圖書《Kotlin程序開發入門精要》 試讀:https://www.epubit.com.cn/book/details/7663



Kotlin是什麼?

      可能很多讀者看到Kotlin這個單詞會感到很陌生,這很正常。就和2007年以前一樣,在蘋果公司推出iPhone以及相應的開發工具之前,Objective-C就鮮為人知,至少在國內是這樣的。上麵提到的Objective-C是一種編程語言,而本書的主題是Kotlin,那麼首先要回答的是,Kotlin到底是什麼呢?沒錯,Kotlin和Objective-C一樣,是一種編程語言。

      Kotlin是由JetBrains創建的基於JVM的編程語言,那麼JetBrains又是什麼呢?我相信很多Java程序員使用過IntelliJ IDEA,這個非常棒的Java IDE(集成開發環境)就是JetBrains的傑作。如果你沒聽過或沒用過IntelliJ IDE,那麼也沒有太大關係。相信閱讀本書的讀者或多或少都了解一些Android的知識,Android官方推薦的IDE是Android Studio,簡稱AS。這個IDE就是基於IntelliJ IDEA社區版開發的。JetBrains旗下不隻有IntelliJ IDEA一款產品,Kotlin也是JetBrains旗下的一款產品,一種編程語言。這種編程語言運行在JVM上,也就是Kotlin編譯器會將Kotlin源代碼編譯成Java Byte Code(Java字節碼),可以直接運行在JVM上。從這一點看出,在技術層麵,Java和Kotlin是同一個級別的,都以Java Byte Code形式運行在JVM上。當然,Kotlin編譯器還可以將Kotlin源代碼編譯生成JavaScript代碼,以便在沒有JVM的情況下運行。在未來,Kotlin編譯器還可以將Kotlin源代碼編譯生成本地代碼,完全脫離任何虛擬機運行,也就是說,Kotlin相對Java的優勢之一是多目標編譯語言,而Java隻能編譯生成Java Byte Code(.class文件)。

為什麼Kotlin突然成為熱門?

      盡管Kotlin已經推出有很長一段時間了,但並不怎麼出名,可能是因為JetBrains對它的推廣力度不夠,加之現在的編程語言實在太多了,所以Kotlin就像一塊石頭扔進了大海,不見了蹤影。

      那麼為什麼現在Kotlin突然成為熱門了呢?原因也很簡單,Kotlin可以開發Android App,而且被Google公司選為開發Android App的一級語言,即在Android Studio 3.0及以上版本中會支持利用Kotlin語言開發Android App。這也就意味著,到目前為止,開發Android 本地App可以使用Java和Kotlin兩種編程語言。這就很像開發iOS App的場景了,可以使用Objective-C和Swift兩種語言開發iOS App。因此,很多人把Kotlin比作Android世界的Swift。而且Kotlin和Swift的確都是很棒的編程語言,都加入了很多“語法糖”,可以大幅提高程序開發的效率。

Kotlin相對於Java有哪些優勢?

      可能很多讀者會問,既然有了Java,為什麼Google公司還要選擇Kotlin來開發Android App呢?Kotlin相比Java有哪些優勢呢?

      在這一節我們來簡單了解一下Kotlin的特點,通過這些介紹,我們可以體會到Kotlin的優勢所在。

  • 更容易學習:Kotlin是一門包含很多函數式編程思想的麵向對象編程語言,而且相比Scala語言更容易學習。

  • 輕量級:相比其他編程語言,Kotlin函數庫更小。由於Android存在65K方法數限製,使得這一點顯得更為重要。雖然使用ProGuard或者打包成多個dex能夠解決這個問題,但是所有這些解決方案都會提高複雜性,並增加調試的時間。Kotlin函數庫方法數小於7000個,相當於support-v4(Android 1.6)的大小。

  • 高度可互操作性:Kotlin可以和其他Java類庫友好且簡單地進行互操作。Kotlin團隊在開發這門新語言時正是秉承了這個中心思想。他們希望可以使用Kotlin繼續開發現有的使用Java語言編寫的工程,而不是重寫所有代碼。因此,Kotlin需要能夠和Java很好地進行互操作。

  • 非常好地集成Android Studio及Gradle:Kotlin有一個專門用於Android Studio的插件,以及另一個專門用於Gradle的插件。而且即將推出的Android Studio 3.0已經集成了Kotlin,因此在Android工程中開始使用Kotlin並不困難。

      當然,Kotlin還有很多語法層麵的特性,如數據模型類、空類型安全、擴展函數等,這些技術將會在後麵的章節介紹中展開。

Kotlin能做什麼?

      從前麵的內容可以知道,Kotlin可以用來開發Android App,那麼除了Android App,Kotlin還可以做什麼呢?在本節我們就來一窺究竟。

1.服務端開發

      既然Kotlin是基於JVM的編程語言,那麼自然而然就可以使用所有基於JVM的服務端框架。下麵是幾個Kotlin官方文檔推薦的框架。

  • Spring:一種開源框架,是為了解決企業應用程序開發複雜性問題而創建的。從Spring 5開始,Spring就已經支持Kotlin的新特性了,並可以使用Spring在線生成器(https://start.spring.io)生成基於Kotlin的工程。

  • Vert.x:用於建立基於JVM的響應式Web應用的框架。

  • Ktor:由JetBrains發布的一款基於Kotlin的本地Web框架

  • kotlinx.html:是一種DSL(領域專用語言),用於在Web應用中生成HTML。Kotlin服務端框架和kotlinx.html的關係就像JSP和FreeMarker的關係一樣,FreeMarker是基於Java的模板引擎。使用FreeMarker,可以不依賴於HTML或其他技術,可以根據需要生成HTML或其他東西,也就是一種與具體渲染技術無關的技術。

2.以JavaScript方式運行

     Kotlin提供了生成JavaScript源代碼的能力,也就是將Kotlin代碼直接轉換為JavaScript代碼。目前,支持ECMAScript 5.1標準,未來會支持ECMAScript 6。

      注意,如果將Kotlin代碼轉換為JavaScript代碼,在Kotlin代碼中隻能包含Kotlin標準庫,不能包含任何JDK API以及任何第三方的Java Library API,任何不屬於Kotlin本身(Kotlin語句和標準庫)的部分在轉換的過程中將被忽略。

3.開發Android App

       這一部分在上文提到過,Kotlin和Java一樣,都可以開發Android App,而且Kotlin和Java源代碼文件可以在同一個工程中,可以聯合進行調試。

      盡管Kotlin能做很多事(Java能做的,Kotlin都能做),但本書的主要關注點是開發Android App,因此,在本書後續部分將著重介紹如何利用Kotlin開發Android App。

Kotlin入門,怎麼學?

一本全程視頻陪伴貼心跟蹤初學者學習效果的Kotlin開發書

《Kotlin程序開發入門精要》


點擊圖片查看詳情)

編輯推薦

1基於最新的Kotlin版本

2本書分為三部分:Kotlin基礎、Android開發和項目實戰,讀者通過對本書的學習,不僅可以掌握Kotlin的知識,還可以將Kotlin用於項目實戰。

3贈送近70小時視頻課程,包括Kotlin和Android,供初學者學習使用

4通過極客題庫提供大量的測試題以及過關斬將係統,讀者可以用通關的方式更有效地學習書中的知識

5隨書贈送價值300元優惠卡,可以用於購買李寧老師其他視頻課程以及現在及未來提供的其他服務

6有問題的學員可以通過歐瑞科技(創始人是李寧)的問答社區區(https://geekori.com提問,會有專人回答讀者提出的問題,以及通過博客係統總結書中學到的知識,同時,提出問題、回答問題以及撰寫的博客越多,就會增加讀者的積分,以後學習李寧老師其他的課程和獲取其他資源,會有更大的優惠。

僅僅一本書怎麼行?海量視頻、海量習題快速入門





更多Android類好書,掃碼查看




最後更新:2017-09-01 09:32:53

  上一篇:go  開源大數據周刊-第66期
  下一篇:go  阿裏雲安全合作夥伴計劃 新一輪招募開始