Software 3.0 编程范式的革命来了
Posted on Sun 06 July 2025 in Journal
Abstract | Cursor 使用一周感受 |
---|---|
Authors | Walter Fan |
Category | learning note |
Status | v1.0 |
Updated | 2025-07-06 |
License | CC-BY-NC-ND 4.0 |
公司购买了 Cursor,我也可以愉快地使用它来帮我干活了。不管愿不愿意承认,有些程序,Cursor 写得比我写得更好更快,特别是我不太熟悉的前端,比如 React。我写一个组件可能要花半个小时,而 Cursor 可能只需要几分钟。
仿佛又回到了当年干 Product Owner 的时候:我只管定义需求,定架构,提点技术上的要求和建议,然后就交给 Cursor 去实现就好了。当 Cursor 实现需求之后,我再验收它的成果,不满意就让它改,直到我满意为止。
回顾一下我所经历的软件开发方式, 从最开始的软件 1.0, 到现在的软件 3.0, 世界变化太快了.
软件开发方式经历了 3 次重要的范式转变:
- Software 1.0:程序员写规则,写代码,机器执行。
- Software 2.0:程序员提供数据,训练模型,机器学习规则。
- Software 3.0:程序员提供需求,写 prompt,机器生成代码。
而现在,我们正在大踏步迈进 Software 3.0 时代。
三代软件开发范式对比
Software 1.0:人写规则
def is_spam(email_text: str) -> bool:
spam_keywords = ["buy now", "free", "click here"]
return any(k in email_text.lower() for k in spam_keywords)
````
所有逻辑都是人写的,规则越多代码越复杂。
---
### Software 2.0:人喂数据,机器学规则
```python
from sklearn.naive_bayes import MultinomialNB
from sklearn.feature_extraction.text import CountVectorizer
texts = ["free money", "hello friend", "win a prize"]
labels = [1, 0, 1] # 1 是垃圾邮件
vec = CountVectorizer()
X = vec.fit_transform(texts)
model = MultinomialNB()
model.fit(X, labels)
程序逻辑不再硬编码,而是“学出来”的。
Software 3.0:人讲需求,机器写代码
给 Cursor 或 ChatGPT 下一个指令:
写一个 REST API,支持添加、删除、查询用户,用 Go 和 SQLite 实现。
几秒钟,代码就生成了。甚至能帮你写测试和文档。
软件开发,变成了人机协作
开发流程也正在改变:
过去 | 现在(Software 3.0) |
---|---|
写代码 | 写 Prompt |
调用 API | 让 AI 帮你生成调用代码 |
调试 Bug | 让 AI 帮你分析原因 |
写文档 | 让 AI 自动生成或总结 |
手写测试 | 让 AI 自动生成测试用例 |
写 SQL | 自然语言转 SQL / ORM 查询 |
一个例子:垃圾邮件识别的三种方式
Software 1.0:手写规则
def is_spam(text):
return "免费" in text or "点击查看" in text
Software 2.0:训练模型
# 用机器学习训练分类器
Software 3.0:直接问 AI
请判断这段文字是不是垃圾邮件:“点击查看中奖名单”
新问题也随之而来
- AI 有时会“胡说八道”(hallucination)
- 安全性难保障
- 代码的归属与合规问题
- 缺乏解释能力与调试线索
程序员应该怎么应对?
学会写好 Prompt(提示工程)
把需求、边界、输入输出格式讲清楚,才能让 AI 给出好结果。
做好架构设计与接口定义
AI 擅长写实现,但不擅长做架构与分层设计。
成为“AI 生成代码”的审核者
我们不再是“码农”,而是产品经理、审稿人、技术评审、测试工程师的合体。
保持学习,掌握 AI 工具链
如:
- GitHub Copilot / ChatGPT
- LangChain / AutoGen / LlamaIndex
- 向量数据库(pgvector / Weaviate)
写在最后
Software 3.0 并不会“淘汰程序员”,但会淘汰那些不会用 AI 的程序员。
未来已来,拥抱变化,拥抱 AI, 我不相信程序员会被替代, 只是程序员需要从改变自己开始.
我的一位同事问道, 是不是将来不需要咱们这些有经验的程序员, 只需要一些年轻的程序员, 他们只需要知道如何使用 Cursor 或者 ChatGPT 来写代码, 就可以完成工作.
我回答说, 不会的, 程序员的价值在于, 他们能够深刻地理解需求, 设计适合的系统, 驾驭不同的工具, 包括各种 AI 工具, 持续不断地交付价值. 有经验的程序员能够指导 A I 向正确的方向发展, 并且用他们丰富的经验来防止 AI 犯错, 给 AI 纠错, 这时候技术品味, 判断力会更重要, 过去的经验和教训会更有价值.
本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。