——由开发新编程语言的讨论而突然想到的一些想法
今天在微信上看到了CSDN主办的一个讨论,是魏永明和许式伟两位老总谈新的编程语言,他们两人都是为数极少的中国创造的编程语言的创始人。难得!可贵!在听他们的讨论时,一个想法突然冒了出来。感觉这个想法有些意思,也可能有些用处,因此,在这里写一个小文,把这个想法和一些相关的想法表达出来,并且借微信公众号传播一下,希望有人感兴趣,希望有些用处。
先把主要点直接表达出来:既然要开发新编程语言,为什么不把人工智能用上,开发一个由人工智能支持的、用自然语言来编程的系统?我认为,这样可以极大提高编程效率,提升整体生产力,并且形成全新的茁壮的信息产业生态,进而形成一个强有力的新经济生长点。
那么这是什么东西呢?可以先看一个例子。假设我们要编一个最简单的程序,世界你好,就需要写出如下的源程序:
class HelloWorld {
public static void main(String[] args) {
System.out.println("世界你好!");
然后再编译,再执行。这是用Java编程语言来做。如果用C语言来做,就是:
#include <stdio.h>
int main() {
printf("世界你好!");
return 0;
C语言的程序也需要编译。如果是要用自然编程语言来做,就简单很多了:
打印“世界你好!”。
这就是用自然编程语言写的程序了。当然,仅这样还不够,还需要把这段程序提交给人工智能的翻译器,翻译器把这段程序翻译成可执行文件,并且返回可执行文件。简单说,就是用自然语言来编程(当然是用自然语言中的一个子集,而且遵循一定的规则),然后再借助人工智能的帮助来形成计算机可执行的文件。
自然会因此产生这些问题:1)有什么好处?2)可能做到吗?3)要怎么样才能做到?
首先谈好处。最直接的好处就是极大地提高了编程的效率。举例来说,如果是这样的工具得以普及,那么,曾经引起某城市的核酸检测爆炸的低级程序设计错误就根本不会出现。有了这样的工具,编程的门槛就极大降低了,生产率就极大提高了。不过,我这里就不对好处再多说什么,我相信有非常多的聪明人会在这方面发挥想象力。
其次,需要谈是否可能做到。就我目前的了解,世界上应该还没有这样一种技术产品,使得可以做自然语言编程。但是,这方面的讨论并不少。例如下面这个链接:
https://thenextweb.com/news/programming-natural-language-syndication
其标题是:Programming in ‘natural’ language is coming sooner than you think(用自然语言编程会来得比你想的快)。
既然世界上还没有(虽然有人讨论,恐怕也有人已经在做),而我们要做,那就是为天下先,那就需要思考技术上是否行得通。
说到底,自然语言和编程语言都是语言,都是交流的工具。理解自然语言的主体是人,理解编程语言的主体是机器。编程语言有非常严格的规定,不容许歧义,而自然语言就灵活很多,也强大很多,但是非常容易产生歧义等等不好的作用。编程语言只有经过严格和长期训练的人才能使用,而自然语言则人人都可以熟练使用。因此,如果要用自然语言来编程,就必须有一个翻译器在中间,先把自然语言翻译成编程语言,然后再把编程语言编译为机器可执行文件。因此,是否可行这个问题就转化为两个问题:1)是否有一个很好的编程语言可以来担当这个中间的角色?2)是否有一个翻译器可以把自然语言编程的程序翻译成编程语言的程序?我认为,这两者可行。
1)完全可以设计一个优秀的编程语言来胜任此中间角色。可以指出,因为并不需要人来用这个语言编写程序,这个编程语言就可以具备现行的各种编程语言(如C,Java)不具备的优点,因为现行的语言的设计必然要照顾编程人员的特点,就会带来很多妥协,就会影响效率。因此,可以期望使得生成的目标程序有高效率,以及各种高品质。
2)这是一个人工智能做自然语言处理的问题,即在两个语言间做翻译。举例来讲,英语翻译为其他语言,如西班牙语,汉语等。根据现有的资料,对相对规整的语言,如西班牙语,机器翻译的准确率已经可以高达95%以上,而对规整程度低一些的语言,如汉语,机器翻译的准确率就低一些。但是,我们要做的是两个高度规整的语言之间的翻译,一个是具备一定规范的自然语言(因为我们将对语言的使用做一定的规范),另一个是完全规整的编程语言。这样看,做一个翻译器,使之到达100%的准确率,是完全可以做到的。
因此,我认为技术上是可行的,确切无疑可行。
再看要做些什么才能实现。具体的实现,当然是一个艰苦的历程,需要集合一个高效的团队来实现。这个团队起码应该有:1)有人来设计优秀的编程语言。这些人是计算机编程语言专家。2)语言学家,特别是中文语言学家,来设计一个语言使用规范,使得根据此规范,就容易编程。3)一个AI团队来建造人工智能的翻译器。在开发的过程中,肯定会有更多的困难出现。不过从目前的情况开始设想,有了这3个方面的人才集合起来,就可以开动工作了,就可以期望第一版产品问世。
最后,我们可以设想一下,如果这样的工具做出来了,整个信息工业的生态将极大改变。举例来说,手机上都有一个日历APP,其中可以设定各种闹铃来提醒用户做各种事情。但是,这样的APP,因为要适应全体用户,就并不好用。如果有了我们前面说的工具,用户完全可以用中文写如下的程序:
每日8时贝多芬闹铃,周日无闹铃,周三17:30二胡闹铃,屏幕提示“准备跳舞”,设置控制界面,用于控制临时闹铃
然后提交这段程序到翻译器,翻译器则返回可执行程序(apk文件),这样用户就有了自己的APP,完全是个人定制化的。大家可以放开设想一下,当人们可以广泛使用这样的工具后,会有什么样的发展情况?如果全体专业人员都可以轻松容易地实现自然语言编程,那么他们知识,经验,数据可以获得什么样的发挥?整个社会生产力会有什么样的提高?
也容易想到,如果有一家公司,或者几家(只可能是很少几家),把这件事情做起来了,那么这些公司,就一定会成为执信息工业的牛耳的龙头公司。如果有中国公司,而不是美国公司来把这件事做起来了,那是什么情况?这是一个巨大的好机会。以前做不到,因为没有AI技术,现在恰好当时。
如果我还年轻许多岁,我不会写这些文字的。在想到这些想法后,我会立即考虑如何组建团队,如何筹集资金,如何申请专利,来具体地做这个事情。但是我已经不可能做这些事情了。我非常愿意看到这个方向的发展,特别是中国有人来把这个事情做成,因此,我把这些想法写出来。希望对有心人能够产生一些小作用。如果真能如此,幸甚!
原文链接:https://blog.csdn.net/VucNdnrzk8iwX/article/details/126899833