找回密码
 立即注册
查看: 2181|回复: 20

AI到底会不会写代码

[复制链接]

1

主题

0

回帖

6

积分

新手上路

积分
6
发表于 2023-5-8 10:09:06 | 显示全部楼层 |阅读模式
比来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写法:
  1. Array(5).fill('A')
  2. => [ 'A', 'A', 'A', 'A', 'A' ]
复制代码
Python写法:
  1. ['A' for i in range(5)]
  2. => ['A', 'A', 'A', 'A', 'A']
复制代码
对于AI来说,定义这些语法是没有意义的,因为反复5次直接生成5条指令即可(此处不考虑实际指令集):
  1. PUSH 'A'
  2. PUSH 'A'
  3. PUSH 'A'
  4. PUSH 'A'
  5. PUSH 'A'
复制代码
下次要反复500次无非就是500条指令而已。
有人可能会感觉人类编写的代码是否更优化?简洁是必定的,但论速度,必定是AI生成的指令更快:没有判断,没有循环,挨次执行,完美贴合现代CPU的流水线,无非内存占用大了点。
可见,高级语言的本质是一组约定了语法的文本,它便于人类阅读和改削,并通过编译器生成并执行代码。而这些语法和编译器对于AI毫无意义,因为它本来就可以直接生成代码。 AI写代码,它底子不需要人类为了便利人类本身开发的各种高级语言、编译器、自动化脚本等东西链。 《流浪地球》里的550超级AI,它生成操作系统并不需要先生成C语言再编译,因为给人类看C语言的代码毫无意义。550生成的操作系统,就是一串0101...的机器码。
总之,如果AI真的会写代码,而不是生成文本形式的高级语言代码来辅佐人类减轻工作量,那么人类现有的编程不单毫无意义,人类本身有没有意义都应该当真讨论了,人类文明也正式进化为AI文明。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

0

主题

1

回帖

0

积分

新手上路

积分
0
发表于 2023-5-8 10:09:28 | 显示全部楼层
翻译:AI要么不会写要么直接成天网
回复

使用道具 举报

0

主题

4

回帖

14

积分

新手上路

积分
14
发表于 2023-5-8 10:09:45 | 显示全部楼层
廖老师还是这么深入浅出,从初入行就看您的学习资料和视频,确实是这样,讨论AI是否能开发程序其实还是在站在程序员或者说人类的角度,或许问AI是否能像人类程序员一样写代码更贴切一些,因为如果纯说编程这件事情其实就是让计算机的算力按照我们设定好的逻辑去计算而已,那这个设定逻辑的方式,AI和人类程序员根本就是不一样的,若是说自动生成curd的Java或者C++代码,脚本就能做到,用不到AI
回复

使用道具 举报

0

主题

2

回帖

15

积分

新手上路

积分
15
发表于 2023-5-8 10:10:17 | 显示全部楼层
刚想说not even wrong,但一看作者……看来是我境界不够吧。
回复

使用道具 举报

0

主题

2

回帖

1

积分

新手上路

积分
1
发表于 2023-5-8 10:11:13 | 显示全部楼层
拨云见日,茅塞顿开。大佬就是大佬
回复

使用道具 举报

0

主题

1

回帖

0

积分

新手上路

积分
0
发表于 2023-5-8 10:11:47 | 显示全部楼层
是不是因为ai缺少一个“生成目标”的能力?

假设ai有了“人生目标”,能不能认为它就有了“生存的意义”,就有了“自主意识”,就可以有“判定标准”从而利用强大的学习复制能力和穷举能力在自己的无数个虚拟机里进行代码迭代升级了?[惊喜]
回复

使用道具 举报

0

主题

4

回帖

5

积分

新手上路

积分
5
发表于 2023-5-8 10:12:17 | 显示全部楼层
问题是chatgpt就是一个语言模型啊,现在给它喂的都是些高级语言的代码,因此它模仿写出的代码可以很像程序员的风格。 作者说的那种直接用机器码编写代码的AI不是不可能出现,但至少不是现在的chatgpt。(作者一看就没亲自体验过chatgpt生成代码,甚至网上的测评也没看过[思考])
回复

使用道具 举报

0

主题

1

回帖

0

积分

新手上路

积分
0
发表于 2023-5-8 10:12:40 | 显示全部楼层
也没说要chatgpt来写啊,它肯定不行。
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2023-5-8 10:13:08 | 显示全部楼层
不过对于最后一点有一个问题就是simd指令优化的问题,当然你可以说AI也可以学会simd指令,但是优化这个问题很大程度上是数学变换,我想应该是需要形式化证明类似手段的吧?所以AI+形式化验证?似乎是一个通过蒙特卡洛方法对每一个特定问题找到最优化方法的终极解决办法?
回复

使用道具 举报

0

主题

4

回帖

5

积分

新手上路

积分
5
发表于 2023-5-8 10:13:41 | 显示全部楼层
语法糖对ai无意义……
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|T9AI - 深度人工智能平台 ( 沪ICP备2023010006号 )

GMT+8, 2024-12-22 13:34 , Processed in 0.057901 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表