文章 | 机核 GCORES ( ) • 2024-04-23 15:21
知识,是人类得以进化到地球生物链顶端的最重要工具。
在远古的地球上,人类为了捕猎动物聚在一起,通过各种奇奇怪怪的大呼小叫和指手画脚来商量战术。那个时候,人们互相之间只能表达最简单的意思,因为再复杂的含义实在是难以用哇哇的叫声和简单的比划表达出来。
10万年前,人类终于进化出复杂的语言系统,这是人类发展的一次飞跃,因为知识第一次有了可靠的载体。不过语言也有一个明显的缺点,就是无法“保存”。古人没有录音机,只能靠大脑记住一些句子,时不时也会记错,以讹传讹是经常发生的事,所以有些聪明人就把一些句子编成故事、歌曲和诗句,利用情节、音乐和韵律,来帮助大家记忆。这种方法在各民族都有使用——每个民族都有很多传说、歌谣和史诗。这种方法甚至一直在没有文字的民族里沿用了很久,比如以前蒙古传令兵,就是把命令编成歌曲,反复咏唱到熟记,然后在到达目的地后优美的“唱”出来。
5千年前,人类又发明了文字,因此可以把语言记录下来了。各民族的语言是多种多样的,所以文字的样子也是五花八门。如果你是一个古埃及或者玛雅的学者,恐怕学写字前得先学一段时间画画,而如果你是古代中国人,你就得先学点雕刻。
然而,人类那些丰富多彩的语言和文字,却让知识和信息的传播受到了局限。圣经里有一个故事,说的就是人类因为说着不同的语言,导致无法在一起工作,从而停止了修建通往天堂的伟大工程——巴别塔。(有意思的是,现在最著名的软件集成开发环境Eclipse,它的多国语言翻译项目,名字就叫Babel“巴别塔”),现代考古学家通过著名的罗塞塔石碑,如下图1-1所示——一块以希腊文、古埃及象形文字、古埃及通俗文字刻下的同一片文章,才成功的“破译”出古埃及文字的含义。
图1-1 古埃及文字 图1-1 古埃及文字
斗转星移,时光飞逝,在这个我们称之为信息革命的21世纪,借助文明积累至今的伟大科技,人类终于发明了一种能让所有人都能继承知识的方法,这就是——用数字作为语言的信息技术。

一种真正万能的宇宙通用语言

信息技术的伟大之处,在于不仅仅是提升人类对于物质的生产力,而是前所未有的提升了人类对于知识的生产力。信息科技没有发明什么语言,但是它发明了一种用来表达任何语言的语言,记录任何文字的文字,存储任何信息的信息,这,就是一种万能的通用语言!
人类为了记录信息,发明过很多种方法。最为广泛的就是记录语言的文字。但是,其中有两种让我觉得最为特别。
其中第一种就是“结绳记事”,如下图1-2所示,古代中国人和印加人都留下过结绳记事的描述。大事就打一个打的结,小事就打一个小的结,多个事情就打多个结。或者使用不同颜色的绳子上的结来记录不同类型的事情。这种打结记事的方法,虽然没有能完整的流传下来,但是绳结本身,向我们展示了古人在记录信息方面,富有天赋的一面。
图1-2 结绳记事 图1-2 结绳记事
我们可以注意到,绳结本身具备的状态并不多,只有大小、数量、顺序、位置,甚至是颜色和绳结类型的差别。对比于复杂的文字,这是一种非常简洁的记事方式,因为最简单的拼音文字往往也要用到几十个不同的字母。
另外一个方面,绳结不像文字依赖于语言,而是一种独立的记录信息的方案。这种方案虽然可能粗燥笨拙,但是好处是准确清晰。因为某个人说的“一批羊”可能是十几只,而另外一个人说的“一批羊”可能有上百只。
从结绳记事的创意中,我们能发现,除了语言以外,还有另外一种记录信息的方式,这种方式依赖于自己的一套规则,能使用一些简洁的表达方式,记录客观的事物。而不是如语言一样主要出自自己的主观感受。不管我们是否愿意相信,在研究了结绳记事之后,我们能总结出一个结论:一切“有序”的“差别”都能用来记录信息。
所谓“差别”我们通常称之为“符号”,任何能明确区别于其他状态的事物,都能形成“差别”,也就是符号。我们常见的符号有字母、象形字、数字这些可以雕刻或者书写在一些平面载体上的东西;然而手势、旗语、烽火、信号灯的闪烁同样也能成为一种“符号”;图像和声音则是包含了更加丰富信息的符号;摩斯电码是最广为人知,同时也很接近计算机数字信号的一种符号。绳子上的结,无疑也是这类符号中最古老的一员,绳结的大小、位置、打法,都代表着不同的状态,从而宣称自己的符号含义。
而关于“有序”的概念,在人类语言中也占有重要位置,一切的语言都有自己的语序,虽然可能不会一直恒定,但是总体来说是有一定规律的。比如中文、英文等语言中的主语-谓语-宾语序列,或者日语里面的主语-宾语-谓语顺序。语音的符号序列形成了句子,符号的序列则形成一个或一组含义。一条绳子上的结,就是这样形成了一个绳结的序列,从而变成一个有效的记录事情的方式。
计算机科学中,用来记录信息的方式,从某种方式来说,其实和结绳记事是一样的:它们都不和任何一种人类的语言挂钩,而是有自己独立的表达和解读信息的规则;它们都以直接记录客观事物为目地,而不需要通过主观感受的“转义”;它们采用最简洁的符号来记录信息,甚至简单到只有两个字母。——结绳记事和数字技术记录方法一样,都采用了很简单的符号,形成序列,以此来记录信息。只不过结绳记事的符号是大大小小的绳结,数字技术则是0和1;结绳记事用一根绳子来串起绳结,数字技术使用电磁载体上的磁道来刻写数字序列。
另外一种非常有趣的表达信息的方法,就是人类寻找地外生命的标志牌。在这个标志牌上,全世界最聪明的人,努力的设计了一系列的图案,如下图1-3所示,用来向那些和人类文明相差极远的智慧生命传递信息。
图1-3 标志牌 图1-3 标志牌
在这个图片上我们看到了人类自己的二维投影形象,这能让那些习惯于解读图形的智慧生命所理解;另外还画出了这个标志牌的来龙去脉——从太阳系第三行星出发,绕过了第4、第5行星飞向宇宙;另外还用简单的线条勾勒了人类所认知的所有基础自然学科的基本知识——天文、数学、化学、物理。
我们可能永远无法得知,真正的外星人会怎样看待这一张“充满智慧”的图案。但是我们可以肯定的是,地球文明至今所有最重要的科学知识,都凝聚在这些简单的线条和符号之中。这些符号代表着那些我们发现的自然规律,因此它们是一种表达规则的符号,尽管非常简洁,但是却能发展出无穷的变化来。这种高度凝聚的符号,正是人类另外一个,在信息表达上的高明之处。
我们不但善于铺陈描述一些事物,我们同样擅于总结和归纳。因此我们有了各种各样高度概括的概念,比如勾股定律、微积分、牛顿力学、相对论公式、化学元素周期表……。而在计算机科学中,我们同样继承了这些前辈的伟大遗产,通过用0和1这两种数字来描述这些自然规律的公式,拥有了在计算机中描述和模拟整个客观世界的能力。自然科学多年来使用数学工具来研究客观世界,而计算机科学对这些数学成果编码,从而把自然界的规律变成数字来存储、演算,这些表示规律的数字,就是计算机程序(软件)的重要部分。拥有了这些程序,我们就能利用计算机来模拟客观世界,从而获得重要的信息。事实上,模拟现实一直是计算机领域一个最重要的组成部分,从飞行导航、导弹弹道控制、核爆模拟到逼真的电子游戏——这些都是自然界客观规律,在计算机上表达和运算的成果。
数字除了可以用来静态的表达一些信息,同样也可以用来表达整个客观世界的规律,这些用来表达“动态信息”的数字,正是计算机变得无比强大的根本原因。

唱片、录音机、音乐盒和MP3

要理解数字化的特点,我们可以通过几种不同的记录声音的设备来了解。最古老的音乐盒,如下图1-4所示,通过发条驱动的的一条按照音节的节奏,频率排列的传输带的带动下,拨动一组可以发出不同音高的薄片,从而产生动听的音乐。然后是电唱机和唱片,通过刻画在原型唱片上的痕迹来记录声音,还有使用磁带的录音机,磁带上无数细小的磁性颗粒和磁头互相作用,产生电流的变化从而产生声音。
图1-4 音乐盒 图1-4 音乐盒
这些记录声音的设备,都有一个共同的特点,就是声音的记录载体和声音本身是同一个整体的,也就是说你不能简单的把一个唱片里的歌曲复制到一个音乐盒上。声音作为一种信息,在音乐盒、唱片、磁带里所记录的信号,都是完全不同的,在唱片和磁带里,就算是同样一首音乐,他们所记录下来的形式也是完全不一样的。如果要复制这样的声音,唯一的方法就是播放这些载体,然后从空气中或者电流里重新捕捉这些声音,再记录下来,因此复制的次数越多,失真就会越大。除了复制会导致失真,本身存放音乐的载体如果有些变化,声音也会随着失真,并且这种失真是无法察觉的。
然而在现代计算机的帮助下,我们已经很少使用上面三种设备了。因为我们有了MP3格式的声音——首先我们把声音通过采集设备,生成一系列长长的数字(记录在计算机里),然后使用MP3这种专门用于声音的压缩算法,压缩成比较短的一串数字。之后我们就可以很方便的把这些数字拷贝到任何可以存放数字信息的介质上,并且可以读取这些介质来播放音乐了。
数字信息的好处就在于一旦完成信息到数字的转化,这些信息将100%的记录和还原出来。不管你对数字信息拷贝多少次,都不会有一点点信息在拷贝的过程中丢失。这提供了对信息的一种最好的保持方式,因为我们可以不断采用新的存储介质来复制信息,而不必担心有信息的“损耗”,只要至少有一份拷贝留存下来,就可以把这些信息永久的流传下去。
同时这些信息也和信息的载体变得无关,从而可以记录在各种介质当中,比如硬盘、光盘、U盘,也可以通过电话线甚至无线手机网络传输。这种特性让我们在信息的存放、传输、利用上得到非常大的便利。我们不再需要像以前一样,对图像用胶片和化学药水来处理;对声音用唱片磁带来存放;对文字则用笔、纸、印刷机。我们可以用统一的一种设备——计算机,来对所有种类的信息,进行保存、修改、传输、展现。任何可以存放数字信息的介质,都可以用来存放“所有类型”的信息。这种“通用”的信息处理系统,正是基于把信息表达为数字的技术。
计算机本身和音乐盒、电唱机、录音机设备最大的不同,就是它根本“不理解”那些它在处理的“信息”。计算机对于声音、图形、文字或者别的信息,都一视同仁的看成是一个个数字。然后它严格的安装预先设定的“软件程序”去运算和操作这些数字。只有软件才理解数字化的信息。——这种让一些信息(软件程序),去处理另外一些信息(声音、图像、文本)的能力,让我们有能力用计算机去处理任何种类,并且可以是海量的信息。这种能力,让我们脱了信息载体和信息格式的局限,从而使我们对于信息的控制,提高到一种前所未有的强大境界。这种强大的信息处理能力,反过来强有力的推动了人类对于客观世界的认识和改造。

《先知》的启示

有一部非常有趣的电影,叫《先知》,剧情概括如下:
1959年,美国马塞诸塞州列辛顿威廉道斯小学,该校即将迎来校庆日,小女孩露辛达•安伯利提出的创意为校长所采纳。校庆日时,学生们将画下自己对未来的设想,并集中放入金属时间囊中埋入地下,准备50年后重新开启。校庆日之后,举止怪异的露辛达用鲜血在墙上写下奇怪文字,并向老师提出警告。
2009年,威廉道斯小学再次迎来校庆日,被埋藏地下50年之久的时间囊重见天日。小男孩凯勒得到露辛达的信,上面没有任何图画,整页布满毫无规律可言的数字。凯勒的父亲约翰夜晚研究这些数字,如下图1-5所示,竟发现这是一组具有预言性的密码。文中的数字清楚记录了世界上过去50年所发生的各种灾难。除此之外,这组数字还包括了接下来将发生的重大灾难。
图1-5 数字密码 图1-5 数字密码

电影中这张纸上的数字,初看起来似乎毫无意义,这些数字让我想起,我们在使用计算机的时候,时常会碰到的另外一个类似的情况——乱码。实际上,如果你用二进制编辑软件,打开任何一个文件(不管是文本文件、图片文件、MP3文件还是可执行文件),都能看到类似下图1-7所示的样子——密密麻麻的很多数字。
图1-6 数字 图1-6 数字
电影中的那些数字,第一次看起来无疑就是一堆“乱码”。 但是如果你明白了这些数字的规律,就能发现,其实这些数字包含了非常重要的信息。比如图中就显示出了02年华航空难的信息:时间5月25日,遇难人数225人,坐标23°59′N,119°40′E。在纸上的代码是:02525225235911940让“乱码”变得有意义的方法,就是理解这些数字所代表的含义。然而理解一个数字序列的含义,需要掌握两个关键的信息:
  1. 数字在这个序列的组合规则:我们要知道这些数字是怎样被划分成一个个信息单元的。例如电影里面的数字“02-5-25-225-2359-11940”,表示“02年-5月-25日-225人-北纬23°59′N-东经119°40′E”,采用年、月、日、人数、维度、经度的规则,组合为一个事件单元。然后每个事件单元依次排列。对于计算机里的数据来说,同样也需要这种规则。我们要针对不同类型的信息,使用不同的组合规则来存放数据,这样我们才能使用程序来解析这些数据。
  2. 这些数字对实际信息的编码规则:电影中的年份信息采用2位十进制数来表示,02表示的就是2002年;而是用经纬度的“度”和“分”的十进制来表达一个经纬度,如2359表示的是23°59′。我们知道这种编码的规则,就能具体解读出具体每一个数字所代表的信息。在计算机中,这种解读的过程叫做解码,对应的,把信息表达成某则规则的数字,叫做编码。所有存放在计算机中的数据(实际上就是很多数字),都有自己的编码/解码规则,这个规则正是用数字来表达客观世界信息的方法,比如说我们用数字来记录声音的频率,音高和时长,通过这些数字来记录和回放一段声音。通常我们光靠肉眼和大脑,很难去准确无误完成这种编码和解码的工作,但是我们借助编写软件,让计算机来做这个事情,却是非常高效的。
计算机所处理的一切数据,实际上都是按照类似电影里的这个方式来表达的,而理解这些数据的工作,正是我们编写软件来做的事情。程序员就好象电影里的“先知”和主角一样,运用对数字和客观世界里的信息的对应规则,来制作处理各种客观世界里信息的软件程序。这些软件程序被放入计算机之后,计算机就拥有了理解和处理对应的客观世界信息的能力。事实上,我们所认为的“乱码”,都是不存在的,那只是因为我们丢失了解读这些数字的程序,没有能力去理解和操作这些数据而已。这些数据还是一如既往的准确的表示着某些信息,就如同电影中还未能被解读的那张写满数字的纸一样。一旦我们理解了这些数字的格式,就能得到这些数字所包含的真正信息,从而让“乱码”变的不再“乱”。
数字代表了某种特定的信息,而软件包含了这些数字的规律。计算机就是用这种简单的方式,通过运行各种各样的软件,来处理对应规则(或者叫格式)的数字化信息。这正是所谓“数字技术”(或者叫“数码技术”)的核心概念。
明天,我们接着聊“文字是如何用数字来记录的”