微软的 10 年之变

达尔文
 达尔文
发布于 2018年11月16日
收藏 9

10月24~27日,微软在上海世博中心举办了技术暨生态大会,通过这次大会,IT之家编辑文轩发现,如今的微软已经和10年前的微软截然不同。

10年前的微软与JAVA为敌,与Linux和开源为敌,而今天的微软不仅已经是Linux基金会的一员,前段时间,他们还收购了全球知名的代码托管网站GitHub,在技术暨生态大会上,微软还宣布Visual Studio支持JAVA。

这些年微软的改变我们有目共睹,这个全球最知名的科技巨头之一已经变得越来越开放、越来越包容。今天的这篇文章,IT之家小编就和大家讨论微软的10年之变。

鲍尔默:开源?NO…/纳德拉:开源?YES!

我们将时钟拨回10年前,也就是2008年。那一年,微软在休斯顿召开了一次全球合作伙伴大会,在那次大会上,时任微软CEO的史蒂夫·鲍尔默暗示,微软会与开源产品进行互通,但是不会开展开源业务。鲍尔默当时表示,开源即为意味着免费,但免费与我们(微软)的指导精神不符。

作为专注于私有化软件盈利模式的老牌科技巨头,在很长的一段时间,微软对开源的态度都是充满敌意的。“开源软件是知识产权的癌症”、“Linux是颗毒瘤(Linux is a cancer)”、“所有开源软件都不值得一提”,这些话语都是出自当时的微软CEO史蒂夫·鲍尔默之口。不过从2014年萨提亚·纳德拉上任开始,微软对开源的态度就悄然发生了变化。

萨提亚·纳德拉上任之后,微软在GitHub上建立了一个账户,也正是在这一年,微软宣布了.Net的开源。自微软在GitHub建立账户以来,已有超过16000名微软员工在GitHub上为开源世界贡献代码,时至今日,我们不仅可以在GitHub上看到Visual Studio Code、TypeScript等一众来自微软的开源项目,在Azure上,其应用市场还支持Ubuntu、Debian、SUSE等Linux发行版的虚拟机,开发者还可以借助基于Node.js、PHP、Python和JAVA的应用服务生成Web应用和移动应用,在Windows 10当中,我们甚至可以像安装一个应用程序那样,通过简单的一次点击和几次输入以及回车来完成Linux子系统的安装。

看到微软的转变,微软前CEO史蒂夫·鲍尔默也放下了对开源和Linux的敌意,鲍尔默在2016年表示,他很高兴看到微软这样的态度,与此同时,他还向带领微软拥抱开源的时任CEO纳德拉发信表示支持。

如今的微软让我们既熟悉又陌生,经历过微软的这两个时代的读者相信也会感同身受,微软能从开源和Linux的敌视者变成开源世界的扛旗者,这在10年之前,我们是无论如何也不会预想到的。

Window手机之路

10年前的2008年,Windows Phone系统还没有问世,在此一年之前,即2007年2月12日,微软在巴塞罗那推出了Windows Mobile 6.0。这是一款风格元素与当时微软的桌面系统Windows Vista高度相似的手机系统,微软当初的产品逻辑是让用户在Windows Mobile上能够获得与桌面版Windows一致的体验。


就在Windows Mobile 6.0发布之前1个月,2007年1月9日,时任苹果CEO的史蒂夫·乔布斯在于旧金山举办的苹果全球软件开发者年会上推出了支持基于电容屏的多点触控的第一代的iPhone,而当时,微软Windows Mobile的“触屏”操作还是基于手写笔的。

为了应对iPhone的冲击,谷歌将当时已经接近完成的基于键盘操作的Android系统推倒重做,而微软的动作则是加紧Windows Mobile 6.5的开发,2009年2月,微软在巴塞罗那正式发布了这版系统,作为对来自苹果的挑战的回应,Windows Phone 6.5加入了对电容屏的支持,并内置了Windows Marketplace以抵御苹果的App Store。

尽管速度很慢,可是事情还是慢慢地向着好的方向发展。

▲左:东芝TG01(搭载Windows Mobile 6.5);右:苹果iPhone 3G

此时,微软的面前有两条路可以走,一条路是比较温和的改良之路,即继续推进Windows Mobile的进化,而另一条是比较激进的革命之路,即彻底推翻Windows Mobile的设计,彻底放弃Windows Mobile的生态,开发一套为触屏设备设计的全新系统。

微软选择了后者,而微软的选择,最终也让微软付出了代价。

10年前的Windows Mobile虽然面临iPhone的冲击,但是其市场表现仍然非常乐观,当时的多普达、夏新、华硕、联想以及摩托罗拉都是这个系统忠实的站台者,然而2010年,随着Windows Phone 7系统的发布,Windows Mobile瞬间被宣告死亡,其多年来苦心搭建的软件生态及OEM生态也瞬间崩塌。

不过因为有三星、HTC和诺基亚这样重量级合作伙伴的支持,全新的Windows Phone 7的未来渐渐有了起色,国内外的开发者也积极响应,纷纷转而为Windows Phone 7这个全新的平台开发软件。当时的软件开发商对Windows Phone 7的支持程度从腾讯的态度即可窥知一斑,在这个新生的操作系统还没有官方的简体中文支持的时候,腾讯甚至在其为Windows Phone 7开发的QQ里内置了一个简体中文输入法。

后来的事情相信IT之家的很多读者都已经亲身经历过,2012年,微软发布了基于Windows NT内核的Windows Phone 8操作系统,由于Windows Phone 7采用的内核是Windows CE,出于各种复杂的原因,所有搭载了Windows Phone 7的设备都无法升级到Windows Phone 8,一波用户被微软抛弃了的同时,还被喂下了一颗名叫“Windows Phone 7.8”的药丸。

2014年,微软正式发布了Windows Phone 8.1,所有搭载了Windows Phone 8系统的设备均可获得升级。随着Windows Phone 8.1发布之后,Windows手机平台形势的转好,用户对微软统一全平台的战略设想抱有巨大的希望。2014年~2015年是Windows Phone的黄金时间,当时几乎所有的Windows Phone用户都对这个平台的未来充满信心。

2015年2月13日,微软推送了Windows 10 Mobile首个技术预览版。然而,微软做了两件事情,彻底浇灭了刚刚燃起的Windows手机平台复兴的火苗。首先是一改之前“所有Windows Phone 8.1设备都能升级到Windows 10 Mobile”的承诺,放弃了第二代Lumia设备以及同时期来自其他OEM的Windows Phone设备。第二是砍掉安卓子系统,宣布安卓应用移植计划搁浅,iOS应用移植计划最终也不了了之,Build 2015上微软描述的关于Windows 10 Mobile的美好愿景,突然变成了一场空。

2017年10月,微软宣布Windows 10 Mobile进入维护期,这条路也基本走向了尽头,虽然最近5年一直有关于微软Surface Phone的传言,微软的仙女座设备也时不时地神秘现身,然而自微软为Windows 10 Mobile判了死缓以来,微软似乎一直在回避Windows手机这个话题。

打得赢就打,打不赢就走

在逐步放弃自家的Windows手机平台的同时,微软对iOS以及Android平台的投入日益增加。截止发稿之时,微软在苹果App Store上架的应用有73款,在Google Play上架的应用有87款。打得赢就打,打不赢就走,微软深谙此理。那么拥抱竞争对手的平台,对微软到底有什么好处呢?

随着Windows 10 Mobile平台的衰落,作为一家软件公司,继续让自家的服务搞Windows平台独占是无谓的挣扎。在整体的应用生态无法满足用户的使用需求的前提之下,就算微软的软件和服务做得再优秀,它们也无法吸引用户选择Windows 10 Mobile平台。微软很清楚自己应该做什么,它需要让尽可能多的人使用自己的软件和服务,因为脱离了用户,一切都无从谈起。

因为iOS和Android的用户基数庞大,对微软来讲,拥抱竞争对手的平台即意味着自家服务的用户非但不会流失,反而会迎来一大波的增长,而对于微软的“竞争对手”的平台来讲,Office、OneDrive、Cortana等重磅应用的加入也极大程度地增强了搭载这些平台的设备的体验,举个最简单的例子,在iPad Pro的发布会上,微软曾经携Office为这款设备站台,可以说,iPad Pro的生产力,其中有相当大的一部分是由微软软件赋予的。

既然Windows 10 Mobile的失败已成定局,那在“竞争对手”的平台发布微软软件、提供微软服务这种双赢的事情,微软何乐而不为呢?

在纳德拉的时代,合作和共赢才是微软的关键词。

微软的十年之变

在过去的这十年,微软的性格发生了几乎180度的转变。从过去的封闭和固执变成如今的开放和包容,微软既有主动,又有无奈。不管是主动拥抱开源,还是无奈渐渐放弃自家平台转而全身心支持iOS和Android,微软所有这些行动都是受效益的驱使。萨提亚·纳德拉是位务实的CEO,在他的带领下,微软成功地实现了转型,公司的股价也因此上涨了两倍。

不管对微软来讲,还是对微软曾经的竞争对手来讲,微软这10年的转变对双方的利好都是重大的。就像国与国之间的关系一样,企业与企业之间的关系也适用于这个道理。和平与发展始终是当今时代的主题,微软走的道路,须是一条和平发展、合作共赢的道路。历史潮流,浩浩荡荡。这个自然法则,不管是商业巨子,还是行业巨头,都无法逆转。

来自:ithome

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:微软的 10 年之变
加载中

精彩评论

久永
久永
如果抛弃用户和生态,一次是迫不得已,那么两次纯粹是自杀了。
可惜的一手好牌,赢在起跑线上,输在了终点钱。
——而为之殉葬的,是我们.net的程序员。
今天,还在坚守的.net程序员,待遇只有java的几分之一。。。
SupNatural
SupNatural
wp系统真的很好用,就是缺应用。
进击的代码
进击的代码

引用来自“久永”的评论

如果抛弃用户和生态,一次是迫不得已,那么两次纯粹是自杀了。
可惜的一手好牌,赢在起跑线上,输在了终点钱。
——而为之殉葬的,是我们.net的程序员。
今天,还在坚守的.net程序员,待遇只有java的几分之一。。。
是的…大学毕业后想找.net工作,结果成都寥寥几家,工资也不咋样,放弃了,找了个java开发职位

最新评论(19

d
dwingo

引用来自“断风格男丶”的评论

应该还是看生态 .net core语言的优越性确实超出java不少
但是整个软件的生态都基本被java占领了 从服务器架构 到android java占领了绝大部分市场 各种成熟的框架孕育而生 apache基金的孵化项目 各个大厂的开源项目
.net core 要走的路还很长很长

引用来自“dwingo”的评论

同样在JVM平台借用java生态的kotlin和scala有那么丰富的语法都难以替代java, 看来语言的优越性也帮不上什么了.

引用来自“久永”的评论

和语言无关,我们说的根本不是 C# 和 java 的竞争,而是 .Net 和 Java 的竞逐。.Net 底层比 java 设计的好多了,毕竟优秀和天才程序员之间还是有鸿沟的。
我知道,这句一出,那就是要引战了。
反驳不是不可以,但是起码搞过.net底层,了解其设计,再喷。

引用来自“dwingo”的评论

底层再好, 也得反应到上层让人有所感知吧. 我就从上层说说.net和jvm主流实现的主要感受差别:
1. .net支持值类型,真泛型,ref/out这些是优点; jvm可以用类和数组等基础元素去模拟,只是有些性能损失.
2. jvm的gc一直是比较领先的,不但支持算法多,也提供很多参数可调. .net支持的偏少,不过这也只是性能差别.
VM从上层来看可比较的确实比较少, 多数人更关注语言,库和生态, 相比之下VM的性能差别只要不太大就容易被忽略了.

引用来自“久永”的评论

jvm的gc并不领先,你说的可调只能说功能多,更重要的是针对不同平台进行优化。
但是.net就不需要面临问题,它的目标很明确,就是在win上跑得最溜。
微软的东西不是不好,是太 M$ ,是太拿自己当回事,太拽了,白人就是这个德行。
好在现在换了听话的三哥,现在好多了。

引用来自“dwingo”的评论

jvm的gc不领先?看看现在已经推出的g1和zgc,看看.net有没有上t大小托管堆的案例,停顿能否保证跟堆大小无关,是否支持压缩指针。

引用来自“久永”的评论

你还是看看 .net mono nc这些.net平台的这方面的技术资料再说这话吧。
看过了,vm这层没什么领先的技术,如果有不妨说说,想反驳就要有些技术含量的话。
久永
久永

引用来自“断风格男丶”的评论

应该还是看生态 .net core语言的优越性确实超出java不少
但是整个软件的生态都基本被java占领了 从服务器架构 到android java占领了绝大部分市场 各种成熟的框架孕育而生 apache基金的孵化项目 各个大厂的开源项目
.net core 要走的路还很长很长

引用来自“dwingo”的评论

同样在JVM平台借用java生态的kotlin和scala有那么丰富的语法都难以替代java, 看来语言的优越性也帮不上什么了.

引用来自“久永”的评论

和语言无关,我们说的根本不是 C# 和 java 的竞争,而是 .Net 和 Java 的竞逐。.Net 底层比 java 设计的好多了,毕竟优秀和天才程序员之间还是有鸿沟的。
我知道,这句一出,那就是要引战了。
反驳不是不可以,但是起码搞过.net底层,了解其设计,再喷。

引用来自“dwingo”的评论

底层再好, 也得反应到上层让人有所感知吧. 我就从上层说说.net和jvm主流实现的主要感受差别:
1. .net支持值类型,真泛型,ref/out这些是优点; jvm可以用类和数组等基础元素去模拟,只是有些性能损失.
2. jvm的gc一直是比较领先的,不但支持算法多,也提供很多参数可调. .net支持的偏少,不过这也只是性能差别.
VM从上层来看可比较的确实比较少, 多数人更关注语言,库和生态, 相比之下VM的性能差别只要不太大就容易被忽略了.

引用来自“久永”的评论

jvm的gc并不领先,你说的可调只能说功能多,更重要的是针对不同平台进行优化。
但是.net就不需要面临问题,它的目标很明确,就是在win上跑得最溜。
微软的东西不是不好,是太 M$ ,是太拿自己当回事,太拽了,白人就是这个德行。
好在现在换了听话的三哥,现在好多了。

引用来自“dwingo”的评论

jvm的gc不领先?看看现在已经推出的g1和zgc,看看.net有没有上t大小托管堆的案例,停顿能否保证跟堆大小无关,是否支持压缩指针。
你还是看看 .net mono nc这些.net平台的这方面的技术资料再说这话吧。
曾建凯
曾建凯
too late
但好过不到。C#的确不错,尤其是netcore以后,加油!
haitaosoft
haitaosoft
wince
win mobile
win phone
win10 mobile
猴子扳苞谷啊!
d
dwingo

引用来自“断风格男丶”的评论

应该还是看生态 .net core语言的优越性确实超出java不少
但是整个软件的生态都基本被java占领了 从服务器架构 到android java占领了绝大部分市场 各种成熟的框架孕育而生 apache基金的孵化项目 各个大厂的开源项目
.net core 要走的路还很长很长

引用来自“dwingo”的评论

同样在JVM平台借用java生态的kotlin和scala有那么丰富的语法都难以替代java, 看来语言的优越性也帮不上什么了.

引用来自“久永”的评论

和语言无关,我们说的根本不是 C# 和 java 的竞争,而是 .Net 和 Java 的竞逐。.Net 底层比 java 设计的好多了,毕竟优秀和天才程序员之间还是有鸿沟的。
我知道,这句一出,那就是要引战了。
反驳不是不可以,但是起码搞过.net底层,了解其设计,再喷。

引用来自“dwingo”的评论

底层再好, 也得反应到上层让人有所感知吧. 我就从上层说说.net和jvm主流实现的主要感受差别:
1. .net支持值类型,真泛型,ref/out这些是优点; jvm可以用类和数组等基础元素去模拟,只是有些性能损失.
2. jvm的gc一直是比较领先的,不但支持算法多,也提供很多参数可调. .net支持的偏少,不过这也只是性能差别.
VM从上层来看可比较的确实比较少, 多数人更关注语言,库和生态, 相比之下VM的性能差别只要不太大就容易被忽略了.

引用来自“久永”的评论

jvm的gc并不领先,你说的可调只能说功能多,更重要的是针对不同平台进行优化。
但是.net就不需要面临问题,它的目标很明确,就是在win上跑得最溜。
微软的东西不是不好,是太 M$ ,是太拿自己当回事,太拽了,白人就是这个德行。
好在现在换了听话的三哥,现在好多了。
jvm的gc不领先?看看现在已经推出的g1和zgc,看看.net有没有上t大小托管堆的案例,停顿能否保证跟堆大小无关,是否支持压缩指针。
久永
久永

引用来自“久永”的评论

如果抛弃用户和生态,一次是迫不得已,那么两次纯粹是自杀了。
可惜的一手好牌,赢在起跑线上,输在了终点钱。
——而为之殉葬的,是我们.net的程序员。
今天,还在坚守的.net程序员,待遇只有java的几分之一。。。

引用来自“寂寞的大师”的评论

互联网的更新迭代的速度太快了。.net那个时候还是c/s模式。但是很快互联网模式就席卷而来。
是的,微软就是动作太慢了。
那时候,我看到安卓气势来了,大感不妙,觉得面临这种危机,微软的wp应该赶快免费,最好开源,起码就算保留内核,外围开源,最次也要免费。
微软真是NB,那时候还想跟手机厂商收授权费,真拽,真NB啊!真M$!
问题是,时代不同了。。。
久永
久永

引用来自“断风格男丶”的评论

应该还是看生态 .net core语言的优越性确实超出java不少
但是整个软件的生态都基本被java占领了 从服务器架构 到android java占领了绝大部分市场 各种成熟的框架孕育而生 apache基金的孵化项目 各个大厂的开源项目
.net core 要走的路还很长很长

引用来自“dwingo”的评论

同样在JVM平台借用java生态的kotlin和scala有那么丰富的语法都难以替代java, 看来语言的优越性也帮不上什么了.

引用来自“久永”的评论

和语言无关,我们说的根本不是 C# 和 java 的竞争,而是 .Net 和 Java 的竞逐。.Net 底层比 java 设计的好多了,毕竟优秀和天才程序员之间还是有鸿沟的。
我知道,这句一出,那就是要引战了。
反驳不是不可以,但是起码搞过.net底层,了解其设计,再喷。

引用来自“dwingo”的评论

底层再好, 也得反应到上层让人有所感知吧. 我就从上层说说.net和jvm主流实现的主要感受差别:
1. .net支持值类型,真泛型,ref/out这些是优点; jvm可以用类和数组等基础元素去模拟,只是有些性能损失.
2. jvm的gc一直是比较领先的,不但支持算法多,也提供很多参数可调. .net支持的偏少,不过这也只是性能差别.
VM从上层来看可比较的确实比较少, 多数人更关注语言,库和生态, 相比之下VM的性能差别只要不太大就容易被忽略了.
jvm的gc并不领先,你说的可调只能说功能多,更重要的是针对不同平台进行优化。
但是.net就不需要面临问题,它的目标很明确,就是在win上跑得最溜。
微软的东西不是不好,是太 M$ ,是太拿自己当回事,太拽了,白人就是这个德行。
好在现在换了听话的三哥,现在好多了。
d
dwingo

引用来自“断风格男丶”的评论

应该还是看生态 .net core语言的优越性确实超出java不少
但是整个软件的生态都基本被java占领了 从服务器架构 到android java占领了绝大部分市场 各种成熟的框架孕育而生 apache基金的孵化项目 各个大厂的开源项目
.net core 要走的路还很长很长

引用来自“dwingo”的评论

同样在JVM平台借用java生态的kotlin和scala有那么丰富的语法都难以替代java, 看来语言的优越性也帮不上什么了.

引用来自“久永”的评论

和语言无关,我们说的根本不是 C# 和 java 的竞争,而是 .Net 和 Java 的竞逐。.Net 底层比 java 设计的好多了,毕竟优秀和天才程序员之间还是有鸿沟的。
我知道,这句一出,那就是要引战了。
反驳不是不可以,但是起码搞过.net底层,了解其设计,再喷。
底层再好, 也得反应到上层让人有所感知吧. 我就从上层说说.net和jvm主流实现的主要感受差别:
1. .net支持值类型,真泛型,ref/out这些是优点; jvm可以用类和数组等基础元素去模拟,只是有些性能损失.
2. jvm的gc一直是比较领先的,不但支持算法多,也提供很多参数可调. .net支持的偏少,不过这也只是性能差别.
VM从上层来看可比较的确实比较少, 多数人更关注语言,库和生态, 相比之下VM的性能差别只要不太大就容易被忽略了.
奶丶空瓶
奶丶空瓶

引用来自“久永”的评论

如果抛弃用户和生态,一次是迫不得已,那么两次纯粹是自杀了。
可惜的一手好牌,赢在起跑线上,输在了终点钱。
——而为之殉葬的,是我们.net的程序员。
今天,还在坚守的.net程序员,待遇只有java的几分之一。。。
同意 不喷作为java开发人员我感觉net的确有优势 但是生态真的有问题,开源还是不错的路子。
寂寞的大师
寂寞的大师

引用来自“久永”的评论

如果抛弃用户和生态,一次是迫不得已,那么两次纯粹是自杀了。
可惜的一手好牌,赢在起跑线上,输在了终点钱。
——而为之殉葬的,是我们.net的程序员。
今天,还在坚守的.net程序员,待遇只有java的几分之一。。。
互联网的更新迭代的速度太快了。.net那个时候还是c/s模式。但是很快互联网模式就席卷而来。
返回顶部
顶部