2.1 工业知识是对工业的语言描述
2.1.1 新工业的语言对象
19世纪与20世纪之交出现的哲学研究“语言转向(Linguistic turn)”不仅对20世纪的人文社会科学研究产生了深刻影响,而且也对自然科学研究产生了深刻的影响。“语言转向”强调以语言为对象的科学研究过程,而研究得出的结果、某种理论或体系往往就是某种语言学或者某种知识体系。
哲学、科学技术哲学、学科之间是一个递次包含关系,如图2-1所示。在哲学的语言转向之前,学科研究的都是现实世界,但是转向之后,语言成为每个具体学科的研究对象。科学技术哲学包含计算机哲学、人工智能哲学、系统哲学等,按照继承关系,语言是AI的研究对象,AI主要研究的是与人有关的语言、声音和图像语言背后的意义。
图2-1 哲学与具体学科间的关系
具体到每个学科实践,比如石油领域的勘探开发,在语言转向之前主要研究的是现实世界的油气规律,一般用数学表达式、数学方程等方法实现。在语言转向之后,非结构化的自然语言文本、信号描述的声音等,和传统理论研究的数学手段一样,也成为每个学科的研究对象。把语言当作学科的研究对象,这是以自然语言为基础的知识加工的哲学基础。
当代社会是一个语言及其丰富的社会,随着手机的普及,除了各种文字的自媒体之外,各种视频、语音阅读之类的语言信息也大量涌现,极大地丰富了人们的生活,也必将推动人们思维模式的转变。
中国过去40年的工业化主要是在物质层面的工业化,也就是本体层面的工业化,而未来要以语言为对象实现工业化。
2.1.2 工业知识是一种语言模式
知识用语言来表达,工业知识用工业语言来表达;更进一步,从语言的角度看,工业知识就是工业语言本身,工业知识和工业语言互为表里。
最早的工业知识的语言形式是产品的各种规范,如需求规格说明书、产品规范、测试规范以及产品使用手册等。但随着产品越来越复杂,产品知识越来越多,文字资料汗牛充栋,已经没有人愿意完整地读完哪怕一个小部件的产品说明书了。因此,现在的产品说明书更多的是以影像、图像、视频的方式呈现。
工业语言和日常交流语言的不同之处在于,工业语言是物质能听得懂的,机械设备能够根据其指令运动的。也就是说,携带着工业知识的工业语言是和物质交流的语言,其交流的对象是物质。物质最大的问题是有惯性,有时延,不像与人交流反应特别快。另外,工业语言还要反应工业的系统性,因为机器设备是一个部件间相互联系的整体。牵一发而动全身,每一个部件的动作都涉及相关部件的协同,因此,工业的语言一般都会比较长。
视觉语言是一种新的表达形式,随着自媒体的流行,人们认识世界的方式在发生根本性的变化,对知识体系系统性、整体的认知,需要采用简短的、视觉的方式实现。
在工业领域,将融入更大范围的语言,最终机器将理解自然语言,并按照人的语言自如地运动,实现所想即所得的工业理想。
新工业以PLC为标志,践行的是语言即行动的理念,它和硬件紧密结合在一起,因此PLC的编程和器件或者设备的运动是同时进行的,软件和硬件之间没有明确的界限。PLC的编程过程,与画硬件原理图是一样的,只是PLC的硬件本身提供了软件定义的连接,可以实现软件规定的功能。
C语言脱离了设备的硬件,专门从数字的角度来看系统,实际上是用二进制对整个系统进行描述的尝试。由于进制可以互相转换,因此,有了二进制则所有进制都能实现,如八进制、十进制、十六进制等都可以顺利实现。其中进制数,可以用字母代替,由此语言便和数字对系统的描述对接起来了。
由于计算机和计算机语言成了一种学科,离现实世界也越来越远,因此面向对象的设计技术和思想的提出,本质上是解决思想和实践结合的问题。面向对象的问题在于,对象的属性和活动都是人定义的,而人的认识是有限的,因此,语言成了工业附属品,工业是主角,语言只是配角,语言只是工业的功能和属性的录音器,其自身的潜力并没有得到充分发挥。
如图2-2所示,按照语言发展的过程,语言可以分为以下几种。
图2-2 计算机语言发展的历史阶段
●面向机器的语言:二进制、汇编。
●面向过程的语言:汇编语言、C语言、B语言。
●基于面向对象的语言:最典型的就是C++语言、OC语言。
●面向对象的语言:Java、C#、Python等。
随着计算机技术的发展,计算机面临的需求越来越多,解决的问题也越来越复杂,更高的封装才能解决更加复杂的问题,开发效率才会更高,也更易于学习和开发。如汇编做一年的工作,C语言可能只需要半年,C++只需要三天,Python只需要一天。离机器越远的语言,运行效率越低,开发效率越高,一般称为高级语言;离机器越近的语言,运行效率越高,开发效率越低,一般称为低级语言。低级和高级仅仅指的是语言距离机器的远近。早期由于计算机硬件性能低,大家对程序的要求比较严格,但随着计算机的不断发展,硬件性能得到了大规模提升,程序本身对运行效率产生的影响也越来越轻微,随着项目越来越大,开发效率成了很重要的指标,而且由于高级语言更易于学习,可读性也远远高于低级语言,因此面向对象的语言得到了广泛流行。
计算机语言发展阶段的基本走向是离硬件、离现实越来越远,最终将走向自然语言,因此,自然语言是计算机语言发展的终级阶段。这个过程是一个线性的不断递进的过程,至今还未停止。
但是一旦计算机语言发展到自然语言阶段,人工语言的性质就会发生根本改变。此时不是人为地构造符合工业习惯的语言,而是反过来,工业要实现语言的意图,语言为主,工业为辅,工业为语言提供佐证,因为人的语言是先验的。
自然语言里蕴含了人类最伟大的思想。比如对于某个领域或者某一项技术而言,其最早的那篇开山之作,里面蕴含的思想是对世界最深刻的认知,如果这些文字作品能直接通过软件看见,甚至能够通过机器将这些思想演示出来,那人类认识世界的能力将会得到极大的提升。
所以,人工语言一旦发展到自然语言,则计算机语言的性质就发生了质的改变,自然语言蕴含的巨大能量也将释放出来。
2.1.3 计算机语言发展的终点是自然语言
计算机语言发展的终点会是什么?我们认为是自然语言。
自从软件诞生之后,计算机语言就在不断地发展当中。计算机思想和计算语言是一体两面,每种语言的出现都有其解决当时困难的因素,但同时随着应用的发展,计算机语言的缺陷也会暴露出来,然后一种新的语言又将诞生,取代过去受限制的语言。
计算机语言有几十种,其发展如图2-3所示,终点可以按照C→C++→C#的发展轨迹来探求,遵循从人工到全自动化的发展路径。因此,我们可以认为,计算机语言发展的终极目标就是非人工的语言,也就是自然语言。未来,计算机能听懂人类的语言,按照人的自然语言进行各种操作。现在的智能设备正是朝着这个目标在迈进。
图2-3 计算机语言的发展
与任何技术最终都是为了改善人们的生活一样,计算机语言的好坏也必须经得起用户的检验,才能成为真正服务于社会的技术。