使用Kotlin語言兩年後,我有話要說

歐陽鋒發表於2018-04-28

使用Kotlin語言兩年後,我有話要說

使用Kotlin語言已經兩年了,它已經成為了我使用頻率僅次於Java的程式語言。在此期間,很多人也談了自己的一些使用感受。但我想,我是最有發言權的。迄今為止,我已經在三個生產環境應用中使用了Kotlin語言。因此,希望我的這些感想能夠給你一些啟發。

Q:是一個什麼機緣讓你開始決定使用Kotlin?

如果我沒有記錯的話,大概在2016年3月份的時候突然收到一條來自Bugly的推送,文章裡面介紹了Kotlin語言。看完這篇文章,我發現Kotlin與Swift語言很像,恰好那段時間正好迷Swift。而更讓人驚喜的是,Kotlin語言可以用來開發Android。因此,突然有了一種熱血沸騰的感覺。迅速花了幾天時間瀏覽了官方文件,便開始在程式碼中使用Kotlin。

Q:你使用Kotlin主要用於生產環境還是僅僅用於平時測試?

我使用Kotlin幾乎全是在生產環境,第一個加入了Kotlin程式碼的應用是在一家金融公司。最後的成品是一半Kotlin,一半Java。第二個專案是一個P2P的應用,在這個專案中,作為專案的負責人。我在工程的指令碼中嚴格限制必須使用Kotlin,否則將導致編譯不通過。因此,這個P2P的應用是我的第一個全Kotlin語言的專案,目前這個專案還線上上執行。最後一個專案也是使用了全Kotlin語言,是一個社交類的應用,這個應用目前也線上上執行。其實,除了這些之外,在我的一些開源專案中,也大量使用了Kotlin語言。目前,在碼雲私有庫中還存在著大量使用Kotlin語言開發的專案沒有對外公佈。

Q:使用Kotlin語言的過程中,你遇到過什麼問題嗎?

如果說完全沒有遇到問題,那是騙人的!因為我算是Kotlin語言的早期使用者,在我使用Kotlin語言的時候,Android Studio的Kotlin外掛還不成熟,經常出現奔潰。一旦出現奔潰,程式碼提示就悲劇了,不得不手敲,編譯之後再看問題。另外,當時還遇到過一個問題是:當Kotlin與Realm資料庫配合使用的時候,始終報錯。至於其他問題,貌似沒有遇到過。

Q:有人說,Kotlin是一門新語言,難免存在一些Bug?對於這種說法,你怎麼看?

首先,並不否認,Kotlin語言可能存在著一些未知的Bug。但我認為,說這句話的人,更多的是對自己的不自信。他害怕新東西,他在擔心,突然又要學習一門新的語言,該怎麼辦?萬一短時間內學不會,怎麼辦?實際上,Kotlin的Bug是幾乎可以忽略不計的。我認為,這大概和你買彩票中五百萬的概率差不多。為什麼這麼說呢?我給你舉個例子。你肯定知道Linux,可你知道Linux第一個版本的版本號是多少嗎?是0.01。第一個版本是由Linus一個人開發出來的,它僅僅在螢幕顯示了一行Hello world。Linus認為這個版本的Linux距離正式版本很很遠,因此將其命名為0.01。事實也的確如此,不知道經歷了多少個版本,最終在1994年Linux 1.0版本終於釋出了,這是一個歷史性的時刻!可我想說的是,你知道對於一個龐大的系統來說,1.0意味著什麼嗎?用兩個字來回答就是:穩定!這中間經歷了無數人夜以繼日的努力,也經歷了無數次的內測、公測,這意味著幾乎99%以上的Bug它已經幫你排除掉了,你可以完全放心使用了。Kotlin也是一樣,Kotlin語言專案開始於2010年,想象一下,一個6、7年的專案,而且還是由全球最嚴謹的一批程式設計師開發的產品。你有什麼理由不去相信呢?因此,我認為所謂的Bug論,不過是害怕和恐懼的代名詞罷了!

Q:有人說,因為Kotlin語言接入需要成本,公司會限制程式設計師使用Kotlin,你怎麼看?

這是有道理的!在中國,技術的跟進總是慢於其它國家。因此,你可以看到,中國的大部分iOS程式設計師目前依然在使用OC語言開發。而事實上,Swift語言已經發布四年了。其中的一個原因可能是公司領導限制團隊使用,因為Swift語言確實語法變動很大。升級後需要使用Xcode幫助你自動轉換,這恐怕是大部分iOS程式設計師最頭疼的一個問題。對於公司的限制,我們無能為力。但這種限制,我認為並不完全有道理。就像我上面所說的一樣,既然蘋果官方有足夠自信可以使用Xcode幫助你自動轉換,就證明這種方式已經非常好用了。我知道一定會有人反駁:胡說,我在幾次轉換的時候都出現了一些問題!可我想說,出問題是一定的。如同Java自動轉換到Kotlin程式碼一樣,也會出現一些問題,可是隻要你手動修正掉這些問題也就正常了,往往不過是幾行程式碼的工作量而已。所以,我認為,產生這種技術跟進慢的原因,不僅僅是公司限制,也恰好是中國人的“膽怯”心理在作祟。

Q:使用Kotlin語言對你的生活有產生一些變化嗎?

其實,生活上的變化目前並沒有。但對於我的工作卻幫助不少,日常開發中至少給我節省了大約30%的時間。而且,在生產環境出現異常的概率也降低了不少。如果這也算變化的話,的確對我的生活產生了一些改變。

Q:使用Kotlin語言有過什麼特別的感受嗎?

如果一定要說特別的感受的話,的確有一件讓我特別自豪的事情。我是早於Google官方宣佈Kotlin成為官方語言之前使用Kotlin的,我當時預言Kotlin有可能成為Android官方程式語言。而當Google IO大會結束,一覺醒來,Kotlin突然成為了Android官方語言。我很自豪,買彩票從來沒有中大獎的我,居然第一次成功預言了一門語言。

Q:對於新加入的Kotlin同學,你有什麼話想說嗎?

首先,一定要無所畏懼,學習一門新的語言,會讓你產生短暫的不適應。這就如同你跑步一樣,開始的那一段總會很艱辛,而往後就會越來越輕鬆,慢慢就開始變成了享受。因此,如果在過程中遇到了問題,不要害怕,全球有無數的Kotlin程式設計師會幫你解決問題。如果你希望及時解決問題的話,可以加入我的Kotlin技術交流群:329673958。最後,祝你早日搞定Kotlin。

Q:如果只能讓你對Kotlin說一句話,你最希望說什麼?

I love you <<<

歡迎加入Kotlin交流群

關於Kotlin,如果你有任何問題,歡迎加入我的Kotlin交流群: 329673958。當前群交流活躍,問題解答速度很快,期待你的加入。

微信掃描下方二維碼,關注歐陽鋒工作室,與鋒同行

歐陽鋒工作室

相關文章