All computer users may soon have the ability to author small bits of code. What structural changes does this imply for the production and distribution of software?
如果每个终端用户都能修改一部分代码, 这个将会对软件的生产和分发有何重大改变?
来源:https://www.geoffreylitt.com/2023/03/25/llm-end-user-programming.html
所有计算机用户都将有能力从头开始开发小型软件工具,并描述他们希望对已在使用的软件进行的修改。换句话说,LLM 将代表对最终用户编程的工具支持的重大变化:普通人能够充分利用计算机的一般功能,而无需借助常规编程的复杂性。
到目前为止,这一愿景的瓶颈在于将模糊的意图转化为正式的可执行代码;现在,由于 LLM,这一瓶颈正在迅速打开。
人们使用软件的方式发生一些令人惊讶的变化:
-
一次性脚本
:普通计算机用户的人工智能每天会创建和执行数十次脚本,以执行数据分析、视频编辑或自动执行繁琐的任务等。
-
一次性 GUI:
人们使用 AI 创建整个 GUI 应用程序仅用于执行单个特定任务 - 仅包含他们需要的功能,没有任何膨胀。
-
自行开发而非购买:
企业内部开发更多满足其定制需求的软件,而不是购买现成的 SaaS,因为现在根据用例定制软件更便宜。
-
修改/扩展:
消费者和企业要求扩展和修改其现有软件的能力,因为现在可以更轻松地指定新功能或调整以匹配用户的工作流程。
-
重组:
从您最喜欢的不同应用程序中选取最好的部分,然后创建一个将它们组合在一起的新混合体。
聊天 Chatbot
从一个基本问题开始:在 LLM 时代,用户交互模型将如何发展?具体来说,聊天机器人可能会接管哪些类型的任务?
聊天 UI 无法很好地完成许多任务,我们仍然需要图形用户界面。然后我将讨论 LLM 帮助我们构建 UI 的混合交互模型。
最后,我们将到达设计空间中我认为有趣的一点:open-ended computational media, 用户可直接学习和塑造,LLM是该媒体的合作者。到那时,这张奇怪的图表就会有意义了 🙃:
GUI(图形)界面→ LUI(Language) → CUI(Command) == 短期内 LUI 无法替换掉 GUI!
当我们使用一个好的工具时——锤子、画笔、滑雪板或汽车方向盘——我们会在潜意识中与工具融为一体。我们可以进入心流状态,运用肌肉记忆,实现精细控制,甚至产生创造性或艺术性的输出。**无论机器人有多好,聊天永远不会让人感觉像开车。**特里·维诺格拉德和费尔南多·弗洛雷斯在 1986 年出版的《理解计算机和认知》一书中详细阐述了这一点:
In driving a car, the control interaction is normally transparent. You do not think “How far should I turn the steering wheel to go around that curve?” In fact, you are not even aware (unless something intrudes) of using a steering wheel…The long evolution of the design of automobiles has led to this readiness-to-hand. It is not achieved by having a car communicate like a person, but by providing the right coupling between the driver and action in the relevant domain (motion down the road).
演示
通过 Slack 和顾问团队或者通过一个 app 解决问题差别, 来看看LLM 能做什么?
目的: 你需要分析一组数据,得到一些你销售预测的指标。
直接问顾问团队
-
好处: 灵活
-
坏处:
-
反馈慢:小时或者天
-
昂贵
-
自助平台
-
好处:
-
迅速
-
便宜
-
-
坏处: 不灵诺
基于这个比较, LLM方案:
更甚, 有一个 LLM 开发人员团队可供使用(注意没有开发者了),会怎么样?
-
首先,我们可以向 LLM 询问如何使用该应用程序,这可能比阅读文档更容易。
-
LLM 开发者(不是人类开发者) 可以超越这一点并更新应用程序。
当我们提供有关添加新功能的反馈时,我们的请求不会在无限队列中丢失。他们会立即做出回应,我们只需要来回沟通即可实现该功能。当然,新功能不需要发送给每个人;它只需为我们的团队启用即可。
请注意,这只是一个粗略的设想。我们缺少很多关于如何将这个模型变成现实的细节。当今软件构建的许多细节使得这种即时定制变得相当具有挑战性。
两个循环:
-
快速直接的操作界面与工具融为一体, 借助LLM 助手
-
现有应用程序的极限时,有意识地向 LLM 开发器 提供反馈并构建新功能
Excel
这种双重互动循环是否让你想起了什么?
想想电子表格是如何工作的。如果你在电子表格中有一个财务模型,你可以尝试更改单元格中的数字来评估某种情况——这就是直接操纵的内循环。
但是,您也可以编辑公式! A spreadsheet isn’t just an “app” focused on a specific task; it’s closer to a general computational medium which lets you flexibly express many kinds of tasks.
我们可以像这样绘制电子表格交互的双循环。您可以在电子表格中编辑数字,但也可以编辑公式,这会编辑工具:
原始方式
-
优点:
-
迅速
-
便宜
-
灵活 (部分)
-
-
缺点:无
本地专家
平台由微软开发,但本地开发人员能提供更直接的帮助来定制工具,由于同属一个团队,获取支持更为便捷。用户通过参与开发过程,会逐渐学会更多电子表格的使用技巧(用户心智培养和习惯教育)。
当然你可能没有这些本地开发者, 或者专家, 这个时候智能 baidu/google 了,想象你大海捞针一样在网络上寻找 excel 的一些公式!
**如果让 LLM 扮演本地开发人员的角色会怎么样?**也就是说,用户主要负责创建电子表格,但在需要时寻求一些公式的技术帮助?LLM 不仅会创建完整的解决方案,还会教用户下次如何自己创建解决方案。
LLM 开发器
这幅图展示了一个我认为非常引人注目的世界。
-
内交互循环,充分利用了直接操作的全部功能(GUI)。
-
外部循环,用户还可以在开放式媒介(open-ended medium)中更深入地编辑他们的工具
他们通过 AI 的辅助来编辑工具,同时提高自己使用工具能力。随着时间的推移,他们可以学习公式的基础知识或工作原理如:VLOOKUP
。这些结构化知识可以帮助用户思考该工具的可能用例,还可以帮助他们审核 LLM 的输出。
随着用户对工具越来越熟悉,他们对人工智能的依赖会随着时间的推移逐渐减少。
到目前为止,开放式计算媒体(open-ended computational media)的设计一直受到LLM编程瓶颈的限制。
LLM 一直在试图解决高效灵活地将自然语言转化为代码!大家可以看到 Claude Artificat, OpenAI canvas 都在尝试解决这部分问题, 包括各种编程助手,如 cursor, windsurf, blot.new continue.dev 等等!
PS: 根据美国业界的说法:如果一个模型能够在生成良好代码方面表现更出色,那么通常它也能对非代码生成类型的其他用户查询产生更好的答案。
AI 入门
快速开启 - ApiHug如何在15分钟内,使用 ApiHug 启动一个API开发项目.https://apihug.com/zhCN-docs/start
ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplacehttps://plugins.jetbrains.com/plugin/23534-apihug--api-design-copilot