这篇文章看似和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敢和他呛声。