James Martin 在 1982 年出了一本书,叫《Application Development without Programmers》(没有程序员的应用程序开发)。这个 James Martin 是英国信息技术顾问和作家,以其在信息技术工程方面的工作而闻名。
这本书中正式提到了一个术语:A fourth-generation programming language(4GL),第四代编程语言,也被称为 “非过程式” 或 “程序生成式” 语言,
4GL 的目的在于提供更高级别的抽象,以便让编程语言对程序员更加友好、功能更加强大、用途更加广泛 ------ 说人话,就是少写(最好不用写)代码也能把活儿给干了......
嗯,听起来是不是很耳熟?
那么实现了吗?
一定程度上实现了!
比如出了一种叫 “表驱动”(table-driven)的编程,开发人员不使用代码,而是通过在预定义的内存或 “数据表操作命令列表” 中选择操作来定义程序逻辑。
更著名的大概是 SQL(结构化查询语言),虽然老师们仍会建议你认真学习 “复杂且隐晦” 的数据库及计算机专业知识,但你也可以完全不学...... 然后在不懂 bits 和 bytes 的前提下,尽情的使用 DBMS(数据库管理系统)瞎 JB 操作一通......
然后就是最!最!最!最!著名的 “低代码”(low-code)和 “无代码”(no-code)......
至于 C#、Java、JavaScript、Python 这些 3GL,当它们结合了一些具备 4GL 特性的库时,如果不深究的话,大约也可以被称为 4GL,至少是 3GL + 4GL 的混合模式。
既然如此,从时间上推算,4GL 已经出来四十多年了......实际上远不止四十多年,在上世纪 60 年代已经有 Mark IV 了,它可以自动读取输入文件并转换其中的数据,这个 “报告生成器” 其实也是 4GP,只不过当时还没这个概念罢了。 那么程序员这个 “行业” 消失了吗?
哼哼~
时间嘀嗒嘀嗒嘀,GenAI 又来了!
两年前我在技术论坛上看过这么一篇论文,标题叫《Large Language Models: Compilers for the 4th Generation of Programming Languages》,作者探讨了大语言模型(LLMs)作为 4GP 编译器的可能性。
大概意思是说,像 ChatGPT 这样的 LLMs 可以被视为一种 “编译器”,可以将人类的提示 “翻译” 成 Python、Java 这种第三代编程语言。
这些 “提示” 并不完全是人类自然语言,而是一种特定的写作形式,旨在从 LLM 中获取所需的输出。
于是,整个这套模式和流程就成了所谓的 “第四代编程语言”,而 LLM 就是其中的编译器。
......
我不是相关从业者,所以论文中的很多专属名词和理论我都看不懂,但我瞅见了一个 “华点”
------ 折腾半天,“输出” 的不还是 3GP 嘛,一堆编程语言代码!
那这一大堆代码是给谁看的?
程序员!
......
对了,我还没提 “他们以为软件开发的唯一难点是写代码” 这个事儿呢!
这个事儿又能写一大篇...... |
|