马斯克和黄教主都说下辈子没必要学编程了, 他们的理由很充分: 一来人工智能已经帮你做了,还需要学它作甚?二来,编程语言已经变成自然语言,要人工智能干啥,自然对话即可。我不是大V,但编程二十余载,多少有些心得, 我倒觉学校应该把编程例如基础教学大纲(cirriculum),让每个孩子都学一下。我的理由如下:
其一,如同很多高科技,我们往往远远低估科技的生命力,就如当年科技大佬对电灯,对PC,对互联网的判断一样, 将来需要用到编程的地方只会越多,不会越少。用电如此,半导体芯片的用量如此,软件的代码行数亦如此。
其次,用自然语言指使大模型实现某一不太复杂的任务的效率永远不可能比写几十行代码来的高,如果你会编程的话。就像用自然语言描述一个数学定理,永远不如一个等式来的简洁,如果你会数学。我判断仍然会有足够多的场景,会编程依然给你一个更高的效率。当然又会编程又会大模型prompt,肯定在效率上加分更多。
第三,编程的训练会强制学生学会逻辑思维,这种对逻辑思维的强调比数学更直接明了,对数学不强的文科生反而更适合。
总的来说,我更喜欢乔布斯的那句“programing is like a liberal art”,在二十一世纪的今天,让孩子们多上这么一门“liberal art”,此生只会受益。
自然语言本身是有歧义的,但用在某特定方面的时候,歧义会消失。
特别是,可以被人类在某些领域的特定符号系统,比如数学公式,看成是自然语言的扩展。
实际上,现在GPT4可以理解和产出数学公式。编程也是同样的道理。
AI也无法超越自然语言的局限。
“怎样描述问题,从而让AI去寻求正确答案” 才是关键问题!只要是中等规模的应用程序, AI根本无法理解人们究竟想干什么
编程语言不是主要问题。
我认为AI取代程序员的过程,并不是让AI去写各种各样的程序语言,再使用目前各种语言的编译器来编译,而是直接生成目标二进制代码,或是各种图形(芯片版图,各种CAD的输出图形),或是各种波形(实时控制)等。
数学语言是自然语言的子集,它足够精确和抽象,用来描述任意一个程序功能一点都没问题。AI完全可以理解一个用数学语言描述的过程,然后跨过所有中间形式的代码,达到所要的目标。
完全同意。
马斯克和黄教主都是在为了公司股票和商业利益,博取媒体话语权,而胡说八道而已。
古代自然语言表达勾股定理:“求邪至日者,以日下为勾,日高为股,勾股各自乘,并而开方除之,得邪至日”。 用符号表达:x2+y2=z2。哪个简明?
为什么数学要用符号,不用自然语言?当然因为自然语言繁琐,不精确,歧义,说不清。符号系统发明出来,就是让数学能更简明,精确,有效地表达。
用自然语言编程,类似,也很难把一些算法简明,准确说清楚。因为本来就不是干这个用的。
所以还是需要作为符号系统的一种编程语言。只是有AI协助,这种编程语言可以在更高层次描述编程意图。