把需求说出来,就能自动生成应用了?
我的极刻就在前段时间,小黑在《低代码开发是什么,它会让程序员失业吗?》一文中,描绘过这样一幅美好的图景:
在未来,人们可以像拼积木一样,把不同的功能模块拼到一起,制作出自己的应用。这不仅有助于提升程序员的工作效率,同时也降低了人们的学习门槛。
不过,低代码开发也有这自己的局限性:它就像是用现成的材料来搭建一座建筑,虽然方便,但对有些人来说,反而会限制他们实现自己的需求。
在这种情况下,一种用自然语言(也就是我们日常说的话)来生成应用的技术就此诞生了。
把需求说出来,就能自动生成应用了?
其实,用自然语言生成代码并不是一个新生事物。
早在几年前,就已经有不少企业和学校在研究这一技术了。到了去年,更是有人利用OpenAI的开放接口训练出了可以将一些简单的需求转化成代码的案例。
而到了现在,这项技术可以做的事情也变得更多,甚至可以直接将自然语言转换成安卓应用。
▲ 自然语言直接生成安卓应用
实现这一功能的AI叫“Text2App”,而上面这张图片,就是它的整个工作流程。
图片左侧是测试人员输入的自然语言,翻译过来就是“创建一个应用,其中包含文字输入框、说话按钮和语音输出功能。当按下按钮时,朗读文字输入框中的文字。”
右侧,则是应用实现的功能了。整个编译过程并不需要人工介入,等上几分钟,一个安卓应用就这样生成了。
把输入的文字编程应用,要经过几步?
如果要说能有一个AI能直接把人说的话变成应用,小黑肯定是不信的。不过,Text2App采用的方法倒是非常聪明:它先将我们输入的需求文本编译成一种中间语言,之后再通过编译器生成代码。
什么是中间语言呢?其实,小黑也不是很懂,于是大概地查了一下网上的释义。不过这一查,小黑就更云里雾里了,还是贴一段百科的原文来让大家了解吧:
“中间语言(英语:Intermediate language),在计算机科学中,是指一种应用于抽象机器(abstract machine)的程序语言。它设计的目的是用来帮助我们分析电脑程序。”
希望有懂的程序员老师能帮小黑解释一下这句话。
不过,看不懂也不是什么大问题,我们把它看成是连接自然语言和代码的桥梁就对了。
在之前,大多数希望实现自然语言直接生成应用的尝试,都是采用直接翻译的模式进行的。这就带来一个问题:自然语言的结构与代码不同,直接翻译的效果就会像谷歌翻译的结果一样,对一些短句和常用句式效果良好,一旦要翻译整段文字,输出的效果就惨不忍睹了。
因此,研究人员为了克服不能生成大型应用的限制,发明了一个形式语言作为中间语言。它能提取自然语言中的重要内容,再形成一个简单的程序来表示代码。
▲ Text2App的完整工作流程
不过,很显然,目前Text2App能够实现的功能还相当简单,但研究人员的最终目标非常远大:使Text2App成为一个成熟的、基于自然语言的app开发平台。
如果要小黑来评价Text2App这一类自然语言生成应用的尝试,小黑只能用敬佩来表示:长期以来,编程的学习成本一直都不低,如果Text2App的理想真的能实现,那对人们学习、利用编程有着莫大的帮助。
但同时,小黑也对它的前景不那么乐观:人工智能时至今日都只在发展的初期,Text2App究竟何时才能达成这一远大理想,似乎还遥遥无期。
图源:Text2App研究团队、百度搜索