我非常喜欢 Jetbrains 家的产品, 作为真正的 IDE , 大而全, 能够提供非常棒的开发体验。 有一种沉浸感,能让人专注在代码中。

尽管很多年前,vscode 就已经风靡了。 我也有好几次像尝试 vscode , 但总是体验了没多久, 最终都放弃了。 不得不说,在 jetbrains 面前, vscode 像是一个半成品(避免被喷, 只是个人感觉 :)。 是的,我知道 vscode 任何你想要的功能,几乎都有插件能实现, 可是要把他们都组装起来,是一件颇为耗费心力的事情, 而且体验没有 jetbrains 这么好。

举个例子: Jetbrains 家的产品,有一个叫做 Local History 的功能,能在 git 之外再多一层文件备份, 好几次拯救了我。 也许你会说一个成熟的开发者,不应该出现丢代码的情况,常在河边走,总会有偶尔的失误。 看看这里: https://www.v2ex.com/t/854928 , 就能知道,拯救了多少人了。

试图切换到 vscode 后,很快我就找到了替代方案,也有类似的插件,比如这个: https://marketplace.visualstudio.com/items?itemName=xyz.local-history&ssr=false#qna , 这个插件会在每次文件保存时,生成一份副本到 .history 目录下。 久而久之这个目录下就保存了非常多的文件副本。 而且在一切全局搜索的场景,这些副本也会被搜索到,造成很大的干扰。 我猜应该有办法可以在搜索时忽略这个目录,毕竟 vscode 高度可定制, 总之需要想办法配置。开箱体验差一些,需要耐心调教。

经过前面的铺垫, 现在可以说为什么:船大难掉头 了。 这些良好的体验,当然是优势,但另一方面是劣势,太重了。

如果说太重了,导致性能差,内存占用高。 其实是还能接受的,毕竟开发者的硬件配置都还不错, 或者忍一忍。 更重要的是,太重了导致了更慢的迭代速度(当然这些和闭源有关),导致难以转型, 足足错失了2个时代

一是远程开发的时代。 我相信当 vscode 推出远程开发功能后, jetbrains 一定也意识到了这个趋势。 他们分别推出了 Fleet 和 Gateway 。 Fleet 几年过去了,还是 preview 的状态,我只是简单使用过,没有用来写正经写过代码, 看很多评论说是效果不好, 不知道何时才能正式发布(或者会被放弃?) 。

Gateway 也好不到哪里去,其实也是前两三个版本刚刚去掉了 preview 的标识。 老实说体验很差。 这样比喻或许比较恰当: vscode 的 remote 功能是 90分,让人几乎感觉不到远程开发; 而 Gateway 只是 60 分, 让人时刻知道自己是在远程开发, 性能并不好,而且总是碰到各种小问题。 以前每当 Gateway 有新版,我都喜欢翻看下 changelog ,一看吓一跳,修复的 bug 数量常常有数十个之多。 比如: https://youtrack.jetbrains.com/articles/GTW-A-181/Remote-Development-2024.3-243.21565.193-build-Release-Notes

有一次我搜索某个问题,找到了论坛上,看到某位开发者指责 Jetbrains 在远程开发功能上进展缓慢, 取消了订阅,转向 vscode 了

二是 AI 的时代。在前两年只有 Github Copilot 时,Jetbrains 的 Copilot 插件就是二等公民,新功能总是比 vscode 慢。 后来 Jetbrains 也推出了自己的 AI 助手,可是在当下百花齐放,几乎没有听到什么声音。 更不用说,现在所有的 AI IDE 都是基于 vscode 的。 想要体验最新的 AI 进展,就只能使用基于 vscode 的编辑器。

我也是在体验了 Cursor 后, 下定决心【逐渐】脱离 Jetbrains 了。 之所以说逐渐,是真的很不习惯, 还在适应中,多数时候是同时打开 Cursor 和 Jetbrains , 一些 Cursor 别扭的地方,就还是用 Jetbrains 。 不知道后续 Jetbrains 在 AI 和 远程开发上,有什么突破的进展, 仅是这样缓慢迭代,我想也许当我逐渐适应 Cursor(或者别的 vscode base 的编辑器) 后, 就真的要脱离 Jetbrains 了。