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