自从 2022 年底ChatGPT横空出世以来,ta 就注定会改变我们的编程方式。
我对大语言模型保持了相当的好奇,也一直在积极拥抱这一新鲜事物。标题我们将使用母语编程是我在使用两年多年后的今天最新得到的结论,下面举一个今天的使用案例来说明为什么我在今天得出了这一看似激进的结论。
大语言模型:Claude 3.5 Sonnet
需求:基于 Cairo 库为我的 TransportSTN 类绘图
语言:C++
第一轮
提示词:“我想利用 Cairo 库,基于我自己的 TransportSTN 类来绘制图;我的图形类如下:'给出 TransportSTN 相关类';对 TransportSTN 成员变量的一些说明;提出绘图要求(点、线样式)”。
生成代码后我运行的结果:
Imgur
第二轮
提示词:“可以绘制了,但结果并非期待的那样。
我希望同一个 t 的点在一列,同一个 fa 的点簇(每簇有 3 个,即 M=3 ,每簇呈现出三角形,为了后面弧避免重叠)在一行”
生成代码后我运行的结果:
Imgur
第三轮
提示词:“
现在已经很棒了,但有以下需要改进的地方:

每一簇点( 3 个)现在呈现出了一个完美的等边三角形;
同一个 Fa 、不同 t 的点簇完全在一行上;

1 和 2 两点会导致绘制弧的时候会有很大概率重叠,我之前的解决方案是:
点簇程钝角三角形,钝角顶点在右侧,类似下面这样:

.
.

.

不同 t 交错排列,类似下面这样:

t=2 t=4 t=6 // 时间层
• t=3 • t=5 • // fa=0 的航空点

  • • • • • • • • // fa=0 的铁路和公路点
    • • • •
    • • • // fa=1 的航空点
  • • • • • • • • // fa=1 的铁路和公路点
    • • • •


生成代码后我运行的结果:
Imgur
可以看到,一个要求使用 C++、相对复杂的需求,仅仅经过了三轮对话,就几乎实现了我们想要的结果。
这期间我唯一使用到的“语言”就是中文。现在是 2025 年,大语言模型仅仅出来不到两年半,所以我认为最迟到 2030 年,所有人都将是程序员,我们将使用母语编程。

图片未能显示,补充:

  1. 第一轮运行结果
  2. 第二轮运行结果
  3. 第三轮运行结果

    如果 GPT 能够对稳定的输入母语给出稳定的答案输出,那他可以替代编译器。但是现实不是,如何解决某次编译能跑,下一次编译就出错的问题呢?

    可以代替简单重复性的内容(但可能不符合预期,需要程序员监工),
    可以代替 70%需要人参与理解的内容(需要程序员微调扶正),
    所以 AI 的发展,程序员更多变成了监工、指导者的角色。

    程序员以后要从理科转到文科专业了

    你能提问的前提是你有这方面的知识,才能问出问题,如果是一个完全不了解的领域,你连问出问题的能力都没有。

    实际情况:“我想画张图,全部是线条的图”

    我们将使用母语编程 = 我们用母语使用 GPT + GPT 会编程

逻辑上倒是没错,但是实际上是这么总结标题反而是掩盖了信息的关键点,随便就能写一堆更夸张的:

我们将用 80 多种语言写小说,我们能画 100 多种风格色图,我们能用嘴开车,还能开大车。

#3 我的感知和你重合度很高。以前编程时觉得自己是一个人,现在觉得自己是一个团队,知识边界得到了极大的拓展,甚至于很多 dirty work 都可以丢给大语言模型来处理。

#5 那当然,使用者必须完全明白自己的需求是什么。

#2 交给时间吧,ta 才不到 3 岁。

#7 标题展示了一个可以想象的未来。

我宣布,当人机接口普及之后,下到 3 岁孩童,上到 80 岁老叟,他可以不识字,他可以是文盲,但他绝对可以做一名程序员!!!

是这样的. 要让现在的大模型去实现一个程序, 你对编程的掌握至少要略高于产品经理才行, 才能描述出它听得懂的话

我应该算使用母语提需求,至少你还是要对 c++ 有一定了解 不然就像楼上说的 你并不敢保证他生成的逻辑完全没问题

我:请帮我写一个能年入 100 个 w 的 app ,并帮我上架应用商店。

这种调整其实挺累的, 就是你要跟他说很多遍, 他才能到正常想要的东西.
gpt4o 几乎不能用, o1 要好很多, 但是你得想清楚很多知识的细节, 一遍一遍改.前提是你对整个技术比较熟悉, 省掉很多 dirty work. 而且你得审查代码, 尤其是 rm -rf

编程语言还是熟悉的好(比如, 英文)

就怕习惯了 AI 之后, 被老师傅批评, 你们这是一代_____,

尤其是面试手撸代码, 不知道会不会退化, 用也不是, 不用也不是.

自然语言从很多角度上来说是不如编程语言的,
以后的趋势是会出现一种更适合 AI 的编程语言而不是什么自然语言,可以去看看香农的信息论和编码理论,自然语言的冗余和信息模糊并不是什么好的选择。

现在有一些 github 项目是这种 AI 辅助语言 (prompt programming language) 或者通过编程对 prompt 的约束和强化
github.com/IBM/prompt-declaration-language
github.com/stanfordnlp/dspy

可以使用母语编程了, 没错;但所有人都将是程序员,几乎不可能,应该是 2030 年,所有程序员都将用上 AI 进行编程才对。
作为一名程序员,你应该知道,对于编程,语言是最不重要的,重要的是对需求的拆分,以及逻辑分析能力。你写的是中文没错,但是它是具有编程逻辑的中文,是用中文还是用英文,还是用代码,没有太大本质上的区别,AI 带来好处是能帮我们完成大部分基础工作,我们只需要发出具有逻辑的指令即可(首先就要求你脑子里要有相应的逻辑),不然为什么很多英语很差的程序员,一点不耽误写代码。
最后就是现实中连基本因果关系都捋不顺,逻辑思维约等于无的人,是大多数。

我想写一个高质量的,易用的图片转像素画工具,至今还不能用 LLM 写出来

自嗨还行,真正的企业级需求和代码,目前的 AI 还是无法胜任的,也真的不敢用。

现在最大的问题就是 “就几乎实现了我们想要的结果” 中的 “几乎”。 有时,你无法正确判断是否得到了正确的结果,或者已经被误导

不是,这么写不比自己手写累人嘛?它目前发展来看还不足以完全理解你在说什么,能写出没 bug 的代码就谢天谢地了

嘿嘿嘿,AI 迷 还是得被 AI 治

我:分析 win11 二进制代码并实现它的所有功能,规避现有的所有专利

自然语言编程

技术上最大的难点恰巧是 op 觉得很当然的使用者必须明白自己的需求是什么。需求的精准表达需要的不仅仅是使用维度的 context ,引入生产设计领域的专业 context 更重要。这是为什么所有的需求都需要使用者和提供方反复讨论多轮(甚至都仍然有 gap ),从一开始客户的一句话变成数万字的需求/工程文档。

技术之外:
我以前和一些不懂软件开发的朋友聊过这个话题,他们不认为自己以后会成为“程序员“,他们还是会找”程序员“开发软件,或者 AI 。他们认为开发软件不是自己的事,即使这件事变得再简单不过。

所以我认为消费者永远是消费者,生产者永远是生产者。ai 时代会诞生一批 ai 消费者和 ai 生产者,但不会让消费者和生产者产生角色整合。

知识的诅咒,使用中文描述需求,但是你在描绘时依然需要程序员的知识来使得描述更精确
另外,假如生成的代码有问题,尝试修改描述导正结果可能比直接阅读并修改生成的代码难得多,描述到导出代码中间有一个黑盒,必然会导致描述和导出结果无法精确匹配,甚至如果代码能在 90%的情况正常运行,10%的情况运行异常,将更难修正
这可能类似快递的最后一公里,最后一公里的成本可能非常高

你想起的标题是不是 "我们将使用母语 prompt "

楼主想表达的主题应该是以后人人都可以用自然语言编程吧
在未来相当远的一段时期,编程还是需要程序员来与 AI 交流,并且监督 AI 的结果。这个其实和现阶段的无人驾驶有点类似,即时像特斯拉这样的大拿,尽管其在技术上基本可以做到无人驾驶,但方向盘的第一责任人还是驾驶员。

如果我们能对我们自己的语言去除更多的歧义,那么 AI 也会更容易理解我们的思路。
等等,我们是不是重新发明了编程语言?(笑),不过确实描述清楚需求省了一些事情。但是就像调用 API 一样,常见的需求细节可能能被补全,但是完全自定义的需求呢?是不是能够?这是我想提出的问题。
AI 可能能够在很多时候做得更好,但是是否是所有时候?

以我对这个世界的参差的理解,让很多人完整表述自己需求都非常非常困难。

要求他们完整、无错误、可逻辑自洽、无内在矛盾的表述,基本上难于登天,更不要说让他们讲述给 ai ,ai 再输出了。

何况,ai 只能做最基本的辅助工作,复杂一点的工程,或者涉及保密的,也完全不可能用 ai 。