看板 MobileComm
作者 ExpressCrass (煞氣a小宏)
標題 [新聞] Swift 將成 Android 主要語言?
時間 Fri Apr  8 17:43:14 2016


Swift 將成 Android 主要語言?Google 、Uber、Facebook 齊聚討論

http://wp.me/pKpPm-nvL

Swift 已經開源,根據 The Next Web 報導,可靠消息指出 Google 、Uber、Facebook
三位巨頭齊聚倫敦討論這個新語言,Google 考慮將 Swift 列為 Android 首要語言,
Facebook 和 Uber 也打算採用 Swift 作為運作核心。



目前 Android 的首要語言是 Java,至少初期他們沒打算直接取代掉 Java,不過因為最
近 Oracle 和 Google 的爭執,Swift 在這方面自然有了更大的優勢。而且 Swift 本來
就開源,所以 Android 不必改變它開源的手機架構。



Swift 在 2014 年的 WWDC 公布以後便廣受 IBM 及 Lyft、Vimeo 等 app 的支持,它沒
有又臭又長的參數設定,對開發者相當友善。但 Android 可不是直接複製貼上 Swift 就
好,還是要花一些時間來加工一下。Google 還得改造整個資料庫,並在 API 和 SDK 支
援 Swift,比如現在有些基礎 API 是 C++ 的,但 Swift 目前無法直接接上,一些高階
的 Java API 也需要重寫。



不過工程師 Romain Goyet 就曾經用 Android NDK 做出一些成果,而 Swift 當時根本還
沒開源,所以這是絕對可行的。而且只要 Google 願意下苦功,導入 Swift 應該不會影
響到 Android 本身的開源,也不會影響到原本的開發者。但目前對 Swift 有興趣的

Android 開發者並不多,雖然可能更方便維護開發,但要用 Swift 最好就是要全部重寫
,否則意義不大,因此 Android 能吸引多少開發者轉用 Swift 也將是一大挑戰。


對 Facebook 而言,採用 Swift 的好處是它可以用在伺服器端也能面向前端,一致性更
高,而 Facebook 的工程師在 Github 開了 Port to Android 的 pull request,雖然不

清楚這個和 Facebook 官方有沒有關聯,但至少能確定 Facebook 內部有開始在注意Swift。


Uber 方面,情況就簡單得多。雖然還是要重寫 app 或 API ,不過他們可以直接參考競
爭對手 Lyft 的成果。

不過這三家公司對於 The Next Web 的詢問,皆沒有正面證實,尤其 Google 和 Oracle
之間的官司還沒結束,因此不方便評論。

--

Swift可和obj-C一起用在OS X平台上面,這使得他在以unix based為基礎的OS X上有著不

錯的開發性,不得不說Swift有他簡單易用的優點存在,他的腳本語言能力讓寫code的

難度降低且使用Xcode的debug環境下Swift有著REPL功能這使他編寫code時有類似於Python

跟Ruby之互動功能,也減少了一些使用於obj-C的麻煩語法,去年年底Swift也已經變成

open source且支援linux,如果安卓願意使用swift來當作編寫app的主要程式的話其實

是樂觀其成的,畢竟Swift語法是這幾年個人認為蘋果為數極少的好產品。

--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.216.51.38
※ 文章代碼(AID): #1N1tqsxE (MobileComm)
※ 文章網址: https://www.ptt.cc/bbs/MobileComm/M.1460108598.A.ECE.html
molsmopuim: 原來是Suzuki啊~我還以為是Swift呢~1F 04/08 17:46
shelizi: google一堆語言可以選擇swift的優勢在?2F 04/08 17:48
a3619453: 文中不是寫了嗎3F 04/08 17:49
james732: pitt沒顯示問號,我還以為定案了,嚇了一跳XDD4F 04/08 17:51
icarus0508: Dirt表示  白被開了
話說 現在大型程式都直接用C++了  才是真跨平台
     Swift目前微軟也在支援開發中 更不要說蘋果
  的確投資上比Dirt好    Java被捨棄中 而C#勢頭越來越好5F 04/08 17:52
w3160828: 有智產權的語言就只能死在智產法上10F 04/08 18:00
james732: 甲骨文公司是不是為了java一直在告google?11F 04/08 18:01
icarus0508: 當初JAVA 升陽公司為了自主性不去做語言認證 結果沒想到被專業律師團甲骨文買下來 變成告人用道具
還有JAVA很多可以直接反組譯成程式碼  對於開放商有點傷 很多阿六換皮遊戲就是這樣來的
BTW在swift開源前微軟就已經在搞swift的支援了 所以有心要換是做得到 但是陣痛一定不小12F 04/08 18:01
james732: 容易反推應該是中間語言的缺點吧?不能完全怪java如果google改用C#就好了,語法也很像java
不過google應該不會讓微軟這麼爽XDD18F 04/08 18:10
mainline: 看看就好 這跟標題為JavaScript是世界最普遍的程式語言有異曲同工之妙21F 04/08 18:12
icarus0508: 所以當初蘋果直接用obj c底層語言也是有好處的 現在c#直接編譯成native也是有好處
C@比java還像他們祖先C++
C#23F 04/08 18:12
silence5105: Oracle 不授權,加上 swift 最少可以寫 android, ios 就算之後 wp 沒有支援 swift,java 跳 c# 不是難事27F 04/08 18:15
mainline: BTW 甲骨文是美國龍頭科技業中的異類 指政治傾向及商業行為上30F 04/08 18:15
silence5105: 所以 google 找 swift 不是壞事,但最近 as 剛發布2.0又出現這新聞32F 04/08 18:16
icarus0508: Xamarin都免費了 還有Unity. 且.net開源  又語言和c++整合比較好   我看C#真的後勢看漲34F 04/08 18:16
mainline: 而且這一篇完全媒沒提谷歌自家的最佳替代品36F 04/08 18:17
silence5105: (補充,正式版37F 04/08 18:17
icarus0508: AS 正式版 其實滿無感的…38F 04/08 18:18
shelizi: 那麼多語言可以選擇我不覺得swift會是第一優先拉39F 04/08 18:19
erspicu: Xamarin沒免費 是很爛的受限版本才免費40F 04/08 18:19
silence5105: 2.0一些細節有變,然後會先偷 build,build 第2,3次會更快 run 旁邊會有閃電
另外單純更新2.0沒用,要連 gradle 也更新41F 04/08 18:21
james732: 甲骨文是不是很不擔心java沒人用啊?44F 04/08 18:23
silence5105: 目前看起來是這樣...45F 04/08 18:24
james732: 如果當年買下java的是google的話就沒這麼複雜了XDD46F 04/08 18:26
silence5105: 但是這些都是工具,其實習慣就好了,寫 android 這幾年變化本來就不小,如果可以趁機換個通用的也不是壞事47F 04/08 18:28
DiChik: 我贊成Google的Android換掉JAVA.......
單就JAVA效率上..真的不好50F 04/08 18:30
icarus0508: Dirt是google本來的方案
直接C++了啦  全部通用52F 04/08 18:31
DiChik: Swift剛好是目前更有效率且更通用的一個語言
雖然現在選擇很多,但整體上若改用Swift
比較不會惹上其他的麻煩XD 就陣痛期要過一過罷了
全改回C++嘛....XDD54F 04/08 18:32
james732: 話說google完全放棄了go語言嗎?58F 04/08 18:33
icarus0508: 反正 前50名程式都是c++ 而且又跨平台 效能又好59F 04/08 18:35
mainline: 還有就是從被O掌控換成被A掌控 這不傻了嗎 何況自家又不是沒好貨 雖然都開源 但不能自在往想要的方向主導 chromium從webkit branch變fork就是這原因60F 04/08 18:36
DiChik: 效能來說,我真心覺得JAVA是個又臭又長的語言
拿來作行動裝置OS的語言...很麻煩 (現在就是)63F 04/08 18:39
mainline: 我說的就是Go 活的好好的65F 04/08 18:39
james732: 可是我還挺喜歡java的說,python這種我寫不慣QQ
google不會把go語言用在android上嗎?66F 04/08 18:40
DiChik: JAVA拿去某些地方還不錯,不然當初也不會崛起
不過如果要講求效率跟效能就...68F 04/08 18:42
james732: Android要跨平台,app就不可能弄native吧?70F 04/08 18:43
icarus0508: JAVA起來有他的時代背景  現在只剩幾家公司平台了  加上人心要效率  所以…71F 04/08 18:43
mainline: 會
啊 好像有在試玩73F 04/08 18:44
icarus0508: 大型專案 都是分兩層寫程式  一層是共用 一層是底層api  現在大專案都是都用C++寫 下層在接系統api75F 04/08 18:45
james732: 突然想到之前ART號稱比davlik有效率但挺無感的…77F 04/08 18:45
DiChik: 當然,不否認JAVA先行多年不是現在環境能比較的
不過即使到了現在....用JAVA的其實還是不少XD
(如果不是講求效率的話)78F 04/08 18:46
icarus0508: 可以參考 ue4的程式碼 是開源的81F 04/08 18:46
DiChik: 我只能說,Android如果不換掉JAVA...
還是很難跟得上iOS原本優勢的地方
效率差太多了82F 04/08 18:49
james732: iOS又不用考慮跨平台QQ85F 04/08 18:50
nnkkman: 這時候就要說我不會C++86F 04/08 18:51
james732: 誰敢說自己會c++,那是個越學越不會的語言XDD87F 04/08 18:52
icarus0508: 安卓也不用考慮跨平台啊 系統核心一樣的88F 04/08 18:53
mainline: 理論上要完全native除非compile就得用不同的compiler才行 ART的AOT其實已經算是native 不過把不用同ISA的優化交給手機上自載的特定架構compiler 但是N又改了 好像是改成AOT/JIT複合式的由ART負責管理安裝時可只整理概要 系統空閒時會把部分推測常使用部份compile89F 04/08 18:54
DiChik: C++...其實如果是我我也不會想回頭...95F 04/08 18:55
KotoriCute: Google有微軟過敏症,要他們用C#不如教他們去死XD96F 04/08 18:57
icarus0508: 雖然我不會C++可是每天要和它為伍XD  畢竟大專案只會C++97F 04/08 18:57
DiChik: 推KotoriCute XDDDD99F 04/08 19:00
KotoriCute: Google開發Golang不用為了用在Android上
Google開發Golang不是為了用在Android上
Golang的目標是雲端和伺服器100F 04/08 19:01
mainline: icarus大 ISA不一樣啊 你提到的下層C++ compile出來的so不就是一個架構一種嗎 單是ARM自己在安卓史上就有三款架構來了
其實我也有C#過敏症 Go的開發確不是為了安卓 沒錯103F 04/08 19:03
icarus0508: 所以該在那裡統一啊 不然開發者麻煩 消費者inconsistance
現在開發安卓 比開發pc ps4還麻煩 要測的東西多很多   其實是把開發者推向ios107F 04/08 19:04
mainline: 沒辦法啊 那是處理器的machine lang 舉例ARM A是蹲下 B是站立 C是半蹲  Intel B才是蹲下 MIPS 根本不會半蹲111F 04/08 19:11
icarus0508: 所以要限制。 系統支援的晶片  不然不叫自由 只是在衝康
現在安卓生態比早期window還零碎 對長遠不是好事114F 04/08 19:13
mainline: 我已不知道該怎麼回文了 加油117F 04/08 19:29
balcony5566: 文組看不懂路過118F 04/08 19:32
DarenR: 沒學過程式…119F 04/08 19:34
doranako: 樂見,不過難度很高
微軟跟蘋果把持系統不開放,安卓開放讓系統廠修改才造成混亂,有些這台可以跑那台不能跑120F 04/08 19:47
mmppeegg: C#超有趣的123F 04/08 21:36
wuliou: 好懶得再多學一個語言orz Python不好嗎 囧124F 04/08 21:46
uland26922: 看來又有多學一種呢125F 04/08 22:14
fasthall: 這種平台如果用C++這種沒GC的東西市集一定很慘126F 04/09 00:33
bearq258: 這種高階程式語言大同小異 關鍵是開發IDE127F 04/09 00:47
icarus0508: 現在就很多用c++了  有memory leak市集是無法上架128F 04/09 00:48
bearq258: ios 有xcode ,google 應該幫忙發展一套更好的工具130F 04/09 00:49
marc47: 誰說java被捨棄,現在要改用java open sdk
拿一個對手專長的language開發,不就跟當年拿java來寫android一樣131F 04/09 03:41
DemonElf: 都有甲骨文這前車之鑑了,再換去採用一個蘋果把持的架構根本邏輯不通134F 04/09 05:03
cser945: 能cost down才是重點136F 04/09 08:46
ReitaHey: Google用C#幾乎是不可能的事 光看Google對微軟這麼恐懼就知道了137F 04/09 14:11

--