Contact

Facebook Page: https://www.facebook.com/GoogolForex/
YouTube Channel: https://www.youtube.com/c/AngrywaterNet
Global Prime IB Plan: https://secure.globalprime.com.au/?promocode=KCL , Refer ID: KCL
中文 (台灣地區) ICMarkets IB Plan: https://www.icmarkets-zhv.com/global/tw/?camp=12437 , Refer ID: 12437
英文 (台灣以外地區) ICMarkets IB Plan: https://www.icmarkets.com/en/?camp=12437 , Refer ID: 12437

Adsense Top

2014年6月2日 星期一

[Concept] 2014.0603 SWIFT 將佔有一席之地,但可能小時了了

Talking Tiger

之前 iPhone 5c 發表的時候,我大聲嚷嚷過一些不太看好的話,結果被大嗆酸回來說我唱衰明明是好手機之類的話。這次我就改為小聲嚷嚷好了。

 

當初賈伯斯出走蘋果以後,在 NeXT 時代為何要摒棄廣受歡迎的 C 或 C++ 不使用,而開發用起來很彆扭的 Objective-C ,可能有一些歷史因素,個人推測不排除是太多才多藝卻飽受挫折以後的發洩性產品,例如不屑比爾蓋茲或某些同行的行為,所以才要特別搞點有些標新立異的名堂。

 

我這樣說並不是在批評 Objective-C 是不好的語言,或者是效能不彰。它之所以用起來很彆扭,是因為它處處充滿著 C 或 C++ 的影子,但又長得很不一樣!那感覺就像你每天看得很習慣的寵物貓,有一天一覺醒來忽然變成寵物龍貓,雖然都是寵物,也都有一個「貓」字,但總覺得哪裡有點怪怪的。

 

或許真正原因是 Objective-C 為 C++ 發明以前的同質性設計,其實 Objective-C 才是祖宗,C++ 又是比爾蓋茲之流的抄襲之作。 (在能夠用 C# 當 Script 以前,我自己也是發明了一套很類似 C#,全世界可能只有 2 個人使用過的 GASS 語言啊。)

 

總之,它本身已經很彆扭了,加上 XCode 又支援傳統 C 甚至 C++ 的語法,好像要很特立獨行,又好像要跟大家保持緊密的關係,整個很尷尬,給人的感覺就是 Apple 為了賈神的傳奇性才留下來的產物。

 

這麼做的好處當然是讓 Apple 旗下產品的開發環境變得很封閉,參與其中的人才也是被一刀兩斷,要嘛就是熱愛賈神語言,要嘛就是跟我一樣覺得很彆扭,只能選邊站。雖然高手應該有辦法劈腿橫跨傳統 C++ 與賈神語言,但是如果開發者摸著良心說話,一定會覺得還是從小學到大的語言格式比較得心應手。

 

此時選擇傳統 C++ 那邊的人,就很容易可以跨足 Java、C#,甚至是 Basic …等等語言,因為它們看起來都如此相似,要遷移程式碼也變得相對簡單許多。

 

不難想像選擇傳統 C++、C# 就代表著人才的多樣和豐富性吧?但以賈神的立場,向來都是「我很屌,所以你來跟隨我」,而不是「我跟大家很相容,所以你來跟隨我」,原本也可說是無可厚非的事情。只是隨著賈神離開人間, Apple 後續的發展就顯得有點積弱,這次的 WWDC 也有一個狀況讓我為這公司感到擔憂。

 

有人跟我一樣覺得,這次 WWDC 有著濃濃的「微軟味」嗎?

 

舉個最明顯的例子,其中有一段影片,是在介紹新的軟硬體搭配設計將帶來怎樣的效能,又是幾千幾百個動畫,又是幾千幾百個物件,然後就怎樣怎樣厲害……如果以前常看微軟發表東西的朋友 (例如:Direct X  發表),應該會有一種似曾相識的感覺。

 

就是每看一段展示,都會有一種 “So?……” 的感覺跑出來,就和以前微軟那些技術性展示一樣,也許某些開發者會覺得很 High,但一般使用者不會有深刻的感覺,也不會記得那些非常技術性的數字代表哪種意義。實際上使用的時候,甚至可能是一場災難!

 

你可能會發現,這些宣稱的高技術或許很酷,但距離拿到使用者面前又不會收到滿坑滿谷的客訴卻還有好長一段時間!除非你願意耗費類似在家蓋一座自己的發電廠那樣的資源,才有辦法將它使用得盡善盡美,否則最後還是會選擇乾脆放棄算了,等個 10 年後普及了,或者相關的外部支援資源充分了,再來使用它好了。不然現在要人才沒人才,要工具沒工具,什麼都要自己來,到底有多少開發經費可以讓你這樣亂燒呢?

 

也許我對他們的展示有所誤解,但「造成誤解」這件事也是我正在詬病的地方。

 

真的不是我老要緬懷賈神,但記憶中賈神主持的發表會,總會有種「一看就懂」的特性,而不是讓人充滿「然後呢?」的想法。例如:首次發表使用可變間距字型的 Mac,把幾千首歌縮到你口袋裡的 iPod,每次都讓你覺得與眾不同又讓其他廠商瘋狂抄襲的 iPhone。

 

想要看到主持人拿出某樣讓人覺得「這就是大家正在夢想與期待的事物!」,才是以前我每年期待 Apple 發表會的心情!並不是因為賈神本身特別帥,或特別有魅力。他的魅力是來自於那種「一把東西拿出來就馬上說服你」的特性,否則他就只是個脾氣不好的機歪大叔而已啊。

 

但 2014 的發表會真的感覺超微軟 der……是啦,現在可以跑幾千片櫻花,以前只有幾百片,然後呢?這是我等了一年的夢想與期待嗎?多了 10 倍的電腦櫻花瓣?

 

按照主持人的說法「如果 Objective-C 把 C 拿掉呢?」,推出 Swift 可視為 Objective-C 的接班者,似乎有意讓賈神真的當神就好,不要繼續「遺愛」人間,但語法之間還是脫離不了想搞怪一下的做法。 (如同前面的玩笑話,把你家的貓前面硬加個「龍」,要他變成龍貓。)

 

與其說 Swift 是像 C 語言或 Objective-C 的進化版,個人倒是覺得比較像 Visual Basic 或 Pascal 的搞怪版,例如多變數回傳值這樣不能算是新鮮貨的東西。

 

好吧,或許其實是因為沒有看到等很久的 iPhone 6,讓我心生怨念才會碎嘴這麼久,可能我講的有失公允。簡單做個結論的話,我認為那些 Apple 所宣稱的 Swift 效率,只要他們有心,其實要改良 XCode 版的 C++ 或原來的 Objective-C 來達到相同效能並不無可能。

 

目前看起來,或許 Swift 可以簡化一些程式設計師的繁瑣步驟,但那些宣稱的效率並非因為 Swift 的語法非常高招才達到的。

 

而過去簡化程式設計師的繁瑣步驟的嘗試,通常都不會太成功,畢竟電腦還是很笨的結構,只要拆解到組合語言或機械碼的程度,就能理解上層的事物多半只是華而不實的「花招」而已,因為最底層都還是沒有太大的變化。與其以含糊不清的方式簡化產生所謂的設計效能,倒不如乖乖的一五一十告訴 CPU 要怎麼做事情……這就像你不會說某種語言而請了一個翻譯來代言,他自作主張的幫你「簡化」或「加以華麗的表現」可能不見得是好事,除非他真的夠聰明,但人類或許可以,現在的電腦還是不行。

 

我倒是很捶胸頓足,與其做 Swift 這樣的發明,為何 Apple 這次仍然不肯重視嚴重的 App Store 生態問題,發表什麼能有效摒除刷榜與假評價的機制,而是依舊把資源和開發能量挪去奇怪的地方呢?

 

估計 Swift 最後如果不是被放棄,大家對它的定義就會變成是「有比較好懂一點的 Objective-C」,它還是很封閉、很 Apple 專屬的語言。而 Apple 在「賈神不再」之後顯露出的疲態,又會讓這類設計顯得更封閉、更少數族群,因而走上類似 COBOL、FORTRAN 之路……

 

我會大膽的預估在量子電腦的世代來臨時,有可能出現非常石破天驚的新電腦語言,例如命名為 Qμ 之類的,非常接近人類口語的奇怪語言。在那之前, C++ Like 的語言應該還是會繼續獨霸天下。

沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。