从 Claude Code 到 GrowBlank - 软件进化的新范式

12 天前
 taowen

[背景音:咖啡馆环境音,键盘敲击声]

Alex: 嘿,Sam !好久不见,最近在搞什么?

Sam: Alex !正好想找你聊聊。我最近在用 Claude Code ,就是 Anthropic 出的那个命令行工具,用着用着突然有了个疯狂的想法。你还记得咱们以前讨论过的 Smalltalk 吗?

Alex: 当然记得!那个"代码即数据,数据即代码"的老古董?等等,你不会是想...

Sam: 哈哈,你猜对了一半。来,我给你演示一下 Claude Code 。*[键盘声]* 看,我现在输入:"帮我分析一下当前目录下所有 Python 文件的代码复杂度"。

$ claude "帮我分析一下当前目录下所有 Python 文件的代码复杂度"

正在搜索 Python 文件...
找到 15 个 .py 文件

生成分析脚本...
$ find . -name "*.py" | head -5
./main.py
./utils/helper.py
./utils/parser.py
./models/user.py
./models/product.py

安装复杂度分析工具...
$ pip install radon

执行分析...
$ radon cc . -s
main.py
    F 15:0 process_data - B (7)
    F 45:0 validate_input - A (3)
utils/helper.py
    F 8:0 format_output - A (2)
...

Alex: 哇,它自己去找工具,安装 radon ,然后执行分析?这不就是个会编程的助手吗?

Sam: 对,但重点不在这。你注意到了吗? Claude Code 实际上是在实时生成一个程序。每一行 bash 命令,都是这个程序的一部分。只不过这个程序不是预先写好的,而是根据我的需求和当前环境动态生成的。

Alex: 等等,你是说... [咖啡杯放下的声音] 用户以为自己在对话,实际上是在无意识地编写程序?

Sam: Exactly !而且更有意思的是,如果我再问一次同样的问题...

$ claude "再分析一次代码复杂度"

检测到您刚才执行过类似操作,直接使用已安装的工具...
$ radon cc . -s --json > complexity_report.json
$ python -c "
import json
with open('complexity_report.json') as f:
    data = json.load(f)
    # 生成可视化报告...
"

Alex: 它记住了!而且这次还加了 JSON 输出和可视化?

Sam: 这就引出了我的想法。如果我们把这个模式推广,不只是命令行,而是整个应用呢?想象一下,用户从一个空白对话框开始...

Alex: 就像 ChatGPT ?

Sam: 对,但不止于此。我管这个概念叫 GrowBlank 。来,我画个图给你看。*[纸笔声]*

Day 1: 对话
用户: "帮我记录今天的开销"
系统: "好的,记录了:今天开销 [输入框]"

Day 7: 模式识别
系统: "我注意到您每天都记录开销,要不要我生成一个快捷输入表单?"
[生成表单: 金额 | 类别 | 备注 | 保存]

Day 30: 应用成型
[完整的记账应用界面]
- 每日开销列表
- 分类统计图表  
- 月度预算提醒
- (保留对话框处理特殊需求)

Alex: 所以应用是"长"出来的,不是设计出来的?

Sam: 没错!这解决了软件开发的核心悖论。你知道为什么那么多项目失败吗?

Alex: 需求不清?

Sam: 不只是不清,是根本不可能清楚!我给你讲个真事。上个月我们公司要做个内部工具,产品经理写了 30 页需求文档。你猜怎么着?

Alex: 上线后全改了?

Sam: 都没等到上线!开发到一半,业务部门说:"这不是我们要的。"你知道最讽刺的是什么吗?他们也说不清要什么,只能说:"等我用了才知道。"

Alex: 啊,经典的"我不知道我要什么,但我知道这不是"综合征。

Sam: 对!但 GrowBlank 模式下,这不是 bug ,是 feature !用户不需要知道自己要什么,他们只需要开始使用

Alex: 等等,我想到个问题。*[椅子挪动声]* 如果每次都是 AI 生成,怎么保证一致性?今天生成个蓝色按钮,明天变成红色了?

Sam: 好问题!这就是 Smalltalk 哲学的精髓了。还记得 Smalltalk 的 image 概念吗?

Alex: 整个系统状态的快照?

Sam: 对!在 GrowBlank 里,每次生成的组件、识别的模式、用户的偏好,都会被持久化。看这个例子:

// 系统自动生成并保存的组件定义
const ExpenseForm = {
  generatedAt: "2024-01-15",
  usageCount: 45,
  lastModified: "2024-02-01",
  schema: {
    amount: { type: "number", required: true },
    category: { 
      type: "select", 
      options: ["餐饮", "交通", "购物", "其他"],
      // 这个列表是从用户历史输入中提取的
      learnedFrom: "user_history"
    },
    note: { type: "text", required: false }
  },
  evolution: [
    { date: "2024-01-15", change: "初始生成" },
    { date: "2024-01-20", change: "用户要求添加类别" },
    { date: "2024-02-01", change: "自动添加常用类别" }
  ]
}

Alex: 所以组件会进化,但是是渐进的、可追踪的?

Sam: Exactly !而且用户可以随时介入。比如:"把那个表单的按钮改成绿色",系统就会更新组件定义。

Alex: 嗯... [思考] 但这不会导致过度定制吗?每个用户都有自己独特的应用,没法标准化,没法培训新员工...

Sam: 这恰恰是传统思维的误区!为什么一定要标准化?我问你,你用的 VS Code 配置和我的一样吗?

Alex: 当然不一样,我有自己的插件、快捷键、主题...

Sam: 那影响你们团队协作了吗?

Alex: ...没有。反而每个人都很高效,因为工具适合自己的习惯。

Sam: Bingo ! GrowBlank 的哲学是:标准化数据,个性化界面。团队共享同一套数据模型,但每个人可以有自己的交互方式。

Alex: 有意思... 让我想想实际场景。*[喝咖啡声]* 比如说,一个创业公司,从零开始用 GrowBlank ?

Sam: 好例子!我来模拟一下这个过程。第一天,创始人 Alice 坐在电脑前:

Alice: 记录一下,今天见了投资人 John ,他对我们的产品很感兴趣

系统: 已记录会议笔记。需要设置后续提醒吗?

Alice: 好的,一周后提醒我跟进

[系统后台生成了一个简单的 CRM 种子]

Alex: 等等,系统怎么知道要往 CRM 方向进化?

Sam: 它不需要知道!它只是响应使用模式。继续看:

Day 3:
Alice: 显示所有投资人联系记录

系统: 找到 1 条记录:
- John (上次联系:2 天前)
建议:是否要添加更多字段来追踪?比如投资阶段、金额范围?

Alice: 好主意,添加这些

[CRM 数据模型进化:添加了新字段]
Day 10:
Alice: 我需要跟踪每个投资人的状态

系统: 基于您的使用模式,我生成了一个看板视图:
[初次接触] → [跟进中] → [尽调] → [条款谈判] → [已完成]
需要调整阶段名称吗?

[CRM 获得了看板功能]

Alex: 卧槽,这就是个渐进式的 no-code 平台啊!

Sam: 不,比 no-code 更进一步。No-code 你还得"设计",拖拽组件,设置属性。GrowBlank 是 no-design,你只管用。

Alex: 但是等一下,*[激动]* 如果 Alice 雇了一个销售 Bob ,Bob 的使用习惯和 Alice 不同怎么办?

Sam: 绝妙的问题!这就是集体进化的魅力。看:

Bob 加入后:
Bob: 我需要批量导入潜在客户

系统: 检测到新的使用模式。是否要为团队添加批量导入功能?
Alice 和 Bob 都会看到这个建议。

Alice 批准后:
系统: 已添加 CSV 导入功能。基于 Bob 的操作习惯,
     我建议添加以下字段映射...

Alex: 所以系统会综合多人的使用模式?

Sam: 对,而且可以设置权重。比如 Alice 是创始人,她的使用模式权重更高。或者销售团队的模式只影响销售模块的进化。

Alex: [兴奋地站起来] 等等等等,我想到一个更疯狂的场景!如果... 如果系统能跨公司学习呢?

Sam: 你是说...

Alex: 对!比如 100 家创业公司都在用 GrowBlank ,都是从零开始进化。系统能不能识别出通用模式?比如"90%的 B2B 公司最终都进化出了这样的销售流程"?

Sam: [拍桌子] 天才!这就是集群进化!每个公司的应用是一个"物种",成功的模式会被自然选择...

Alex: 新公司可以选择"继承"成功的基因!

Sam: 对!但不是照搬,而是作为进化的起点。比如:

新用户: 我要做个 B2B SaaS 的销售管理

系统: 基于 847 家类似公司的进化路径,我建议从这个基础模型开始:
- 线索管理( 95%公司都有)
- 销售漏斗( 89%公司都有)  
- 客户成功追踪( 73%公司在第 3 个月添加)
要应用这个模板吗?您可以随时修改。

新用户: 应用,但我们不需要客户成功模块

系统: 已应用并移除客户成功模块。开始您的独特进化之旅...

Alex: 这简直是... 应用开发的 GitHub !不对,比 GitHub 更进一步,因为它是活的,会进化的!

Sam: 而且解决了开源的一个大问题:你 clone 了别人的代码,然后呢?改不动,因为你不理解设计决策。但 GrowBlank 里,你 clone 的是进化路径,然后继续你自己的进化。

Alex: [坐下,深呼吸] OK ,让我冷静一下。这个愿景很美好,但技术挑战呢?

Sam: 确实有挑战。最大的是意图理解的准确性。看这个例子:

用户: 把昨天的数据删了

系统需要理解:
1. "昨天"是指哪个时区的昨天?
2. "数据"是指哪些数据?全部还是特定类型?
3. "删了"是真删除还是标记删除?
4. 用户权限是否允许?

Alex: 对,自然语言的歧义性。

Sam: 我们的解决方案是渐进式确认。第一次遇到歧义,系统会询问。但它会记住你的偏好:

第一次:
用户: 删除旧数据
系统: 请确认:"旧数据"是指:
     A) 30 天前的数据
     B) 上个版本的数据
     C) 其他?
用户: A

第二次:
用户: 清理旧数据
系统: 基于您的习惯,准备删除 30 天前的数据(共 1,234 条)。确认?

第 N 次:
用户: 常规清理
系统: [直接执行 30 天数据清理]

Alex: 所以系统不只是学习功能,还学习用户的语言习惯?

Sam: 对!每个用户/团队会逐渐形成自己的"方言"。比如在某个团队里,"跑一下"就是指运行测试套件,在另一个团队可能是指部署到测试环境。

Alex: 这让我想起了 Unix 的 alias... [笑] 等等,说到 CLI ,GrowBlank 怎么处理程序员用户?他们可能更喜欢代码而不是对话。

Sam: 好问题! GrowBlank 是全光谱的,记得吗?看这个:

# 程序员 Charlie 的使用方式

# Day 1: 纯命令
$ grow add task "Fix login bug"

# Day 7: 开始写脚本
$ cat my_workflow.grow
add task $1 --priority high --assign charlie
notify slack "#bugs"

# Day 30: 完整的 DSL
class BugTracker(GrowBlank.App):
    def on_critical_bug(self, title, description):
        task = self.add_task(title, priority="critical")
        self.assign(task, self.on_call_engineer)
        self.notify_all(task)
        return task.id

Alex: 所以程序员可以用代码来"训练"自己的应用?

Sam: 确切说是"编程式进化"。而且最棒的是,这些代码定义的行为,非技术用户依然可以通过对话触发:

PM: 发现严重 bug ,登录完全坏了

系统: 检测到关键词"严重 bug",触发 Charlie 定义的 critical_bug 流程:
- 创建高优先级任务 ✓
- 分配给值班工程师(当前: David) ✓  
- 通知所有人 ✓
任务 #1234 已创建

Alex: 妙啊!这就是真正的低代码——不是让非程序员写代码,而是让程序员的代码能被非程序员用!

Sam: 你总结得太精辟了!而且这带来一个有趣的商业模式:技能市场

Alex: 技能市场?

Sam: 想象一下,Charlie 定义的 bug 处理流程特别高效,他可以把这个"技能"发布到市场:

GrowBlank Skills Market

🐛 Smart Bug Tracker by Charlie
   ⭐ 4.8 (2,341 reviews)
   📈 提升 bug 修复效率 40%
   💰 $9.99/月
   
   功能:
   - 自动分类和优先级判断
   - 智能分配给最合适的人
   - 自动生成修复建议
   
   一键安装到您的 GrowBlank →

Alex: 等等,这不就是... 应用商店?

Sam: 不,比应用商店更细粒度。不是买整个应用,而是买能力。你的 GrowBlank 可以是多个技能的组合体。

Alex: [画图] 让我理理... 所以整个生态系统是这样的:

个人进化 → 团队进化 → 公司进化 → 行业模式 → 技能市场
    ↑                                              ↓
    └──────────────────────────────────────────────┘
                      (循环反馈)

Sam: 完美!而且每一层都在让下一次进化更快。新用户不是从零开始,而是站在巨人的肩膀上。

Alex: 但是... [皱眉] 这会不会造成同质化?最后大家的应用都长得一样?

Sam: 恰恰相反!生物进化告诉我们,即使从同一个祖先开始,在不同环境下也会进化出完全不同的形态。达尔文雀,你知道吧?

Alex: 同一种雀,在不同岛屿进化出不同的喙?

Sam: 对! GrowBlank 也一样。即使从同一个模板开始,不同公司的独特需求会驱动应用向不同方向进化。

电商公司 → 进化出强大的库存管理
咨询公司 → 进化出复杂的时间追踪
媒体公司 → 进化出内容工作流

Alex: 而且这些特化的部分又可以回到技能市场...

Sam: 形成良性循环!创新在边缘产生,然后传播到整体。

Alex: [看表] 哇,不知不觉聊了两个小时了。但我还有最后一个担忧。

Sam: 说。

Alex: 隐私和安全。如果系统要学习使用模式,那意味着...

Sam: 所有操作都要被记录和分析,我知道。这确实是个挑战。我们的方案是联邦学习

Alex: 联邦学习?在 GrowBlank 场景下怎么用?

Sam: 看这个架构:

┌─────────────────┐
│   公司 A 本地    │
│  ┌───────────┐  │
│  │使用模式提取│  │────┐
│  └───────────┘  │    │
│   私有数据不出门  │    │
└─────────────────┘    ↓
                    模式特征
┌─────────────────┐    ↓
│   公司 B 本地    │    ↓
│  ┌───────────┐  │    ↓
│  │使用模式提取│  │────┤
│  └───────────┘  │    │
└─────────────────┘    ↓
                   ┌────────┐
                   │中央服务器│
                   │只有模式  │
                   │没有数据  │
                   └────────┘

Alex: 所以中央服务器只知道"80%的用户会在创建任务后设置提醒",但不知道具体任务内容?

Sam: Exactly !而且用户可以选择参与级别:

Alex: 这个分级很合理。*[站起来]* Sam ,我觉得这个想法真的可能改变软件行业。

Sam: 你知道最让我兴奋的是什么吗?这可能终结"软件项目失败"这个概念。

Alex: 怎么说?

Sam: 传统项目失败是因为:交付的不是用户想要的。但 GrowBlank 模式下,没有"交付"这个概念,只有持续进化。软件永远在变成用户想要的样子。

Alex: 失败变成了不可能... [沉思] 不对,如果用户自己都不知道自己要什么呢?

Sam: 那就慢慢探索呗! GrowBlank 的哲学是:目标可以模糊,但每一步都有价值

用户: 我想提高效率
系统: 让我们从记录你的时间开始?
[一周后]
系统: 基于数据,您在邮件上花费 40%时间,要不要试试自动化?
[一月后]  
系统: 您的效率提升了 30%,主要贡献是邮件自动分类

Alex: 所以它不只是工具,还是顾问?

Sam: 更像是共生体。用户和系统互相学习,共同进化。

Alex: [收拾东西] 好了,我得走了。但在我走之前,一句话总结 GrowBlank ?

Sam: 从使用中生长,而非从规划中构建。

Alex: 精辟!我的版本是:每个人都值得拥有为自己量身定制的软件。

Sam: 哈哈,都对!这就是 GrowBlank——让软件民主化,让每个人都成为自己软件的设计师,只是他们不需要知道自己在设计。

Alex: 期待看到它改变世界。下次咱们用 GrowBlank 来组织聚会?

Sam: 哈哈,到时候它可能已经进化出完美的聚会组织功能了!

[结束音乐渐入]


Podcast 后记

主持人: 各位听众,刚才你们听到的是 Alex 和 Sam 关于 GrowBlank 的深度对话。这个产品的核心理念——软件从使用中进化——可能会彻底改变我们对软件开发的认知。

关键要点回顾:

  1. Claude Code 的启发:将对话转化为程序执行,用户无意识地在编程

  2. 进化光谱:从纯对话到专业应用的渐进式演化

  3. Smalltalk 哲学:使用即开发,系统可自我修改

  4. 解决核心悖论:用户不需要预先知道自己要什么

  5. 集体智慧:跨用户、跨公司的模式学习

  6. 技能市场:能力的原子化和再组合

  7. 隐私保护:联邦学习确保数据安全

讨论问题:

欢迎在评论区分享你的想法。如果你想亲自体验 GrowBlank ,访问 growblank.ai 开始你的进化之旅。

记住:你的下一个应用,就从一片空白开始。

下期预告:我们将邀请实际使用 GrowBlank 的创业公司,分享他们的应用是如何从零进化成核心业务系统的。


本 Podcast 文字版由 GrowBlank 自动生成并优化。是的,这个工具在记录自己的故事时也在进化。

1183 次点击
所在节点    分享创造
7 条回复
sunshower
12 天前
你这是推广吧?但是为什么 growblank.ai 根本无法访问?
生成的内容不检查吗?
houzipimum
12 天前
完全不知所云,我甚至都没找到 GrowBlank 这家互联网公司
tianyu1718
12 天前
AI 生成的文章?想法挺有趣,是个落地难度很大的工具,还想看看楼主咋实现的呢
niliy
11 天前
跟我听完 macaron 播客之后的想法一模一样,期待这个产品落地!!

p.s. 像楼上所说,确实技术难度会很大
taowen
11 天前
macaron 的播客?指个路。
niliy
11 天前
@taowen https://www.xiaoyuzhoufm.com/episode/689e081af9040f9dc334689b 这个,上周在国内开始 pr 的 personal agent ,macaron ,里面聊了类似的思路。另外 op 你们这个产品现在是想法?开发?还是内测?我对这个非常感兴趣
taowen
11 天前
这想法没有一千人也有一百个人在做了,等着吧。下半年会有很多这样的产品出来打广告的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1153024

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX