同样是 PHP ,目前正在使用 JS/TS 在用 AI Agent 开发。
当前 AI 模型确实很强,但你了解其本质就知道它是概率推理的,在上下文范围内可以有很好的推理。
但如果是超出上下文范围外以及项目庞大的话,其会丢失很多信息,只关注局部优化。
这是它目前能前期表现很好,但持续编程后会漂移、改不相关代码、虚报等情况。
Mitchell Hashimoto 的一篇文章可以说明一二:
https://digg.com/tech/20ifojce对于“全栈工程师”,以前是说像前后端一起做,前端 JS + 框架,后端 PHP 、Go 甚至就是 Node.js 的 JS 一把梭。
加上数据库,这种更像是“全栈编程技术”。
但如果把“软件工程” = “全栈”的话,
那业务理解、需求分析、产品设计、架构设计、开发技术、测试、部署这些能交付给别人使用的的软件才是“全栈工程师”。
一个开发库、CLI 工具、App 、Web 系统等都是软件,而像企业级或大型软件系统内的模块我认为也算,因为它就是能让别人使用。
所以 PHP 、JS 、Python 、Go 是软件工程的重要“工具”。
AI Agent 现在强在使用这些“工具”,但放在软件工程里,其就不算强。
比如说我们有一个产品构思,最简单的一个开发库。全局是在我们脑子里,以前是我们通过编程把其实现出来。
现在是我们要描述出来给 AI Agent 去实现,但 AI Agent 是无法理解我们脑子里的全局,它只会把我们描述的内容当做是它的“全局”。
这里就会产生信息损耗,工程师脑里 - 表达描述 - AI Agent 推理(限于上下文)- 实现过程。
从这个就可以看出,工程师的核心不是“编程”,这是实现方式。而是构建软件工程的能力。
我的建议是:
1 、把语言当做是工具,需要什么、感兴趣就学什么。把构建“软件”当做是目标,如何能交付一个“软件”给别人使用。
2 、上述提到“软件工程”是构建的工作流,更多是工作范围。但“软件工程”的深度不止是会多少语言。
PHP 是如何运行的,其底层引擎是什么结构,为何说其性能跟 Go 、甚至 Node.js 都差许多,即便 JS 也是解释型语法。
即便是现在 AI Agent 越来越强的发展下,计算机科学底层的东西依然很稳固。
硬件、操作系统、编译原理、网络原理等才是构建了整个软件、互联网、AI Agent 的运行时环境。
3 、“软件工程”深度的是计算机科学,那么其广度就是业务。人类社会的日常生活、行业属性甚至开发里的痛点都是业务需求,怎么把业务需求转化成“软件”。
技术是为业务服务的,技术越强,构建的软件越强。但软件能不能解决问题才是核心。
4 、把 AI Agent 当做是一个“数字助手”,其很聪明、知识很多,可以通过它来强化自己的学习。
但它能不能代替工程师全自动编程,取决于你是否信任其交付的“软件”跟你自己全手写的“软件”具备一样甚至更好的质量。
简单的开发库、CLI 工具可以说非常好,但 App 、软件系统呢?不只是实现,还包括交互、性能甚至数据合规,这些都是“工程师”的核心。