iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 20
0
Software Development

0 -> Android -> Kotlin 開發筆記系列 第 20

[Day20] Why Kotlin? (PhoneGap,React Native, Flutter, Cordova, etc…)

  • 分享至 

  • xImage
  •  

今天筆者要來談一下,為什麼要選擇Kotlin?
目前已知的跨平台語言,有PhoneGap、Xamarin、ReactNative、
跟最新聽到的Flutter,這些通稱跨平台語言:


筆者認為除開Native Language以外的主要原因有三:

  1. Google官方支援。
  2. 可以混原生Java程式實作。
  3. 今年初已經超過35%的使用率。(Kotlin使用率達35%,Java要退位了?)

為什麼官方支援很重要?
一個語言的發展跟與支援他的公司是有非常大的關係的,
譬如ReactNative,他是FB推出來的跨平台語言,
也讓Airbnb等公司在早期一起加入推廣。
但這些巨頭公司如果之後不支援了呢?

究其本質,我們要思考的是,
這些巨頭公司的發展與這個語言的發展是有共同方向的嗎?

Github上的許多Third party library也是,
如果是不嚴重相依程式架構的話,
那就沒有關係,但如果是會牽扯整個專案的呢?

如果之後這些Third party library不支援了,
但公司的程式仍在線上,而在這個時間點上,
架構上就勢必需要再花時間把整個功能review一次,
一定會讓大家痛不欲生…


為什麼可以混原生Java程式實作很重要?
不管從風險防範的角度來看,或是公司產品營運的角度來的,
這件事都很重要,假設Kotlin以後被Google 拋棄了
(別忘了Flutter也是Google提出的…),
舊有系統的改善仍可以用Java持續改善,且以現有的環境來說,
具備Java開發能力的工程師仍是較多數的,
在營運方面來看仍是較低風險的選擇。


為什麼使用率的提高很重要?
使用率的提高,意味者更多的開發者,
包括支援Library可能都會往Kotlin的方向去轉換,
一個新語言的出現,必然解決了老語言的缺點,
不然不會被開發者接受,也不會達成這麼高的使用率。


說了這些好處,那Kotlin有沒有什麼不值得選擇的風險存在?
筆者認為仍然有:

  • Flutter語言的威脅(同樣是Google開發)
  • 開發的門檻更高,可以將Kotlin 視為Java(抽象能力最低) and
    Scala(抽象能力最高)中間的語言,且因為Java函式庫仍是大宗,
    因此團隊具備Java開發能力仍是必備的條件,因此組成且維持同時具備Java,
    Android, Kotlin的團隊,仍是較困難的部分。

跨平台語言(前端、App)的統一語言出現之前,
的統一語言出現之前,大概還是持續會有新的挑戰者出線,
以上是筆者的看法分享,謝謝大家的觀看。

本文同步發佈在Medium,連結在此


上一篇
[Day19] 與Android無關的軟體開發流程
下一篇
[Day21] Kotlin 學習日記 I
系列文
0 -> Android -> Kotlin 開發筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言