Google十年磨一剑,终使程序员钟爱的IDE黯然失色!

2026-08-17 23:21:13未知 作者:徽声在线


2011年,Java集合框架与《Effective Java》的作者Joshua Bloch曾发表过这样一句引人深思的言论。

对于熟悉程序员群体的人来说,这句话的深刻性不言而喻:





不同IDE的选择,实际上映射了程序员间不同的文化背景与工作习惯。

因此,当这种个人偏好延伸至Google这样拥有庞大工程师队伍的企业时,一个亟待解决的问题浮现出来:

若每位工程师都坚持使用自己偏爱的工具,公司的整体开发效率将如何保障?

01碎片化IDE的挑战

从个体视角出发,程序员A偏好vim,程序员B则钟情于IntelliJ,代码提交上并无冲突,看似无碍。

然而,站在Google这样的超级工程组织立场,问题远非如此简单。

众多基础设施能力的实现,均需适配多种IDE环境。

以Google内部广泛使用的Bazel构建系统为例,这是一个开源的大规模构建工具。

你的代码中可能包含一个BUILD.bazel文件,而这对多数普通IDE而言是陌生的。

 ├── BUILD.bazel

此文件定义了代码的构建方式及依赖的模块。

但问题随之而来:

IntelliJ若要支持它,需开发相应插件;

VS Code亦需插件支持;

Eclipse同样不例外;

甚至Vim用户也期望获得相关功能。

当公司拥有数万名工程师,且同时存在七八种IDE时,每新增一个内部工具,都意味着要维护一整套插件生态系统,其背后的成本与复杂度令人咋舌。

然而,Google的IDE碎片化现象却持续多年,这很大程度上得益于Google独特的文化氛围——20%时间政策。

工程师们可以拿出20%的工作时间,投身于自己感兴趣的项目。

许多内部工具,正是源于这样的业余时间创新。

比如,有人对IntelliJ的Bazel支持不满,便利用业余时间进行改进。

若此改进获得更多工程师的认可,便会吸引更多人贡献代码,逐渐形成内部项目,甚至可能发展成正式团队。

Google早期使用Eclipse时也面临类似挑战,Eclipse原本为“众多小项目+jar包依赖”设计。

但Google的场景截然不同:一个庞大的源码仓库,大量源码间直接依赖,还有复杂的自动构建系统。

这导致Eclipse频繁崩溃。

于是,有人利用20%时间开发了MagicJar项目,将Java项目的依赖项构建成可直接导入的jar包,无需解析整个代码树。

这些看似微小的改进,却推动了Google工具链的持续发展。

02云端IDE的崛起

2013年左右,Google内部悄然兴起了一个名为Cider的项目。

它初看并不起眼,仅是一个运行在浏览器中的编辑器。

但它契合了Google长期以来的理念:将计算能力尽可能迁移至云端。

打开网页,无需复杂配置,无需安装庞大的开发环境,即可开始工作。

同时,得益于Google自有的代码管理系统,开发者修改文件后,可直接创建代码变更,经审核后提交至主代码库。

对于简单的文档修改、配置调整,这种体验极为高效,因此Cider初期深受文档编写者的喜爱。

渐渐地,Cider开始融入面向程序员的功能,如通过Language Server Protocol(LSP)提供代码补全、跳转等。

后来大家发现,Cider的真正魅力并非浏览器中的编辑器界面,而是其背后的强大功能。

在你打开Cider开始编码前,后台已提前分析并索引了整个代码库。

对于每一个符号(symbol),系统均知晓:



要知道,Google采用单一代码库(monorepo)模式,大量产品与基础设施代码共享同一巨型代码仓库,规模达数十亿行。

(参见相关文章《》)

当后台解析、索引这些代码,并构建成一个庞大的语义代码图谱时,开发体验将发生质的飞跃。

假设你在Google负责维护一个底层基础设施库:日志系统(Logging Library)。

现在,你打算将:logger.LogWarning(string msg) 更名为 logger.LogWarn(string msg)

在普通本地IDE中,它只能分析你下载到本地的项目代码,帮你修改当前工程中的调用。

但问题在于:Gmail后端是否调用了它?YouTube视频服务是否依赖它?Google Maps是否使用了它?广告计费系统是否引用了它?

这些代码可能属于完全不同的团队,甚至不在你的电脑中,你不可能下载整个公司的代码库。

而在Cider这类云端IDE中,情况则截然不同。

当你在LogWarning方法上点击“查找所有引用”时,IDE背后的代码智能系统已提前建立好了整个代码库的索引。

分布在不同产品、不同团队中的调用关系,将迅速呈现。

你看到的将不再是一个项目中的代码,而是一张覆盖整个公司的软件依赖网络。

这正是超大规模代码库时代IDE的核心能力:开发者面对的是数十亿行代码,但体验却如同维护一个几万行的小项目。

03VS Code的融入

然而,Cider也面临着一个现实问题。

其后台功能强大,但前端编辑体验却不如IntelliJ、VS Code等成熟IDE。

原因很简单:自主研发一个IDE前端,难度极大。

光标移动、文本渲染、快捷键、多窗口、语法高亮、括号匹配……这些看似简单的功能,背后均蕴含着巨大的工程量。

更麻烦的是,全公司任何团队(如Android团队、Flutter团队、AI团队)若想在Cider中添加特定工具,均需排队等待Cider团队开发。Cider团队成为了全公司工具链的瓶颈。

为何不直接采用VS Code作为前端?

让Cider成为平台,各业务线团队可自行编写VS Code插件并在内部分发,Cider团队仅需维护底座即可。

这便是Cider V项目的初衷。


当然,Google不能直接使用原版VS Code。

它需进行深度改造,以支持内部版本控制系统Piper,整合代码评审系统Critique,连接Cider后端,实现代码补全与智能重构,建立内部插件市场,并解决安全、权限与分发问题。

此外,开发者对日常使用的IDE有着极强的习惯依赖(肌肉记忆)。例如:



这些在普通人看来微不足道的改变,在工程师群体中却可能引发轩然大波。

这也是为何Cider V前端即使拥有十几名工程师,仍花费数月时间磨平与老Cider的微小体验差异。

04迈向统一的新篇章

在许多大型企业,推动工具统一往往依赖自上而下的行政命令,但这易引发工程师的抵触情绪。

然而,Cider V却与众不同,它未被强制要求使用,但到了2023年,其占有率却达到了80%!且这一比例仍在持续增长。

对于一家拥有十几万工程师、数十亿行代码的公司而言,这无疑是一件令人瞩目的事情。

我想,原因只有一个:Cider V让程序员们用起来确实非常爽。

统一并非目的,不是要消灭Vim、IntelliJ等个人选择。真正重要的是,让每位工程师都能更快地理解代码、更安全地修改代码、更高效地协作。

AI时代已经来临,Cider V这种云端架构更适合AI开发,其前景不可限量。

许多朋友对美国身份充满向往,但投资移民费用高昂,人才类移民门槛又高,普通家庭似乎难以企及。那么,去美国是否就彻底无望了呢?

其实,很多人忽略了一种高性价比的方式:EW3雇主担保类移民。无需拼学历、拼英语,也无需雄厚的资金实力。唯一的“门槛”就是时间,需要耐心等待排期。这比较适合有长远规划、不急于拿身份的家庭。先在国内安心发展,等拿到绿卡再前往美国生活。当然,每个人的情况都不同,找到适合自己的方式才是最重要的。感兴趣的朋友可以扫码详细了解一下!

点击展开全文
你关注的
攻防失序 辽篮亟需破局重生攻防失序 辽篮亟需破局重生 NBA历史新篇章!三兄弟同队共战,字母哥续约风波再起NBA历史新篇章!三兄弟同队共战,字母哥续约风波再起 山东男篮季后赛前景堪忧,邱彪用人僵化成最大障碍山东男篮季后赛前景堪忧,邱彪用人僵化成最大障碍
相关文章
女性生理需求最强盛的年龄段究竟是哪个?真相令人意外女性生理需求最强盛的年龄段究竟是哪个?真相令人意外 Google十年磨一剑,终使程序员钟爱的IDE黯然失色!Google十年磨一剑,终使程序员钟爱的IDE黯然失色! OpenAI奥尔特曼最新论断:技术奇点已至,AI革命进入倒计时OpenAI奥尔特曼最新论断:技术奇点已至,AI革命进入倒计时 惊爆!特朗普意外叫停空袭,白宫争议不断,伊朗态度强硬引关注惊爆!特朗普意外叫停空袭,白宫争议不断,伊朗态度强硬引关注 掘金深陷薪资危机,除骂普雷斯蒂外还有何破局良策?掘金深陷薪资危机,除骂普雷斯蒂外还有何破局良策? 央视主持阵容大变动,康辉转型幕后,李梓萌调整节奏,撒贝宁持续闪耀央视主持阵容大变动,康辉转型幕后,李梓萌调整节奏,撒贝宁持续闪耀