|
比来ChatGPT引发了AI写代码的热潮。很多人在讨论AI会写代码了,法式员要大规模掉业了,那么,AI到底会不会写代码?
先说结论:AI目前还不会写代码。以后会不会,不好说,但必定不是写Java代码,也不是C++代码,也不是任何高级语言代码。
为什么这么说,咱还是举例子。
就拿前端常见的网页布局来说,此刻越来越多的网站撑持响应式布局,啥意思呢?就是你屏幕宽,多显示点内容,屏幕窄,看到的内容自动变细长条。
随便找个网站,就微博吧,把浏览器拉大,正常显示:
把浏览器拉小到必然程度,得,右边栏消掉了:
再继续缩小,LOGO只剩图标了,能不显示文字的处所都省了:
实际上这种响应式布局就是把屏幕宽度像素按576px、768px、992px以及1200px划分为xs(Extra Small)、sm(Small)、md(Medium)、lg(Large)、xl(Extra Large)等规格, 分歧的规格对应分歧的CSS布局,这样就实现了响应式布局。
如果是AI来实现响应式布局,它应该怎么做?
它不需要按照正常前端开发人员的思维去定义这几种规格。
我们想想,如果划分更细点,比如0~100px,100~200px,200~300px,300~576px,……是不是会有更精细的布局?然而定义100种屏幕规格,就需要编写100套布局,但人类开发人员无法同时掌控这么多布局,这意味着大量的精细调整和巨大的工作量。
然而AI可以。如果屏幕分辩率最高是1920px,那么AI完全可以定义1920种布局,反正对它来说5种、50种和1920种都是一样的,花费0.00001秒和0.01秒没有区别,因此,AI可以直接拿到一个屏幕大小值,然后按照该大小直接实现特定布局。
我们再继续深入讨论一下代码编写。对于人类来说,如果代码长度超过1000行,则很难阅读并理解该代码的意图,必需拆分为更小的函数。一个函数定名为createButton,另一个函数定名为setText,仅仅是便于人类记忆。对于AI来说,定名毫无意义,因为函数在内存里仅仅是个地址,AI知道0x80C4A5是创建按钮的函数,0x1C07E2是显示文字的函数,它不需要先定义名字,再由编译器分配地址,它可以直接分配地址。
类似的,高级语言的语法仅仅是为了便于人类理解。比如,把一个字符反复5次放入数组,分歧的高级语言有分歧的写法:
JavaScript写法:- Array(5).fill('A')
- => [ 'A', 'A', 'A', 'A', 'A' ]
复制代码 Python写法:- ['A' for i in range(5)]
- => ['A', 'A', 'A', 'A', 'A']
复制代码 对于AI来说,定义这些语法是没有意义的,因为反复5次直接生成5条指令即可(此处不考虑实际指令集):- PUSH 'A'
- PUSH 'A'
- PUSH 'A'
- PUSH 'A'
- PUSH 'A'
复制代码 下次要反复500次无非就是500条指令而已。
有人可能会感觉人类编写的代码是否更优化?简洁是必定的,但论速度,必定是AI生成的指令更快:没有判断,没有循环,挨次执行,完美贴合现代CPU的流水线,无非内存占用大了点。
可见,高级语言的本质是一组约定了语法的文本,它便于人类阅读和改削,并通过编译器生成并执行代码。而这些语法和编译器对于AI毫无意义,因为它本来就可以直接生成代码。 AI写代码,它底子不需要人类为了便利人类本身开发的各种高级语言、编译器、自动化脚本等东西链。 《流浪地球》里的550超级AI,它生成操作系统并不需要先生成C语言再编译,因为给人类看C语言的代码毫无意义。550生成的操作系统,就是一串0101...的机器码。
总之,如果AI真的会写代码,而不是生成文本形式的高级语言代码来辅佐人类减轻工作量,那么人类现有的编程不单毫无意义,人类本身有没有意义都应该当真讨论了,人类文明也正式进化为AI文明。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|