写点什么

编程不是写代码,揭秘 3 种编程新范式:文本、图形和自然语言

作者:hongdou
  • 2023-11-15
    四川
  • 本文字数:2538 字

    阅读完需:约 8 分钟

编程不是写代码,揭秘3种编程新范式:文本、图形和自然语言

在这个数字化不断深入的时代,我们常常听到“编程就是写代码”的说法。然而,这个看似直接的定义,实则掩盖了编程的多样性,使其变得死气沉沉。


事实上,编程是一种表达;是对机器的命令,对算法的叙述,以及对问题解决策略的布局。正如武功的最高境界是“无招胜有招”,编程也得以采用多种不同的方式来实现软件构建,写代码只是一种方法,而非目的。


本文我想探讨一下我眼中的编程方式,以及大胆预测下未来编程范式的演化方向。



如图纵轴所示,我们可以简单地将现在流行的编程方式分为 3 种:文本编程、图形化编程、以及现在正在流行的自然语言编程。文本编程从最初代的 0101110 这种二进制模式,经过一代代程序大佬的改造,逐步从汇编的低级语言转向 Java、C++、JavaScript、python、C#等这种适用于不同场景的高级语言。


注意图像上横纵轴的变化,纵轴表示“输入代码量”的高低,横轴表示“开发效率”和“学习难度”,从左到右是一个开发效率变高,学习难度降低的过程,也就是说,在初代编程语言跨向高级语言的转变中,需要的代码量逐层降低,而学习难度也随之降低,开发的效率却变高了,这是历代先贤们不断努力扩宽编程语言的成果。


整体上,编程语言的发展在向着一个“抽象程度更高、代码量更少、学习难度更低、开发效率更高”的方向上演进。


于是,到了 21 世纪,新一代的图形化编程概念开始接入,这一代语言最基本的雏形是 Scratch , Scratch 是一种面向初学者,特别是儿童和青少年的图形化编程语言, 它允许用户通过拖拽编程块来完成编程的目的,这些编程块代表了传统编程语言中的代码结构,如循环、条件判断、变量等,每个块都代表一些编程命令,当它们被拼接在一起时,可以创建出可以执行的脚本。如下图所示:


无论有没有学过编程的人,第一眼看这张图的时候都能快速理解它的逻辑表达,这就是图形化编程的第一个好处,降低学习门槛,让用户深入到编程的核心,即解决问题的逻辑


在这种情况下, 初学者可以在不需要理解传统编程语言复杂语法的情况下,学习编程的基本概念。这种可视化编程设计的难点就在于程序逻辑的可视化表达,组件层抽象,以及整体成品的设计。遗憾的是,Scratch 只作为儿童辅助学习编程的应用存在,没有进一步针对成人市场推出更广泛的应用,因而止步于此。


但图形化编程的脚步并没有停下,2014 年, Forrester 首次提出了最早的低代码概念: 开发者并不需要使用传统的手写代码方式进行编程,而是可以通过图形化拖拽、参数配置等更高效的方式完成开发工作。

继国外的低代码代表厂商 Outsystems 估值超过 10 亿美元之后,国内掀起了一阵低代码浪潮,开始涌现出大量低代码厂商和应用,例如简道云、伙伴云、活字格、 iVX、宜搭等。


但目前的低代码发展趋势是,大多数产品都是直接面向企业,比如以 aPaaS 为代表的可配置“运行时”产品,自身不生成代码,仅提供开发接口。这样的产品,主要给企业内部使用,例如数字化转型提供支持。另一种则为多个 SaaS 的合集,也就是国内主流的低代码概念,主要是给业务人员使用,解决急迫的业务需求,例如工作流和表单流转的应用。



表单应用型低代码平台


上述的 2 种低代码类型都直接面向企业,离真正的“图形化编程”概念相距甚远,也谈不上是一种崭新的编程方式,充其量只能说是一种快速构建应用的方法,现在市面上的低代码平台中,只有 iVX 这家低代码产品拥有"图形化编程"的潜质,跟前文中提到的 Scratch 有一些相似之处,比如说都有模块化的组件,通过拖拽组件的方式完成如循环、条件判断、变量等代码结构,如下图:


iVX 逻辑表达


通过对比上述 Scratch 的逻辑表达方式,你会发现这种通过图形化的表达来构建程序的模式,正是"图形化编程"的本质,也就是剥离复杂的语法规则,回归程序逻辑。当然,平台本身必须具备“图灵完备”的逻辑表达,否则一样不能被称为是合格的编程方式。


在这点上,iVX 做得也比较完备,而且面向个人开发者,我个人是比较看好的。图形化编程是一种崭新的编程范式,传统的高级语言经过几十年的发展,到现在依旧遵循着古老的文本逻辑和语言架构,导致开发效率迟迟不能提升,可以说,软件开发行业发展至今,已经明显地遇到瓶颈,跟高级语言的束缚脱不开关系。

我们接下来要谈的第三种开发方式,就是这种观点的最好体现,也就是新一代的自然语言编程。


如果大家还没看 OpenAI 最新的开会者大会(B 站上有,可以自己搜),我可以简单总结下:你现在可以通过自然语言创建 ChatGPT 的定制版本,这个定制版本就被称为 GPTs,例如:GPTs 可以帮助用户学习任何棋盘游戏的规则、帮助教孩子数学或设计贴纸,你也可以为 ChatGPT 提供指示和额外的知识,并选择它可以做什么,比如搜索网页、制作图片或分析数据;将自己制作的 GPTs 上传到商城,你可以获得收益,享受创作分成。


这无疑是属于 Chatgpt 的 App Store 时刻,用自然语言创造的应用程序将被认可、并获得收益分成,这意味着没有任何编程基础的普通人也能通过口头对话,制作出属于自己的应用程序,这种实现方式进一步降低了编程的门槛,甚至很多人都不觉得这是“编程”。


当然,现在的自然语言编程还处于襁褓期,但展现出的潜力已经相当巨大,通过口头编程的方式不仅极大地降低了门槛,而且将传统软件的开发效率远远甩在身后,这是一条几乎看不到尽头的路,路的两边充满了鲜花和掌声,因为它的意义之深远、功能之强大,几乎赋予了每个人强大的编程基础。但你要是问我这会不会是未来编程的大一统方向,我的回答依旧是“不会”。


原因很简单,自然语言的精确度不够,特别是稍微复杂一点的流程,自然语言没法精确表达其中的逻辑,因为程序要实现的具体问题过于复杂,正如我们需要数学语言来描述数学世界一样,编程语言就是用来描述复杂代码世界的一种不可或缺的方式,要说真的有什么能把编程全覆盖的话,我想那就是 AI+低代码的未来,也就是终极时代,Ai 自动化编译所有程序,那个时候任何的编程交互方式可能都会被取代了,再讨论任何编程方式都已经没有意义。


以上就是我关于 3 种编程范式的解释,一句话总结:就是传统高级语言的编程方式需要改进,图像化编程或将成为主流,自然语言编程的上限不高。


当然,欢迎打脸,我也期待有这么一天,全人类都可以仅凭口头语言创造出任何想要创造的程序,即便迎头痛击,我也会满心欢喜地承受这一切~


欢迎一起讨论,留下你的见解。


用户头像

hongdou

关注

还未添加个人签名 2023-10-30 加入

还未添加个人简介

评论

发布
暂无评论
编程不是写代码,揭秘3种编程新范式:文本、图形和自然语言_编程_hongdou_InfoQ写作社区