AI 编程浪潮中的冷思考
资深 web 开发者批评盲目拥抱 LLM 辅助编程的潮流,指出当前 AI 工具的实质性局限。
资深 web 开发者批评盲目拥抱 LLM 辅助编程的潮流,指出当前 AI 工具的实质性局限。
我对 AI 并非"All In"。对于当前基于 LLM 的 AI 助手炒作,我仍然相当怀疑。当然,我仍在使用 AI,尽管它有利有弊,尽管它据说造成了巨大的能源浪费、隐私问题、偏见和幻觉。但我们肯定"需要讨论'凭感觉编程'",就像 Giorgi Kobaidze 在他的 DEV 文章中所说的那样(《我 All In on AI,但我们需要讨论凭感觉编程》),他阐述了黑客文化的重要方面,比如"过程比结果更重要",以及为什么我们不想回到那个不太美好的时代,当时 StackOverflow 是复制粘贴代码的首选去处。
致谢和免责声明:感谢 Hunor Márton 和 React Berlin!Hunor Márton 是在我的封面图像拼贴中谈论 Astro 的那个人,但右边的人是我,几年前在杜塞尔多夫一个阳光明媚的厨房里用笔记本电脑工作。有些人可能还记得那面绿墙,在 Zoom 和 Teams 能够正确处理虚拟背景之前,它被误认为是人工背景。感谢 Giorgi 的文章!
我想保留 DEV 那美好的时光,尽管我怀疑它们只存在于你发现一篇好文章来阅读或进入写作流状时的脑海中。
I'm All In on AI, But We Need to Talk About Vibe Coding
"凭感觉编程"中没有感觉。炒作完全搞反了!正如我们所说,编程和黑客文化一直是关于学习、经验和灵感的旅程。开发者配置他们的编辑器主题和键盘快捷键,设置他们的工作台(或故意决定不这样做,如果他们偏好作为"数字游民"工作),以及编制音乐播放列表来"进入状态"或进入专注和灵感的流状。
编程的这种氛围本来可以被称为凭感觉编程。
以积极的方式"偷懒",花时间去探索。
高效的拖延。
不在错误的方向上加速。
DEV,也称为 DEV.to 或《务实开发者》,很适合与其他开发者交流思想和经验。它相当包容,尽管存在持续的垃圾和低质内容问题(他们现在试图借助谷歌的 AI 来解决),但它的内容涵盖从初学者到专家级别。当我第一次了解到他们与谷歌的新合作时,我相当沮丧,因为谷歌因放弃他们最初的"不作恶"座右铭和 DEI 计划,以及未能听取像 Joy Buolamwini 这样的批评性前员工而臭名昭著。
正是像 Giorgi 这样的文章让我一次次回到 DEV,以及一些在欧洲已经是周一下午时发布的"周一早间"氛围。
DEV 的《Meme 周一》系列已经刊登了许多关于"凭感觉编程"的梗和笑话,如果这种疯狂继续下去,还会有更多。
除了 DEV 的《Meme 周一》系列,还有偶尔的《音乐周一》话题。音乐话题已经耗尽了吗?至少对我来说没有。我一直在精心打磨我的复古数字音乐合集"计算更有趣"和《Commodore 雨夜班车》,其中包含 Kraftwerk 的复古合成器经典、Afrika Bambaataa 的《行星摇滚》和 Jean-Michel Jarre 的无尽合成器软流行乐,到 LukHash 和其他当代艺术家的新复古混音和科技乐。我在 Spotify 上策划了几个不同的播放列表,大多是为了我自己的娱乐,但也有一些共享的音乐列表可以在活动和派对上播放,或帮助外籍人士通过听音乐和尝试理解歌词来学习德语或土耳其语。
这是我新的"Astro 黑色编程氛围"播放列表。
昨天,我为我的"浴火重生"式重新利用的书堆项目启动了一个新播放列表,该项目已成为 AI 辅助的 Astro 和 React 复兴 showdev 演示和在进行中的学习项目。你可以在下面找到链接和截图。
但首先,让我分享一些我在短时间内评估了 Windsurf 和 Cursor、比较了 Gemini、ChatGPT、le Chat 和 Perplexity 用于搜索引擎营销和代码创建、以及与其他开发者讨论我的 AI 工具体验之后对 AI 辅助编程状态的临时看法。
就像一只眼的人领导盲人一样,尽管存在幻觉和过时信息,粗略的主题概述和有缺陷的初始样板代码仍然可以加快开始使用新技术栈、框架或编程语言的速度,尤其是如果你没有学过计算机科学并且没有太多编码经验的话。
一次又一次地提问并继续提问!也许这是大型语言模型模仿的人类交流的本质,或者这是当今工具的一个具体缺陷,但 ChatGPT、Gemini、Cursor、Claude 或 JetBrains AI 等聊天界面都有一个共同的缺点:它们不会一次性告诉你所有内容。
始终假设 AI 会误解你的问题或对你认为理所当然的未提及方面有完全不同的理解!不要信任它的记忆或一致性。不要期望它使用给定的上下文并遵循你的所有指令。把它当作一个嗑药的人类助手,他可能有帮助和灵感,但别让他替你做关系到业务生死的重要决定。
我不知道那是否甚至是"AI",但像 Grammarly、deepL Write 和 Google Translate 这样的自然语言工具和服务已经成为我的写作和审查流程的一部分,尽管我不总是采用他们的建议,我更喜欢犯我自己的错误,偶尔展现我的性格和复杂的"德国英语"。使用重构工具来重构。使用 linter 来检查代码。
正如我所说,AI 为你了解得越多,提供的价值就越少。作为资深开发者,读文档并在脑海中填空,用快速概念验证代码验证假设可能更容易、更快,而不是浪费时间乞求聊天机器人提供完整和正确的信息。
最近几天使用 AI 工具的一些更具体、更主观的观察:
每个人都在谈论 Claude。但 Claude 不断崩溃它的浏览器进程并霸占我的 CPU,可能在尝试使用本地资源,这对于为繁重计算(GPU 或 TPU 硬件)优化的本地机器来说是个好主意,但对于轻量笔记本来说不是。结论:我无法使用 Claude。
每个人都在谈论 Claude。但 Claude 不断崩溃它的浏览器进程并霸占我的 CPU,可能在尝试使用本地资源,这对于为繁重计算(GPU 或 TPU 硬件)优化的本地机器来说是个好主意,但对于轻量笔记本来说不是。结论:我无法使用 Claude。
Mistral 用其 Le Chat 做了一个不错的文字游戏,在法语中字面意思是"猫",但它也讲英语和德语,我区别不出它与 ChatGPT 和 Gemini 的区别。又一个基于聊天的 AI 服务,如果其他的因任何原因工作不好,就可以选择另一个。
Mistral 用其 Le Chat 做了一个不错的文字游戏,在法语中字面意思是"猫",但它也讲英语和德语,我区别不出它与 ChatGPT 和 Gemini 的区别。又一个基于聊天的 AI 服务,如果其他的因任何原因工作不好,就可以选择另一个。
Perplexity 是另一个我(目前)无法将其与其他服务区分开来的选择。
Perplexity 是另一个我(目前)无法将其与其他服务区分开来的选择。
在多个新的集成了 AI 的 VSCode 分支中,Windsurf 在第一眼看起来是做得很好的 AI 聚焦 IDE。但 Windsurf 生成的代码不正确,并反复破坏工作代码,违反了明确的指令。结论:我在试用不到 1 个工作日后卸载了 Windsurf,手动修复或恢复了它的多个贡献。
在多个新的集成了 AI 的 VSCode 分支中,Windsurf 在第一眼看起来是做得很好的 AI 聚焦 IDE。但 Windsurf 生成的代码不正确,并反复破坏工作代码,违反了明确的指令。结论:我在试用不到 1 个工作日后卸载了 Windsurf,手动修复或恢复了它的多个贡献。
事情总能变得更糟。手动在编辑器中编辑 .astro 文件时,Cursor 并未开箱即用地支持 Astro:既没有提供有用的自动补全,也不会对 HTML 标记进行缩进。Cursor AI 聊天起初无法使用,理由是我的账户涉嫌存在可疑活动。我尝试通过关联 GitHub 账户来绕过这个问题,但 Cursor 应用却索要了不必要的高级权限,其中包括对我选定或全部 GitHub 仓库的写入权限。第一印象很可疑,也没有带来任何附加价值。
事情总能变得更糟。手动在编辑器中编辑 .astro 文件时,Cursor 并未开箱即用地支持 Astro:既没有提供有用的自动补全,也不会对 HTML 标记进行缩进。Cursor AI 聊天起初无法使用,理由是我的账户涉嫌存在可疑活动。我尝试通过关联 GitHub 账户来绕过这个问题,但 Cursor 应用却索要了不必要的高级权限,其中包括对我选定或全部 GitHub 仓库的写入权限。第一印象很可疑,也没有带来任何附加价值。
很久以前,在 Copilot 首次发布后不久,我曾草草评估过这个 AI 先遣兵,随后便弃用了它。尽管我同时拥有 GitHub 和 Microsoft 账户,但我并没有安装官方的 VS Code 编辑器,而是使用专注于开源的 VS Codium,后者不支持 Copilot 集成。结论:我应该安装 VS Code,再给 Copilot 一次机会。
很久以前,在 Copilot 首次发布后不久,我曾草草评估过这个 AI 先遣兵,随后便弃用了它。尽管我同时拥有 GitHub 和 Microsoft 账户,但我并没有安装官方的 VS Code 编辑器,而是使用专注于开源的 VS Codium,后者不支持 Copilot 集成。结论:我应该安装 VS Code,再给 Copilot 一次机会。
JetBrains AI:不能说毫无帮助,但除了上下文菜单操作之外,它似乎缺乏足够的上下文和权限。它无法读取集成终端中的 ESLint 输出,也拒绝针对我在编辑器中打开的代码运行或模拟运行 eslint。不过,我并不需要靠 AI 来使用代码检查工具,而且限制 AI 助手的权限,把重点放在稳定性以及维护那些已经好用的非 AI 编辑器功能上,或许才是正确的决定。PhpStorm 还提供快速实用、准确度很高的逐行代码补全;它对自然语言进行补全的尝试有时会令人分心,有时能带来启发,但只有偶尔能省下几次敲击键盘。JetbrainsAI 可以回答范围广泛的问题,减少打开浏览器的必要,从而降低分心和拖延的风险。不过在我看来,它的沟通风格实在太像 OpenAI 的 chatGPT 了。
JetBrains AI:不能说毫无帮助,但除了上下文菜单操作之外,它似乎缺乏足够的上下文和权限。它无法读取集成终端中的 ESLint 输出,也拒绝针对我在编辑器中打开的代码运行或模拟运行 eslint。不过,我并不需要靠 AI 来使用代码检查工具,而且限制 AI 助手的权限,把重点放在稳定性以及维护那些已经好用的非 AI 编辑器功能上,或许才是正确的决定。PhpStorm 还提供快速实用、准确度很高的逐行代码补全;它对自然语言进行补全的尝试有时会令人分心,有时能带来启发,但只有偶尔能省下几次敲击键盘。JetbrainsAI 可以回答范围广泛的问题,减少打开浏览器的必要,从而降低分心和拖延的风险。不过在我看来,它的沟通风格实在太像 OpenAI 的 chatGPT 了。
ChatGPT 变得更加冗长、更加爱闲聊,滥用 emoji,而且每个回答结尾都会放上一段制造悬念的行动号召,表示未来随时可以继续提供帮助。我怀疑它会故意隐瞒回答中的重要部分,诱使用户继续追问、再次回来,并形成成瘾行为。随着 OpenAI 看起来正在朝商业公司的方向发展,他们需要把偶尔使用的用户转化为付费客户,或者至少增加用户使用其服务的时间,以便在不久的将来向他们展示广告或推广内容。结论:ChatGPT 已经越过了自己的巅峰。也许它并不是唯一一个。
ChatGPT 变得更加冗长、更加爱闲聊,滥用 emoji,而且每个回答结尾都会放上一段制造悬念的行动号召,表示未来随时可以继续提供帮助。我怀疑它会故意隐瞒回答中的重要部分,诱使用户继续追问、再次回来,并形成成瘾行为。随着 OpenAI 看起来正在朝商业公司的方向发展,他们需要把偶尔使用的用户转化为付费客户,或者至少增加用户使用其服务的时间,以便在不久的将来向他们展示广告或推广内容。结论:ChatGPT 已经越过了自己的巅峰。也许它并不是唯一一个。
另一方面,Google Gemini 仍在努力追赶 ChatGPT 和其他各种替代产品,所以目前它免费提供了大量价值。而且,作为搜索领域的专家,又是一家拥有庞大、以代码为中心的开发者社区的公司,Google 对编程了解颇深。到目前为止,Gemini 在我的评测中胜出:仅凭浏览器聊天会话中的一些文字提示,它就生成了正确的代码和有用的提示,不需要任何额外上下文,也不需要安装其他软件。
另一方面,Google Gemini 仍在努力追赶 ChatGPT 和其他各种替代产品,所以目前它免费提供了大量价值。而且,作为搜索领域的专家,又是一家拥有庞大、以代码为中心的开发者社区的公司,Google 对编程了解颇深。到目前为止,Gemini 在我的评测中胜出:仅凭浏览器聊天会话中的一些文字提示,它就生成了正确的代码和有用的提示,不需要任何额外上下文,也不需要安装其他软件。
“Jengo Stone 来了,……”
我早已忘记自己用过这个名字,但 Gemini 突然提起它虚构出来的名字“Jengo Stone”,让我颇感意外。那是我在试用改进后的 AI 图像生成功能时创造的角色——我勤奋聪明的想象中同母异父兄弟。“Jengo Stone 来了,准备解决这个问题!”这是 Gemini 在提醒我,它仍然记得我最初的提示词。
倒不是说 Gemini 不会犯错或胡说八道,只是它比竞争对手稍微好一点。
更新:2025 年 7 月,我在搭建一个简单的 Vite + React + ReCharts 概念验证项目时,对 Google AI Studio、Google Gemini、JetBrains AI 和 Copilot 进行了评估。更多笔记和引述可以在公共归档仓库中找到:https://github.com/openmindculture/react-dataviz-demo/
对我来说,生产力意味着避免不必要的挣扎和干扰,同时又不排除挑战和灵感。
为了找回感觉,我注销了 Cursor 和 Windsurf 账户,并卸载了它们已经过时的软件;接着重新打开 PhpStorm,准备一头扎进“教程地狱”,收听由 React Berlin Meetup 团队发布在 YouTube 上的 Hunor Márton Borbély 的《Astro (... Markdown, Remark)》演讲,同时在 Spotify 上播放我新建的“Astro Black Coding Vibes”歌单——其中包括 Freedom Satellite 的《Astro Black》、Astro 的《Astro》,以及几首名为《React》和《Playwright》的歌曲——然后再回去用 Gemini 和 Jetbrains AI 编程。
这才是适合我的那种“凭感觉编程”!
若要采取进一步操作,你可以考虑屏蔽此人和/或举报滥用行为。