机器替代人来写码 ,由来已久,几十年前就有人说,很快就不用程序员了,机器自己写。
早期的逻辑语言,像 Prolog,就是这个理念,属于专家系统,你直接告诉程序你要什么,他就写好了,问题是 (1)适用范围太窄,(2)你也要懂如何告诉机器你要写什么
后来有 visual programming,就是说不用写码,只要画图就可以了,好像 Silicon Graphics搞过,微软VB搞过,MIT也有 Scratch,但是好像只能玩玩。
现在机器写码的形式越来越多,有 code generators, 一般好的IDE,都有 很多code generators, 还有 template engines, 再有就是 越来越多的 基于 人工智能 machine learning algorithms 和 input data or patterns 来产生的 code,比如 Google 的 AutoML, GitHub的 Copilot,还有 Hugging Face的 Transformers。
随着 工具越来越多,结果不是不要程序员了,而是程序员需要懂的更多了。那么多智能写码器,你得都懂一遍吧,知道他们各自擅长吧,懂得如何应用吧,更重要的是 ensure 他们 generated code 不存在 安全漏洞,没有泄漏保密数据,满足商业要求,合乎行业规范,不违反法律 和 公序良俗 等等。
对于一个程序员,掌握 自动编程的工具,无疑是可以提高自身 的productivity 和 efficiency. 但是对 方方面面的 stakeholders,他们根本无法 把程序员一脚踢走,尤其是近期。