這篇文章看似和Mobile好像無關,但其實因為Windows 10 的特別性,和Mobile習習相關,請版主看看是否可以放在這裡吧!
0729 Windows 10 就會上市了。最近MS關掉芬蘭前NOKIA總部,有一堆人就在說MS不做手機了。但前幾天MS CEO又說會走 Surface 模式。因為中文媒體特別是台媒常常都是二手三手消息了,加上不見得有時間深入了解。正好小弟我因為需求而有研究,就在此和大家分享一下。
直接結論:
MS的目標並不是希望用Windows 10 帶動Windows 10 Mobile。 而是他想要推行Windows 10 這個平台。 Win10M只是這個平台一個樣版應用,因此他會像Surface 一樣每年出少量的機子,不論成敗。
Win10M 最大的弱點就是App的數量。而Win10的升級率將會直接影響Win10M。會不會成功我不知道,但如果Win10很成功,那我覺得Win10M放個幾年一定會成功,不然就是直接變成完整的Win10。 (在省電上Win10M還是比Win10適合手機)
"為什麼我會這樣說呢? 這是因為Win 10 有一個新的API => UWP。"
什麼是UWP?
UWP 是 Win10 新的API,主打One API / One Binary /One Platform 。只要是純粹的UWP程式就可以在所有Win10的平台上執行。 他是基於.Net Framework,近年.Net已經Open source外加可以直接Compile 成Native 語言,因此速度上還滿優秀的。 Window10附的Edge 瀏覽器就是一個UWP程式,他在我的SP3上跑得比Chrome還快哩。 Window10 免費附送的Office 系列也是UWP。
One API,代表不會發生PC程式時和寫手機時相同功能因為API命名空間不同,而要重新寫這個問題。 One Binary,代表只會產生一個執行檔。 One Platform,是指所有Windows家族都會可以執行這個程式。所以理論上可以把同個編譯好的程式直接拖到另一個平台就能直接執行。
"只是為了用Windows桌機去救手機而已,有必要搞這麼大?"
UWP並不是只針對跨PC/手機而已,而是所有Windows10平台都可以。 因此近年流行的IOT(internet of thing) 如Resbarry pi2 也可以跑Win10,你可以在上市跑和你在電腦上相同的日曆程式,讓那台IOT做專門的日歷機。你也可以把日曆放到XBOX上用,你更可以讓同個程式直接在之後會出的Hololens上跑。 只要是Win10平台,你就可以執行純UWP。
"不同平台的I/O有很大的差別,那這樣會好用嗎?"
我們知道不同平台使用者介面會有很大的不同。在桌機上我們習慣用鼠鍵、在手機上我們會用觸控、在Hololens 上如果還是只是平面的日曆程式不是很沒有誠意嗎?
因此UWP也可以針對不同Device做特化。你可以在桌機上做出適合鼠標的介面,然後針在Hololens做可以互動立體的AR-UI。 UWP可以辨別自已是在哪個平台上執行,而會執行該平台的介面和特定的功能。
如果這樣,是不是任何程式只要用UWP寫的,就可以在Win10m上執行呢?
因為會有平台特化的問題,所以有些程式會因為沒有實作該平台的特化而不會讓你在該設備上安裝。所以是理論上可行,但開發商還是可以決定要不要。 但因為上架費都一樣,如果是一些簡單的、純UWP的程式,不用改就可以上架的,那開發商也許就有可能順便上架。這也是MS所希望的。
這就是為什麼MS的CEO說: 開發者並不會為了3%的市場開發Windows10Mobile。但是他會為了Windows而開發。
"我可以在Win10M上跑X86程式嗎?"
不可以。只有純UWP寫的程式才能全平台跑。
"傳言說Win 10 可以執行Android /iOS 的程式?"
正確來說,是可以把Android / iOS的程式 在86%程式碼不變動的情況下改寫成Win10 UWP程式。 因為我們寫程式其實除了和系統溝通的程式外,多數都是寫應用程式的邏輯,因為MS想要讓iOS/Android平台的開發者更方便的改寫過來。86%這個數字是MS 自已說的。MS讓VS可以編輯Obj-c ,也寫了個外掛給Android studio讓他可以開發Windows 10 UWP。 C++的部份當然MS這沒有問題。Swift MS之前也說會支援。 MS還基於Hyper-V寫了一個非常強大的Android 模擬器,大概是目前出現過的最強的了。可以直接把APK拖上去就能跑…
順便一題,現在大家的iOS /Android上面的Office就是和 UWP 共用C++程式碼寫的。86%這個數字就是Office共用程式碼的比率。
"那x86程式怎麼辨?"
MS在Build大會時說過,為了讓大家利用自已寫過的程式,他們把從Win32、MFC、WPF、到.Net Framework所有的API ,去除一些會動到系統的指令外,都盡量實作到Win10 UWP中。 MS有舉例,如果有一個人用最老的Winsock 寫了個程式,他不會叫你換API,因為就算是老程式,但可以執行就是好程式。而是,他會讓你直接用Winsock 來寫UWP。
另外MS也有提供把X86程式打包的功能,讓他可以直接變成PC專用的UWP。
你可能會問,PC專用,為什麼還要變成UWP呢? 因為這樣就可以丟到MS市集上,MS幫你做版本管理,你就不用自已還要寫更新程式。市集沙盒,如同OSX 那樣,也會減少登錄檔的使用,使得電腦不會變慢。 當然,一些會用到系統權限的程式,這種就不能變成UWP。如防毒軟體,這在OSX上也是要用安裝而非沙盒。
為了寫這篇文章,我還特地去找我之前在Mac做的投影片XDD。基本上,我的看法就是Win10成功,UWP成功,Win10m就有機會成功。MS放置Play就可以了。
但,現在最大的變因就是如果 Win10成功,但很多人還是寫傳統API而非UWP,那Win10M就尷尬啦! 不過UWP有滿多好處,就當成是一個誘因吧! 未來就是變化才有趣。
附上MS 未來的Device願景: 反正MS很會畫大餅
http://imgur.com/jUUofck
附加嘴碎~~~~
之前看版上很多流言,讓我忍不住想來終結一下:
Q: MS是不是快倒了?
A: MS 這家公司1985年開始只有兩季是負是,是因為買了的公司不賺而變負。其他都是賺的。MS主要的收益並非消費者,而是企業界。 這幾年Windows office 已經不完全是主力,而是Azure 在和 Amazon 掙一二名中。
Q:不是一家只會買別人的沒技術公司嗎?
A: 聽過Microsoft research嗎? 看過MSR才知道什麼才是外星黑科技。 MS說自已在資訊界技術只是老二,應該只有IBM敢和他嗆聲。