写点什么

微软“木马计”:用你的技术,比你做的还好

  • 2018-12-11
  • 本文字数:2929 字

    阅读完需:约 10 分钟

微软“木马计”:用你的技术,比你做的还好

最近微软抛弃 Edge 浏览器,转投 Chromium 阵营的消息震动了业界,有人说浏览器大战终于结束、谷歌 Chrome 获得了最后的胜利;也有人担忧 Web 技术多样性遭遇打击,Chrome 会成为新 IE。但在这一片嘈杂的讨论中,没有人讨论微软为什么会这么做。这篇文章会分析一下这个问题,以及试图说服你:浏览器大战还未结束,微软还有机会!


要讨论微软为什么会转投 Chromium,让我们先从 TypeScript 谈起。

TypeScript:初试开源威力

TypeScript 是 JavaScript 的超集,是为了解决 JavaScript 过于灵活、难以在大型项目中使用而创立。自创立至今,TypeScript 已经被越来越多的人所接受,成为企业级 JS 项目的主流。


TypeScript 早在 2010 年就在微软内部使用,然后在 2012 年 10 月对外公开。到了 2014 年纳德拉上台,微软的风气为之一变,TypeScript 也迎来了另一个阶段:发布了 1.0 版本,从微软自己的代码托管平台 Codeplex 迁移到 GitHub,从而吸引更多的开发者。同时微软的计算机大神——Delphi、C#之父 Anders Hejlsberg 也开始领导 TypeScript 的研发,他还走到前台,到各地去为 TypeScript 布道。


我还记得 Anders 来到中国,在微软北研做的一场分享,在分享中他手写代码演示了 TypeScript 的种种特性,还说自己现在每天工作有很大一部分时间在 GitHub 上。他还介绍了微软新的研发理念,以开源为先。后来微软的种种动作都验证了这个说法。


TypeScript 对微软来说太重要了。在之前开源软件吞噬世界,而微软则在社区逐渐边缘化,人们谈论 Linux 和其它开源软件,而对微软的技术视而不见,甚至有的开发者在发布软件库的时候拒绝开发 Windows 版本。TypeScript 帮助微软重回软件开发的主流,重新赢得了开发者的认可。



(Source:The State Of JavaScript 2018)


在前不久 Stateofjs 发布的调查报告里,除了 JS 的官方语言 ES6,TypeScript 的支持率远远超过了其它 JS 的方言/近亲。


TypeScript 的成功也鼓舞了微软更多的拥抱开源,包括后面将.NET core及相关工具开源,甚至将 Azure 的文档也开源在 Github 上。在 2018 年的 GitHub 年度报告里,微软不仅在参与开源项目人数上名列前茅,还有多个项目进入最受欢迎的项目 Top 10.

VS Code:用你的技术还比你受欢迎

2014 年微软还有另一个大动作,就是宣布推出 Visual Studio Code,这对微软来说是另一个历史性的突破。


微软第一次将开发工具带到了 Linux 和 macOS 上,第一次将开发工具开源,同时也是第一次利用其它公司的核心技术开发自己的产品。这个核心技术就是现在在跨平台桌面开发中越来越受欢迎的 Electron(之前叫 Atom-Shell)。


Electron 是 GitHub 在打造自己的桌面端产品的过程中沉淀下来的,GitHub 基于它开发了自己的桌面客户端和代码编辑器 Atom。Atom 为代码编辑器领域吹进了一股新风,并对传统的代码编辑器 Sublime Text 等形成了强烈的冲击。


微软的 Visual Studio 号称“宇宙第一 IDE”,其强大毋庸置疑。它适合 C++、C#等静态语言的开发,但越来越多的编程语言如 JavaScript、Python、PHP 等青睐使用轻量级的代码编辑器来进行开发。为了应对这股潮流,2015 年微软推出 Visual Studio Code,但出人意料的是,微软在 VS Code 使用了 GitHub 的开发框架。


微软不是没有能力推出自己的开发框架,并且当时的 Atom-Shell 也才推出一年多尚显稚嫩,但这次稍显冒险的行为,为微软赢得丰厚的回报:发布仅仅三年之后,VS Code 成为开发者最喜欢的代码编辑器。



(Source:StackOverflow Developer Survey Results 2018)


VS Code 是如此受欢迎,它甚至都不需要微软的开发者们到处去布道。这中间有一件趣事:极客 时间曾联系 VS Code 团队的工程师吕鹏,让他来开设一个付费的课程,课程本身不贵,作者既布道了这个编辑器又从劳动中获得收益,但作者却担心被人认为靠公司项目敛财而将课程下线了。在短短不到一周的上线时间内,课程就有几千人购买,足以见得 VS Code 受欢迎的程度。


如果说 TypeScript 代表着对开源的拥抱,VS Code 既开源又使用别家技术所以代表着开放,既然微软已经在这两个项目上验证了开源和开放的威力,那么为什么不在其它的项目上复用已有的经验呢?

新 Edge:复用已有成功经验

微软 Edge 团队在 GitHub 上发布了一篇文档,解释了为什么 Edge 是复用上述经验的一个良好的目标:


  • 早在一年前移动端的 Edge 浏览器已经使用其它平台的技术构建。这并不出奇,苹果规定浏览器需基于自家技术开发,连 Chrome 到了 iOS 上也得乖乖的用 WebKit。

  • Edge 本身使用了一些开源技术,如 ANGLE、Web Audio、Brotli 等。

  • 之前微软帮助 Chromium 在适配 ARM 平台时已经做了一些工作,微软发现,第三方浏览器在提升 Windows 用户体验、性能、降低功耗等方面并不上心,为了给终端用户更好的体验,微软有必要去治理它们的源头,其中最主要的就是 Chromium。


当然,还有一条微软不好意思说但外人看的很明白的点:Edge 之前在调研中市场覆盖率仅占 4%左右,这样下去什么也不做才真会默默死掉,还不如掀桌子重来。


当你看明白了微软正在 Edge 上复用它们开源与开放的经验的时候,也就知道我为什么会说浏览器大战还没有结束了。


大家对于 Web 技术多样性的担忧暂时是没有必要的,微软在浏览器内核的更上游——Web 标准上正在投入更大的力量参与,具体就体现在微软会更多的参与到 W3C 和 WHATWG 的事务中去。


如果谷歌无视 Web 标准一意孤行,到时候微软熟悉了 Chromium 的开发之后,将有能力从 Chromium 创建分支,这也是开源允许的做法。


Edge 更换底层平台,毫无疑问影响深远,而这么做也给微软带来新的机会:


  • Edge 将迎来 Chromium 平台上量多质优的浏览器插件,从而大大增强 Edge 的功能。

  • 我们曾报道过微软正在研发针对 ChromeOS 上网本的 Windows Lite 版本,这个版本将主要支持 PWA 和 UWP 应用,通过采用 Chromium,微软可以更好的支持谷歌推出的 PWA,甚至参与到 PWA 的研发设计当中。

  • 通过将微软账户集成进 Chromium 里,微软也可以打造自己围绕浏览器的生态,到时再通过一个迁移工具一键将 Chrome 的各种设置和插件移到 Edge 上,那还不是美滋滋。


所以 Edge 转投 Chromium 不但不意味着浏览器大战的结束,反正还意味着未来还可能再起波澜!

谷歌,小心微软“木马计”

大公司通常容易患上一种 NIHS 综合征(Not Invent Here Syndrome),具体表现为如果哪项受欢迎的技术不是自己的,那么一定要做一个和它类似的。微软也曾经是这一症状的患者,在历史上,它创建了类比于 JavaScript 的 JScript、类比于 Flash 的 Silverlight,毫无疑问,这些全都失败了。


一旦抛弃了这个症状,微软突然发现自己可以发挥真正的实力:在开发 Windows、Office、Visual Studio 期间积累的丰富的经验技术和对用户体验的理解。


使用别家的技术,然后比别人做的好,这目前是微软的独家本领。这种行为就像特洛伊木马,进入别人腹地颠覆对方。而且让对方无奈的是,这种行为甚至无从防御,这些都是开源规则允许甚至是鼓励的,只能眼睁睁的看着对方超过自己。


当然,前两次成功不一定能证明接下来也一定成功。特别是 Edge 与对手相差悬殊,想要赶超其难度超乎想象。


总之,未来的浏览器领域的竞争仍然充满变数,谷歌暂时领先了,但也不能躺在功劳簿上打盹,毕竟,IE 的前车之鉴就在前面,而微软还没有放弃。


2018-12-11 17:295926
用户头像

发布了 164 篇内容, 共 115.5 次阅读, 收获喜欢 392 次。

关注

评论 2 条评论

发布
用户头像
Visual studio code 也用了 chrome 的V8js引擎了吧?所以不只是 github 的 electron
2018-12-16 08:20
回复
没有更多了
发现更多内容

对象存储 S3 在分布式文件系统中的应用

焱融科技

对象存储 存储 分布式存储 云存储

Docker 实践经验(三):Docker 容器数据卷

看,未来

UniqueMergeTree:支持实时更新删除的ClickHouse表引擎

字节跳动数据平台

Clickhouse 表引擎 实时

架构实战营 - 第 6 期 模块七课后作业

乐邦

「架构实战营」

Spring之 @Component和@ComponentScan注解用法介绍和注意事项

echoes

Docker实践经验(二)镜像的构建、镜像仓库、压缩、导入

看,未来

图解 DevOps

看,未来

书单 | 5月,这10本上榜新书带你打开新世界的大门!

博文视点Broadview

面向高校 | “云原生技术应用与实践”示范课程项目开放申报

阿里巴巴云原生

阿里云 云原生 云原生课程

国产ETL数据仓库调度平台TASKCTL对于Kettle作业类型的转换使用

敏捷调度TASKCTL

DevOps 数据仓库 kettle ETL 自动化运维

Docker实践经验(四)docker 上部署 mysql8 主从复制

看,未来

11年程序员给本科、研究生应届生以及准备从事后台开发同学的建议,学习进阶之路

C++后台开发

后台开发 社招 应届生 Linux服务器开发 校招

硬之城获阿里云首批产品生态集成认证,携手阿里云共建新合作

阿里巴巴云原生

阿里云 云原生 合作伙伴 合作

易周金融分析 |“一参一控一牌”落地;两家支付机构更名

易观分析

金融 银行

自动驾驶等级家喻户晓,小微企业宽带等级你知道吗?

脑极体

“Docker 实践经验” 系列导航

看,未来

云原生

docker之搭建zookeeper和kafka集群

echoes

Vue进阶(贰零捌):ES6 对象解构

No Silver Bullet

ES6 5月月更 对象解构

Docker 实践经验(五)docker上部署 redis 三主三从集群

看,未来

云原生

Docker 实践经验(一)简介、安装与实操

看,未来

云原生

React 实现 PDF 文件在线预览 - 手把手教你写 React PDF 预览功能

蒋川

JavaScript react.js 低代码 CRM pdf预览

「开源人的福音」一键部署Java构件到Sonatype

Jianmu

后端 持续集成 开源项目 部署 Java构件

Docker 实践经验(六):Docker 网络

看,未来

云原生

基于边缘计算的云游戏场景实践

火山引擎边缘云

最佳实践 边缘计算 实时音视频 云游戏

Vue3 Typescript + Axios 全栈开发教程:手把手教你写「待办清单」APP

蒋川

typescript 低代码 Vue3 axios 全栈开发

战码先锋直播预告丨参与ArkUI,共建OpenHarmony繁荣生态

OpenHarmony开发者

Open Harmony

Kubernetes下Stdout日志白名单最佳实践

观测云

可观测性 可观测

优秀标杆!华泰证券多芯协同云网管理平台

BoCloud博云

多云管理平台 多云管理

未来已来:云原生时代(一)云计算如何一步步走来?

看,未来

未来已来:云原生时代(二)云计算发展现状调研

看,未来

云原生

什么是时序数据库

领创集团Advance Intelligence Group

微软“木马计”:用你的技术,比你做的还好_开源_徐川_InfoQ精选文章