我用VSCode写C++的这三年

书接上回

上回六年前的文章VSCode + CMake编译C/C++教程写于多年前刚工作的第二年,当时vscode还刚处于巨硬爸爸用超能力请了js大佬过来做语言支持并席卷前段开发的阶段。现今工作第八年,使用vscode高强度工作三年多,回读这篇时还有不少东西可以聊,就罗列在这里。

程序员之剑的挑战者

编辑器的圣战是自从我分别使用了emacs和vim很久之后常常吃的瓜。曾经有一幅吐槽IDE的漫画,里面Visual Studio是航母、JetBrains IDEA是未来科技武器,其他嘲讽了一堆,no offence 手动狗头,诸如eclipse、codeblocks、qtcreator,最后vim是一把太刀。vim作为后起之秀来势凶猛,以简练的多按键操作与丰富的插件库迅速传播。然后,某一天台湾的vim用户站站长公开发了一篇文章然后退群,宣称vim已经是古董,应该抬进博物馆,并呼吁大家都来使用vscode这个现代化人性化的编辑器。好家伙,这直接举肩即位了!

拉长时间跨度

当时正值想换工作,就顺道研究了下vscode+cmake编译c++的配置,就有了上回文章。一晃这么多年过去,回头望去,世界潮流浩浩荡荡。

  • vscode在borrow vim的插件体系后,通过增加了python的友好支持,迅速占领了前段开发和人工智能两大程序员群体,用户基数指数级爆炸。比如在python端的虚拟环境支持notebook支持,对于小白用户学习python为主的工具库的体验是killer级别。
  • emacs继续保持低调奢华的位置,毕竟evil-mode下众生平等。挺佩服elisp这个语言,尽管语法结构古老,但是功能的想象力方面还是没有上限的。
  • vim这边不得不提下Shougoneovim项目,一直是黑魔法的最前线。可惜自己没有静下心来啃他的新体系。neovim通过lua语言(脚本语言之王)配置后,插件更加百花齐放。目前在远程端bash界面下vim还是有着独一档的表现。仅有vscode remote插件可以一战。
  • jetbrains全家桶一直是个桶,java搭起来的城堡。学生许可过期后用的少了,当年使用IDEA写rust、goland写go做项目是真的舒服。毕竟六年前他家就有参数类型推导和出色的自动补全了。缺点就是资源吃的多,开了low-power模式那体验不如别开这个IDE。
  • Visual Studio值得一提,因为2019之后兼容了cmake项目的配置,可以直接开编了!windows平台写C++真可以用回VS,特别是内网coding环境。

C++ coding这块VSCode的建树

很简单,巨硬爸爸出官方 c/cpp 插件,用于语法分析和代码补全。

调试上还是老一套的配置json,可以参考上回文章。这里感觉就是给Visual Studio留的护城河。

remote插件、wsl插件和dev container插件/docker插件,这四个可以完整地覆盖C++地编译过程。嵌入式的C++就是挂docker交叉编译工具链手动编译的。windows用户可以使用wsl做编译环境。dev container则是支持本地、远端、docker等不同的容器间的连接,一切对标linux完成!除了类似打赢war3必须先打败网络爸爸之外,理论上remote可以将你的代码和所需的目标编译环境“零距离”。

屠龙者VSCode

remote插件下的VSCode有了“空间投射”能力,装备c/c++这个插件对语法补全一站式解决。实际使用中还有哪些灰色地带呢?

  • 大和炮 c/c++插件本质上还是LSP server。有server就有db/cache,这个db的覆盖率就难免有瑕疵。

    • 比如docker交叉编译,remote到docker中需要在docker中再装一遍插件,而且并不是全部插件都支持remote。c/c++这样的插件安装后的cache parse和intellisense缓存,在最近一年的版本上经常出现巨额的内存占用。(最近可以通过切换nightly版本+手动设置所有max缓存为1024缓解内存占用)在remote端的内存耗尽不如本地机器你可以上各种手段排查问题,bring back的成本通常比较高。
    • 本地开发时对于编译环境中才有的库通常会提示找不到定义。如果依赖源代码在同级目录下,可以把以来文件夹加入当前workspace,这样c/c++插件会一同cache。
    • c/c++只是根据用户配置里面指定的目录cache,而并不是理解cmake。(如果哪一个c/c++插件可以理解cmake并自动化建立cache,记得喊我!各种定义可以跳转直接读源代码,amazing)
  • tesseract remote插件的本质是一层ssh。所以你的本地环境再丰富,就是个shell。要啥功能远端请重新装一遍。毕竟remote列出了远端可以安装的插件列表,并增加了一个“远程安装”的按钮

  • 代码调试
    用了三年vscode写C++,所有的调试都是printf。本质原因还是一层ssh shell的锅。所幸基本习惯写logging system了,有了copilot打印再多东西就是敲一下tab。

Copilot:VSCode AI-completed

4202年,谁写代码还不用AI生成?(可能都不需要写,只需要neural link+脑子想...)

Copilot作为巨硬爸爸在AI时代最亮眼的核心,诸如注入VSCode之后明显跟emacs vim拉开了差距。以至于现在都有言论说“只要get things done,vim这类真落后了”。显然这人没分清楚GTD和使用编辑器的区别,毕竟高手的程序员之剑叫Microsoft Word。

目前Copilot只需要github账户即可免费使用!

Copilot出道以后就是网络条件和大模型版本的拉锯战。Copilot也出现了较多的竞品。However,有个editor叫Cursor,是VSCode的fork/套壳。你不需要自己去买copilot的付费会员了,来买cursor pro吧。(hhhh....) OpenAI、Claude、Copilot 还有其他可以提供补全的API都可以接。本来Cursor形势一片大好,然后最近官方上了个0.43版本直接炸了。只能眼疾手快切0.42,虽然又光速更新了0.44,但到现在论坛上还有一堆bug report,真下头。

且看明年

编辑器已经远远超过了以前有经验的程序员快乐地创作/摸鱼的工具,2023年底OpenAI宣告AI元年后,很多coding的界限被打破,比如写个网站、快速写代码、快速修bug,但有几点还是AI暂时不能超越人类的。

  • 如网上一位博士自嘲,“我可能比AI便宜”。毕竟open AI万亿美元的基建计划和 pro 200刀/月的价格已经开始筛选用户。OpenAI COO所说的“最好的AI一定是free的”对应的各种前提条件开始显现。如此庞大的模型、服务集群和能源消耗,除了赚钱,能否在改变世界的重要议题上以free的回报发挥价值,还是一个问号。

  • 两步安装。我自己用cursor,使用前记得先安装vscode并同步你的插件列表,然后才能打开cursor导入配置。这一点很好笑,要不出个cursor插件得了,还不用处理编辑器的bug。空中楼阁般的"AI-editor"除了一个GPT接口都是别人的。(保时泰:侵权!)

  • Debug修复。相较于copilot,cursor对于当前的文件还是有作为context进行分析的。比如你修改某个变量名,通过连续tab按钮就可以连续修改,vscode+copilot并没有这种体验。这个操作其实很cheap,哪天copilot追一下竞品体验多好。

  • 业务到框架的设计。程序员混久了基本都是做设计的,就光开会和理解领导们的真正需求,至少在国内对AI非常不友好。这一点估计明年能蹲一下,毕竟AI自己写代码,约等于2000年的电脑病毒。从病毒的角度来讲,感觉全世界都在养瓶中小人钢炼机械公敌的剧情还历历在目,钢炼用不过时。

写在最后

“这是一个最好的时代。这是一个最坏的时代。“

钢炼中人们研究炼金术制造了瓶中小人,借由炼金术开启了对世界的征服,甚至试图吞噬kami。“希望就是给予最正确的绝望”,瓶中小人没有吞噬kami。爱德华用自己的生命树之门战胜了命运/kami。这是动漫,同时又特别像现在,以及身处其间的你和我。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,039评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,223评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,916评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,009评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,030评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,011评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,934评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,754评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,202评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,433评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,590评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,321评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,917评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,568评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,738评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,583评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,482评论 2 352

推荐阅读更多精彩内容