前沿热点丨无/低代码软件开发的兴起——无需经验?
本文选自中国工程院院刊《Engineering》2020年第9期
作者:Marcus Woo
来源:The Rise of No/Low Code Software Development—No Experience Needed?[J].Engineering,2020,6(9):960-961.
导语
纽约市为追踪新冠病毒肺炎(COVID-19)在城市中的传播情况,拟建立一个在线门户网站,用于收集 COVID-19感染者以及病例接触者的信息。该COVID-19门户网站经过3天筹备便上线运行了,而这一网站的上线过程中竟无需编写任何代码。这是如何实现的呢?
中国工程院院刊《Engineering》刊发《无/低代码软件开发的兴起——无需经验?》指出,无/低代码软件开发代表着计算机科学向实现编码自动化这一目标又迈进了一步。文章指出,到2024年,低代码平台将用于65%的应用程序开发工作,这从侧面反映了企业日益数字化以及对定制应用程序需求的增长。随着机器学习和深度学习的不断深入发展,融入数据驱动的智能技术,可以使代码生成与合成更加智能化,人工智能将可以自动生成代码,即“程序合成”。
纽约市的官员想要追踪新冠病毒肺炎(COVID-19)在城市中肆虐的情况,并有效地为有需要的人提供服务。为此,他们建立了一个在线门户网站,用于收集 COVID-19感染者以及病例接触者的信息。速度至关重要,COVID-19门户网站三天后便上线运行了,而这一切都无需编写任何代码。
这一壮举由纽约市的初创公司Unqork所开发的无代码(no-code)软件开发平台实现,并很快得到了华盛顿特区的效仿,用于当地的COVID-19支持中心。与无代码平台类似的还有需要一些基本编码知识的低代码平台,而两者日益壮大的趋势代表着计算机科学向实现编码自动化这一几十年来的目标又迈进了一步。
“想象一个不必编写代码的世界,”加利福尼亚大学伯克利分校的计算机科学教授Koushik Sen说道,“只要动嘴,计算机就能帮你实现,就像是一个用于编程的亚马逊Alexa智能助理。”
除了众多初创公司,甲骨文(Oracle)、Salesforce、微软(Microsoft)和阿里巴巴(Alibaba)等科技巨头也拥有自己的无代码和低代码软件开发平台。在2020年1 月,谷歌公司收购了源于美国华盛顿州西雅图市的无代码平台AppSheet。根据总部位于美国康涅狄格州斯坦福德的全球研究公司高德纳的预测,到2024年,低代码平台将用于65%的应用程序开发工作。
北京大学计算机科学技术系的讲席教授谢涛表示,这种增长反映了企业日益数字化以及对定制应用程序需求的增长。因为没有足够的软件工程师来满足需求,企业如今开始转向这些愈加强大的平台。
在大多数的这些平台中,用户可以通过拖放元素(图1)来创建网页和移动应用程序,而无需编写代码。但是,这种高级编程的概念并非如此新颖。Sen表示,编程一直朝着更简便易懂的形式发展,无代码和低代码软件开发只是该趋势的一种延伸。例如,在20世纪50 年代,编程中的汇编语言过于烦琐,计算机科学家便创建了Fortran等更易于编写和理解的高级语言。甚至电子表格都是一种无代码或低代码的平台,用户几乎无需编写任何代码即可分析和处理数据。
图1 Mendix等低代码平台允许用户通过拖放组件来设计应用程序,无需编写代码。该截图展现的是拖放界面。图片来源:Mendix,经允许
如今,大多数商业化的拖放平台都是通过预定义的组件来创建应用程序的。但是,某些平台开始利用人工智能(AI)来更好地预测用户的需求。例如,美国马萨诸塞州波士顿市的低代码平台Mendix拥有一个由机器学习驱动的助手,可识别历史数据中的规律,以便在用户创建应用程序时为其提供建议。谢教授说道,融入这种数据驱动的智能技术反映了这些平台的下一步发展。“使代码生成与合成足够智能化将是一个重要的里程碑。”
最终,人工智能也许可以自动生成代码,这一目标被称为“程序合成”。加利福尼亚大学伯克利分校的计算机科学助理教授Alvin Cheung表示:“能够让计算机自己编写程序一直是计算机科学家的梦想。”你可以通过提供输入和输出的示例,演示你想要完成的任务,或者简单地用自然语言描述你想要的程序,来告诉计算机你想要什么,计算机就会生成代码。
但是,Cheung说道,解读人类需求、扩大规模并产生大量代码仍然是程序合成的重大挑战,即使是最先进的工具也远远无法达到目标。不过,由于深度学习的进步以及更高效的自动编码方法的出现,我们正在进步。从原则上讲,计算机可以查阅所有可能的代码,然后找出可以完成所需任务的组合来生成程序。但是,这不切实际,因此计算机科学家一直在开发更智能的方法来缩小搜索范围。Cheung表示,在使用这种方法的工具中,一个最好的示例就是微软电子表格的快速填充功能。当你输入数据时,它会识别规律并相应地自动填充剩余的单元格。
IntelliJ IDEA(来自捷克共和国布拉格的JetBrains 公司)和TabNine(来自以色列特拉维夫的Codota公司)等其他商业工具分别使用机器学习和深度学习来识别人们的编码规律并在编码时提供建议。Sen说道:“这就像更加强大的自动填充功能一样。”与拖放平台不同,这些工具适用于编码人员。尽管它们不合成代码,但其目的是帮助程序员更快地编写代码,并减少错误。
当前所有的这些技术都存在局限和挑战。谢教授说,没有专业的开发人员,使用拖放平台制作的应用程序可能难以更新从而满足新的技术要求。这些应用程序运行时的性能可能不那么高效,并且可能很难与一个公司里的大型软件系统整合。一些创建移动应用程序的无代码工具,即在线应用程序生成器可能会遇到安全问题。对于不懂代码的开发者来说,调试将是一个很大的挑战。
如果程序合成成为现实(Sen表示“这会实现的”),即使是最好的程序员也许都很难理解代码。这些代码不会有注释,并且可能会使用难以理解的变量名。Sen说道,计算机认为最有效的代码对于人类来说可能是无法理解的。而且神经网络算法本身具有“黑箱”性质,它可能已经生成了代码,然而人们通常无法理解这一结果是如何实现的。
但是,无论是使用程序合成还是拖放平台,越来越多的人以后将能够创建程序。这可以解放训练有素的编码人员,让他们专注于最棘手的问题。我们对编码人员的需求可能会减少,但是我们仍然需要专家。“我不认为人类会被完全取代,”Cheung表示,“现在仍然有大量的编程工作是自动化系统无法胜任的,而且即使在不久的将来也不行。”
注:本文内容呈现略有调整,若需可查看原文。
改编原文:
Marcus Woo.The Rise of No/Low Code Software Development—No Experience Needed?[J].Engineering,2020,6(9):960-961.
☟ 如需阅读全文,请点击文末“阅读原文”
☟ 更多相关阅读,请点击以下链接查看
点击图片阅读丨前沿热点:如何提升输电基础设施以更好利用风能
点击图片阅读丨前沿热点:三维芯片成像
点击图片阅读丨前沿热点:利用负排放技术减缓气候变化
点击图片阅读丨前沿热点:现代城市社会中的高性能抗震结构
点击图片阅读丨前沿热点:人类基因编辑技术及其伦理问题
点击图片阅读丨前沿热点:外科医生未来将与机器人医生一起协作
中国工程院院刊
工程造福人类
科技开创未来
微信公众号ID :CAE-Engineering
注:论文反映的是研究成果进展,不代表《中国工程科学》杂志社的观点。