设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
立即注册
快捷导航
论坛
BBS
资讯
在线课程
电子图书
积分充值
邀请码
Edward's Blog
搜索
搜索
热搜:
软件逆向
破解
攻防
本版
文章
帖子
用户
McSafe软件安全论坛
»
论坛
›
【PC安全】
›
编程技术
›
软件开发是一个“已解决的问题”吗?
返回列表
发新帖
查看:
16
|
回复:
1
[
翻译
]
软件开发是一个“已解决的问题”吗?
[复制链接]
McSafe
McSafe
当前离线
积分
4410
433
主题
4
回帖
4410
积分
管理员
积分
4410
发消息
发表于
昨天 14:07
|
显示全部楼层
|
阅读模式
来自 湖北武汉
“已解决的问题”指的是:曾经没有解决方案的难题,在某个节点找到了可行解法。这个解法未必是最优的,但只要在对应领域内足够好用,该问题就可以被称为“已解决”。举个例子:过去我们完全不知道如何将航天器送上月球,这曾是个极具吸引力的硬核挑战;但如今我们已经掌握了这套技术,它就不再像从前那样充满探索趣味了。登月这件事或许还停留在遥远的太空里,我们不妨把话题拉回现实的地面。
软件开发这门学科——你也可以称它为软件工程——已经在相对自然的发展过程中,沉淀成了一套可被系统学习的知识体系。一名“初级”软件开发者可能只掌握一门编程语言,完全没有接触过真实项目的代码库;而更资深的开发者往往精通多门编程语言,在实际项目中摸爬滚打过(真实代码库的混乱程度往往远超新手的预期),也对各类所谓的设计模式十分熟悉。当然,我这里的描述做了简化——初级和资深的区别从来不是靠会多少门编程语言来衡量的,核心差异在于对技术的理解深度、问题解决能力,以及真正的技术实力(“掌握”一门编程语言本身就有无数个深浅层级)。
这里举一个简单的例子:在软件开发工作中,如果你需要对一组数字组成的数组进行排序,你会直接使用一个广为人知的成熟算法,比如快速排序或者归并排序,来完成这项任务。你甚至都不需要去深究所用算法的具体实现细节,因为你会直接调用现成的库函数来完成排序工作;对任意数字序列进行排序早已是一个被彻底解决的问题。绝大多数开发者根本不会关心排序的底层细节,他们只需要调用对应的函数就转头去处理下一项工作了——排序这件事早已是行业里的老生常谈。
如今开发者们可以借助人工智能来完成开发工作了。你可以要求AI为你的软件系统开发一个新功能,它就能直接完成对应的开发工作。我们都知道AI已经可以独立搭建完整的网站,包含后端服务、数据库和前端页面,全程不需要人类开发者编写甚至查看一行代码。那这种开发能力是不是仅局限于网站这类“简单”的系统呢?换句话说,软件开发这件事本身,已经成为一个被彻底解决的问题了吗?
正如你们当中不少人了解的那样,我自己开发过不少工具,其中大部分都带有图形界面(没错,我个人很偏爱GUI设计),这些工具全部在我的GitHub账号上开源托管,对应的地址是
https://github.com/zodiacon
。我开发的工具数量很多,意味着完成所有这些工具的开发需要耗费大量时间;过去这些年里,我一直用自己的“业余时间”在慢慢打磨这些项目。这些工具永远有更多我想要新增的功能,也总有因为时间不够没能修复(甚至还没被发现)的漏洞。在过去的几个月里,我一直在使用Claude Code这款工具,给我名下的各个工具新增功能、修复存在的漏洞。
最终的产出效果非常出色,甚至可以说令人惊叹。我只用了远低于手动开发所需时间的一小部分,就成功新增了数十项功能,修复了大量漏洞。比如TotalPE2、Total Registry、Object Explorer、WFPExplorer这些工具——这里仅列举几个代表——都从中获益良多。
不仅如此,我之前为了实现可跨项目复用的Windows模板库(WTL)功能而开发的WTLHelper库,也得到了极大的扩充:现在它内置了表现出色的十六进制编辑器/查看控件、类似Windows任务管理器性能面板样式的图表控件,甚至还新增了计算机科学领域标准定义的图结构控件,也就是由节点、边组成的图形控件。整套图表控件我完全没有手动编写一行代码,全由AI生成,实际运行效果非常好。
我还可以举另一个例子:我一直想要开发一款类似Process Explorer、System Informer风格的系统监控工具,同时融入我个人的设计风格。之前我已经做过一部分相关尝试,先是开发了“System Explorer”,之后又推出了基于Imgui框架的工具“TotalSystem”,但在我个人看来,Imgui其实并不适合作为这类工具的底层框架。我真正想要的是一款基于WTL框架的工具,支持现在已经算是“基础配置”的深色模式,还能展示各类系统信息、配套可视化图表,把相关功能全部整合到位。
于是我决定全程借助Claude来开发这款工具,除了我已经写完的基础WTLHelper库之外(Claude还进一步优化了它),以及我此前一直在维护的WinSys库(Claude也根据开发需求为它补充了大量内容),其余代码我完全不用自己动手。最终我只花了几天时间,全程由Claude负责生成代码,我只做方向引导,就完成了整个开发。这款工具就是WinSysLive,最终成品效果实在亮眼——至少我自己非常满意。我甚至动过把版权声明改成“(C) 帕维尔·约西福维奇与Claude Code共同所有”的念头——我完全没法声称所有代码都是我亲手编写的,绝大多数代码其实都是Claude生成的。下面是它的几张功能截图:
这些成果让我深信,从整体层面来看,软件开发已经是一个被“解决”的问题了。当然我仅能基于自己的亲身经历给出判断。哪怕是当下版本的AI编程代理(未来它们的能力还会持续进化),也已经让我清晰地意识到:几年前开发者们还在沿用的传统工作模式,已经彻底成为过去式了。
在全新的模式下,软件的核心设计工作完全可以交由人类完成——如果是复杂的系统,可能还需要输出一份详尽的设计文档。就像传统软件开发本身是迭代式推进的一样,这套新的工作方式同样遵循迭代逻辑:
人类用自然语言完成设计,按需明确给出各类约束条件,之后就可以把全部实现工作交给AI完成。
如果最终产出的代码在功能或者设计层面存在漏洞,AI可以自行完成修复;如果设计文档本身需要调整——比如需求发生了变更,AI也会同步更新对应的代码。我坚信,
对于绝大多数的系统而言,人类亲自逐行审查代码已经不再是必要环节。
当然永远会存在一些极端场景、小众领域,或是在CPU、内存占用等维度有特殊硬性约束的项目,这类需求AI第一次处理时未必能做到完全精准,可能还需要有经验的人类专家出面“把控引导”才能理顺。专家的价值依然不可替代,只是他们的需求量大概率会降低,但只要是真正的行业核心专家,其价值非但不会缩水,甚至还会进一步提升。
实际上,
顶尖开发者的能力反而会因此变得更加稀缺独特:主流开发者可能会在日常工作中逐渐“手生”,对底层技术细节的熟悉程度越来越低。
对于绝大多数常规开发工作来说,这种新模式完全足够胜任,但时不时地,我们依然需要行业专家的深度介入来搞定特殊难题。
就像《星际迷航》的设定
我本人非常喜爱《星际迷航》的宇宙世界观,尤其偏爱《星际迷航:下一代》这部剧集呈现出的故事图景。它所描绘的那个趋近于乌托邦的世界,恰恰是全人类应当为之奋斗的方向:金钱不再是人们行动的核心驱动力,真正的挑战都集中在技术探索与未知发现的领域当中。不过这部分内容稍微有点跑题了。
在《星际迷航》的世界观设定里,星舰上的机载计算机就和今天的人工智能如出一辙:工程师只需要和它对话就能完成绝大多数工作,人类随时可以介入调整所有流程,但所有基础任务都可以由计算机自主完成,完全不需要人类手动干预。很明显《星际迷航》里对计算机和软件系统的刻画做了艺术简化,但核心的构想完全站得住脚。
编程语言未来或许会彻底失去它的重要性——我甚至敢说放到当下,编程语言的重要性也已经在持续降低了:和代码直接打交道的主体早已从人类变成了AI。我们现在甚至可以让AI用另一套完全不同的“能力维度”,相当于调用它大脑里的不同功能分区,来对自己生成的代码完成自主代码审查😉
软件开发者的未来会走向何方?
这套全新的工作模式会把软件开发者置于什么位置?开发者会转型为设计者,核心工作是引导AI完成开发,绝大多数时候都不需要再亲自扎进繁琐细碎的实现细节里。当然永远会存在特殊例外,但整体来看,几年前我们还在沿用的传统软件开发模式,正在逐步退出历史舞台。
这是否意味着我们需要的开发者数量会变少?我并不这么认为。借助AI工具,我们能完成的项目体量会大得多,站在更高的抽象层级开展工作,把技术能力推到全新的高度。开发一款电子表格应用再也不会是什么难题——AI完全可以独立完成这项工作,你只需要告诉它复刻Excel的功能,很快就能得到成品。我之前提到过,我只用了几个小时就“写出”了一个节点图控件,连带着单元测试和演示程序全部搞定,后续我还能随心所欲地给它新增更多功能。未来的开发模式就会是这样。
开发文字处理器、计算器这类通用应用,甚至是完整的大型操作系统,都已经在AI的能力覆盖范围之内了。那接下来会发生什么?不少公司的核心业务完全围绕自家软件产品搭建,比如Adobe旗下的Photoshop、Illustrator这类产品,它们的核心知识产权完全绑定在这些应用上,背后的底层逻辑往往是:其他厂商不可能在合理的时间周期内,做出一套功能完全对标的同类产品。但我认为这个前提如今已经不再成立了。
你完全可以借助AI开发出这类应用,哪怕初期版本没法做到100%的功能完全对齐,最终成品的体验也足够让用户放弃那些价格高昂的传统商业软件。这对所有靠通用软件产品支撑业务的同类公司来说,都不是什么好消息,整个软件行业的格局也会因此发生彻底的变革。
未来将会走向何方?
很显然,我没法给出确定的答案🙂。我们当下在化学、医疗、能源等领域看到的AI技术突破,才是真正承载未来可能性的核心方向。我们完全可以借助AI攻克癌症、打造支持星际航行的航天器、开发出廉价清洁的新型能源、构建一套完全不损失运行效率的超高安全级操作系统、探索出更高效的农作物增产方案——这类值得探索的方向数不胜数,而软件开发本身是所有这些宏伟目标里不可或缺的核心组成部分。
开发一款定制化的数据库引擎?一款绘图程序?甚至是某款领域专用语言(DSL)的解释器?这些任务如今或多或少都已经属于“已被解决”的问题,完全可以交给AI来完成。这些工具本身只是我们用来搭建更伟大事物、创造更美好世界的基础载体,我们完全可以把精力聚焦在更有价值的核心探索方向上。
原文链接
回复
举报
君杰
君杰
当前离线
积分
819
0
主题
364
回帖
819
积分
高级会员
高级会员, 积分 819, 距离下一级还需 181 积分
高级会员, 积分 819, 距离下一级还需 181 积分
积分
819
发消息
发表于
昨天 23:55
|
显示全部楼层
来自
都从中获益良多
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表