上周,我看到了一个问题:
代码编辑器/编译器的江湖是竞争激烈的战场,Visual Studio Code作为一个后生晚辈,是如何在一众神器之中崛起的,它的故事值得一看。
VS Code 之父 Erich Gamma 作为设计模式 “四人帮“ 作者之一,软件模式发展的先驱,开发了 Java 圈的单元测试框架 JUnit,更辉煌的是,在 IBM 主导开发了 Eclipse IDE 编辑器,当年最流行的 编辑器/IDE。
可是,Erich Gamma 觉得有点不太对,未来属于 Web ,我要在 Web 上打造像桌面端一样的开发体验。
在那个 IE 6 浏览器很香、jQuery 是最先进前端框架的年代,大佬果然是大佬,至少比一般人往后看10年。
同时 IBM 也江河日下,这个时候微软抛出橄榄枝,“入伙吧,未来是云时代,来做 Azure 的 Web 端编辑器”。Azure 刚于2010年发布,需要一个 web 端的编辑器。
双方一拍即合!
因为有 Eclipse IDE 的开发经验,很快撸了一个 Web 端的编辑器。猜测是因为 Erich 喜欢去摩纳哥旅游,起名叫 "Monaco"。
这是一个 纯 Web 的 Editor,VS Code 前身。也是目前 VS Code 使用的 editor,很快提供给 Azure 用户使用。
Monaco 的特点就是“快“。性能吊打 Ace 和 CodeMirror。这也是 VS Code 至今的原则:不使用任何 UI Framework,这是为了追求极致的性能,尽可能接近 DOM,做到每一个性能损耗点都能完全控制。
JS 语言设计的时候太过仓促,留下很多怪癖,且动态类型导致很多问题在运行时才能发现,开发像 VS Code 这样的项目难堪重任。
想一下如果没有 TS 的类型校验,重构一个大型的 JS 将会是怎样的灾难!
这一次,幸运又一次降临在 Erich。他是同事兼好基友 Anders Hejlsberg 开发了 TypeScript。
从 2011 年 Monaco 就使用 TS,感觉越用越好,2013 年决定全面切到 TypeScript。更幸运的是:据说 Anders Hejlsberg 有一个怪癖,喜欢用一个文件写所有代码(待求证),所以大文件特别多,他也是 Monaco 的重度用户,有他的加持,Monaco 性能不逆天才怪。因为转到了 TypeScript,给 VS Code 的技术打下来坚守的基础。
开发了 3 年的工具,虽然性能逆天,但致命的缺点是月活只有 3000 用户!“你到底为公司创造了什么价值?” Erich 也面临灵魂拷问。算了一下,用户数至少 x10 才能存活。但做 Web Editor 大概也只能这些用户,继续搞 Monaco 还是换一个新赛道?怎么办?
2014年,微软开始全面转型到生产力工具和云优先。从只考虑 Windows 平台到要考虑 MacOS、Linux、Windows 跨平台,并全面拥抱开源。但微软缺少一个跨平台的开发工具,尤其是这个时候 Web 开发者开始迅速增长。
Erich 意识到机会来了。但 2014 年的浏览器还是不够给力,前端项目越来越重,需要大量的文件处理。不是一个 Monaco 在线编辑器可以搞定的。
Erich 面临艰难选择:继续发展挚爱的 Web 编辑器 Monaco 还是改到 Desktop 版的 Editor/IDE???
最终:结果大家都知道了,Erich 选择了开发者更能接受的 Desktop Editor/IDE。
方法也简单,用 Electron 包壳 Monaco。并改了个网红潜质的名字 “VS Code“,几个月就搞好了。
为了给尽可能多的 MS 人使用,提升业务价值,VS Code 选择在 BUILD 大会上正式发布。当时最成功的一个 demo 是演示 Linux 下调试 .NET 应用。但当时很多功能停留在 Demo 上,比如很多人期待的 Extension 扩展 API,是在 6 个月后上线的。
开发过 VS Code 插件的朋友应该很熟悉 LSP,可以扩展其他语言支持。
LSP第一个使用 LSP 接入支持的就是 Java。在一个 Hackathon 上完成启动。
WSL 帮了大忙,不需要处理不同操作系统文件系统的差异。2020年:重返 WebVS Code Desktop 版本深度依赖了各种 Node.js File API。所以即使是 Electron 应用移植到 Web 也是需要花不少时间的。
也是在 2020 年,出现很多在线的 IDE/Editor 开发工具,低代码工具满天飞,他们都应该或多或少感谢 VS Code。
好了,历史科普到此结束。结论以下是我个人总结,为什么 VS Code 能翻盘
相信很多从 Sublime/Atom 转过来的用户,包括我自己,都是因为当初被 VS Code 性能折服对于工具来说,任何时候“快”都是竞争力。快是因为有足够的技术积累。
要有预见未来的理想主义,也要能从现实中找到一个可行路径。
虽然 Erich 在10年前就押宝 Web 编辑器,但当时时机确实不成熟啊,如果不转成 Electron 套壳,活不过2014年。
定好了大方向 Web Editor/IDE,解决了生存问题(帮助微软做跨平台开发),接下来就看谁能扛的久。
去年 2021 年1月份数据,VS Code 解决了 100K 个 issue。这是时间的味道,想象一下,修 10万个 bug 的软件细节能不好吗。
有 Anders Hejlsberg 这样的超级用户,并给他带来了TS
强大的生态,丰富的扩展。生态和产品像鸡和蛋的问题,如果产品不好也没法做大生态。所以本质还是 VS Code 本身功能够好,架构优雅,方便扩展。
机会是留给有准备的人,当微软2014年宣布转型的时候,恰好需要跨平台编辑器,Monaco 刚好准备好。
顺应了微软大的转型。在商业公司里做开源,懂的都懂,开源不带来营收,如果无法解决“业务价值”问题,注定发展不大,很容易在资源抢夺过程中被拆解,看看 React 团队的人员更换速度。
提前 10 年,押中了 Web 的崛起,因为他是 Erich。
如果能做到以上几点,先积累个10年,“一夜成名“ 的确问题不大,这可能就是“翻盘”吧。
原文链接:https://www.zhihu.com/question/363365943/answer/2358140274
玻璃钢生产厂家长春公园玻璃钢雕塑定做普陀区拉丝玻璃钢雕塑厂家报价佛像玻璃钢雕塑电话北京节庆商场美陈采购饶阳玻璃钢雕塑卡通成都仿铜玻璃钢雕塑腾冲市玻璃钢雕塑设计生产商主题玻璃钢卡通雕塑怎么样郑州锻铜玻璃钢景观雕塑苏州玻璃钢雕塑摆件哪里有玻璃钢雕塑打磨后地图片南充玻璃钢卡通座椅雕塑新华玻璃钢雕塑设计深圳佛像玻璃钢雕塑销售厂家泸州玻璃钢造型雕塑崇安玻璃钢卡通雕塑东莞树脂玻璃钢雕塑厂家电话现代玻璃钢卡通雕塑参考价广州玻璃钢雕塑造型成都玻璃钢卡通雕塑厂家供应商场美陈组合花盆价格长寿玻璃钢人物雕塑玻璃钢海洋雕塑有哪些建湖玻璃钢雕塑苏州玻璃钢花盆研发南阳玻璃钢抽象不锈钢雕塑厂家腾冲市玻璃钢雕塑厂家电话成都玻璃钢雕塑的制作濮阳校园玻璃钢雕塑生产时尚玻璃钢泡沫雕塑香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万