近期學習了下 Kotlin,不得不說 Kotlin 比 Java 簡潔不少,個人感覺代碼量能減少 50%。到現在已經使用Java語言做服務端開發兩年半的時間了,對Java某些囉嗦的語法也是有很多想法。這篇文章談談我對Kotlin和Java的看法。
編程語言整體排名
從長遠來看,排名前10的也基本上是Java、C、C++、Python、C#、VB、PHP、JavaScript。至於Kotlin的排名,11月份在編程語言僅排41名,Ratings僅有0.216%。
曾看到一個理論是說,看一個事物還能存在多久,首先要看看它已經存在了多久。
如果一門編程語言已經存在了20年,那麼它在20年後也不會消失。像C、VB這樣的語言,至今仍然能夠在編程語言排行榜中佔據非常重要的位置。
Kotlin 的優點
Kotlin 語言中文站 官方網站已經有非常詳細的說明,這裏我只想說下我剛剛接觸Kotlin 兩天的體會。
- 能直接與Java相互調用,能與Java工程共存
- 大大減少樣板代碼
- 可以將Kotlin代碼編譯爲無需虛擬機就可運行的原生二進制文件
- 支持協程
- 支持高階函數
- 語言層面解決空指針問題
- 對字符串格式化的處理($變量名)
- 更像Python的語法
- 對λ表達式支持更好
- 中綴表達式
Kotlin 的缺點
- 儘管Google大力推崇Kotlin,Kotlin似乎並沒有特別火熱
- Java變量名和Kotlin關鍵字可能產生衝突
- Kotlin空安全和Java工程結合仍然存在問題
談論下 Java 語言
Java 語言的缺陷
- 囉嗦的語法:很多Java類庫的行數動不動就是1000+
- 僞泛型
- 完全面向對象:這是Java最大的優點,但是也是很大的缺點。我想寫個工具類,也要新建一個對象?
- 沉重的歷史包袱:因爲要考慮向前兼容的問題,很多支持和改進並不徹底,最大的例子就是JDK 1.5引入的泛型。
Java 11
JDK 開始收費
。我覺得JDK開始收費是個好事情,至少Java 的版本發佈週期變更爲每六個月一次 —— 每半年發佈一個大版本,每個季度發佈一個中間特性版本,並且承諾不會跳票。Java 6的發佈時間是2009年,Java 7的發佈時間是2011年,Java 8是2014年。新版本的Java確實有許多方便的特性和類庫的升級。
JDK 升級
。由於工作原因,我使用了近2年的Java 6。僅僅是升級到了Java 8,就已經極大地提高了我的開發效率!——更不用說類庫底層的優化。
使用何種編程語言
總的來說,Java號稱是C++ --,Kotlin就像是Java++。
Kotlin沒有像Java一樣的歷史包袱,設計之初就是爲了解決Java的痛點。
但是世界上並沒有完美的語言——像Python也存在版本分裂的問題。用再好的筆,也寫不出更好的文章。
如果單單是使用編程語言開發的話,充分利用好一門編程語言和IDE就足夠了。