作為一個Java開發者,你一定對面向對象編程的核心概念爛熟於胸。Java是純面向對象語言,如果你想在Java項目中寫一個函數,那麼你首先得先定義一個類,然後再把函數寫到這個類裡面。一次兩次這麼處理還好,但如果在一個中大型項目裡,你總是這樣為了OOP而去OOP,不僅會造成代碼冗餘、不易閱讀,而且還容易出錯。
另外,相信你也遇到過空指針異常問題,也會為此問題的不可避免而感到苦惱。而Kotlin語言,可以很好地幫你解決上述問題。
Kotlin語言與Java語言的對比:
Kotlin語言本身還擴展了非常多的常用操作,像文本讀寫、文件夾遍歷、定時器調度、流式操作集合(類似RxJava),而這些都是Java語言是沒有的。同時,Kotlin的內聯高階Lambda、動態代理、協程等特性還可以大幅優化你的代碼性能。
許多新語言似乎都是源於對某種其它語言的厭倦。在不少人看來,Kotlin應該也屬於這種情況。JetBrains的工程師仍然將Java視為一門優秀的語言。只是,Java太成熟了,改進和增加特性比較困難,因為要保持向後兼容。Kotlin所做的工作就是吸取Java和其它語言的經驗和教訓,並以此為基礎進行改進。
Kotlin的優勢具有以下幾點:
Kotlin編譯成JVM字節碼或JavaScript——這不僅會吸引Java開發人員,還會吸引所有使用垃圾收集運行時的開發人員,比如使用Scala、Go、Python、Ruby和JavaScript的開發人員。 Kotlin來自業界,而非學術界——它解決了程式設計師現如今在工作中面臨的問題。 採用成本低——JetBrains提供了高質量的轉換工具(可以實現Java到Kotlin代碼的一鍵轉換),而且特別注重Java二進位兼容性。開發者可以一次僅轉換現有Java項目中的一個文件,整個項目仍然可以正常編譯。 Kotlin程序可以使用所有現有的Java框架和庫,並可以集成Maven、Gradle和其它構建系統。 易於學習——Kotlin語法簡潔直觀,看上去非常像Scala,但更簡單。它不遵循特定的編程哲學,如函數式風格或面向對象風格。 不增加運行時開銷——Kotlin標準庫非常緊湊,主要包含Java標準庫的擴展。 適合Android開發——藉助像Anko和Kovenant這樣的框架,Kotlin將在Android開人員中流行。
如果你是一名Android開發,那掌握Kotlin語言對你就更加重要了,在AndroidP源碼、Gradle源碼與AndroidJetpack庫中都已大量使用了Kotlin語言。在不遠的將來,如果不懂Kotlin語言,會嚴重影響你閱讀源碼(甚至根本看不懂)。
其實,Kotlin的使用範圍並不局限在Android開發領域,還包括伺服器編程以及前端React應用等跨平臺開發。可以說,只要是Java能做的事情,Kotlin都可以做,甚至還可以做得更好。
特別是在2017年GoogleI/O大會上,Google宣布將Kotlin作為Android開發的官方程式語言後,Kotlin開發者社區一直在快速增長。StackOverflow的2018年開發者調查顯示Kotlin是排名第二的程式語言。縱觀矽谷,Netflix,Pinterest和Lyft等知名公司已經在使用Kotlin。可以說,2018年,將會迎來Kotlin的爆發。
這也意味著,對於Java程式設計師和Android應用開發者來說,僅僅掌握Java是不夠的,你還應該學習Kotlin,才能追上技術發展趨勢,在工作中更加遊刃有餘。
看完以上的內容,作為一名Java開發者,你是否也考慮要重新學習一下Kotlin語言呢?