作为一名程序员,我相信大家对自己面前的电脑,键盘,鼠标都习以为常,也知道从图灵开始,冯洛伊曼,香农等大佬接连登场,开辟了计算机的新时代
那么,你是否详细的了解过这些天才们是如何与全世界工程师接力,创造出如此庞大的计算机世界吗?
今天,本文讲从故事的角度,避免陷入细节,将计算机的出世分为四个时代,来告诉屏幕前的你,这一人类历史上最伟大的作品,是如何诞生与演变的
艾伦图灵,一个传奇人物,和我们熟悉的外国名人一样,他从小也是成绩不好,倒不是因为学渣,而是他将注意力都放在了自己喜爱的事情上,对于数学,他几乎不需要看答案,就能自创解法,在我看来,数学好的人,就是能看透问题本质的人。
这一天赋与习惯,使他在思考问题时,避免受到前人思想的干扰,往往能有独创性的解法
有一天,图灵在学校了解了一个课题,称为判定问题:
对于给定的数学语言,是否有方法或者程序可以让机器判定某件事的真假,并将结果显示出来
也就是说,是否有一台机器,你先与装好三段论——如果所有的A都是B,C是A,那么C也是B
那么,当你输入——所有男生都是人,小松是男生,所以小松不是人,他会说你错了
这种机器潜力巨大,因为一旦拥有,人民可以从不断重复的判定和计算工作中解脱出来,还不会出错
天才图灵一听就知道,这种机器可以改变世界
于是接下来几个月他都花在这上面,当时他23岁,和我现在一样大
这里我们做简单介绍
想象一个无限长的纸带,充满了格子,上面只有三种情况,空,0,1
这张纸带会被送入给到图灵机进行,机器有一个探头,可以做以下操作
也就是说,只要纸带无限长,每一段01有自己独特的含义,那么理论上计算机可以做任何事情
关于图灵机的具体论述可以看图灵机
这是媲美造物主的智慧,因为直到30年后发现的dna双螺旋结构,基因编码就是使用了类似的逻辑
图灵机是计算机的灵魂,但是需要一具骨架去承载
计算机本质上是在处理信息,而信息在当时看来是一个无实体的东西,如何让一个机器能处理信息?
香农就在思考这个问题
数学上有一种逻辑代数系统,叫做布尔逻辑,任何逻辑表达式的计算结果不是数字,而是真,假两种值
这种逻辑的好处在于,数字是无限的,但是他可以化无限为有限
那么逻辑和电路是否可以这样呢?纵使人们输入的指令千奇百怪,但是最后如果都化成布尔逻辑的话,就可以完美解决任何指令,开关接通为真,关闭为假即可
而人们已经证明,所有的数学问题,都可以归结为逻辑问题,而数学,是描述真实世界的框架,也就是说
所有对真实世界的描述都可以被逻辑电路的开关所描述
有了灵魂与骨架,现在,就差一副肉身了,冯洛伊曼出场
冯洛伊曼,就是天才中的天才
一名教过他的数学家说:如果我在一堂讲座上公布了一道未解的难题,他通常会在讲座一结束就找到我,给我一张字条,上面草草地写下了完整的解法
我们现在来思考一下,如何构造一台计算机
首先,计算机的本质是运算,现实世界的指令被分解为逻辑电路后会有大量的基本布尔逻辑运算,他需要一种算数模块去迅速执行这些,所以机器的核心应该是这种算术模块,同时还要有对应的控制模块来指挥下一步操作
其次,进行复杂操作后会产生一些现成结果,等待二次运算,不能丢掉,所以需要一些逻辑电路进行保存
最后,指令的输入和计算结果的输出需要对应的设备
他们就是cpu,内存与IO
世界上第一台通用计算机“ENIAC”于1946年2月14日在美国宾夕法尼亚大学诞生
在第一台计算机出世后,后面又有很多专家做了重大图突破,包括使用晶体管,硅基芯片等,但是操作机器指令真的只是天才们的狂欢,现在已经很难想象,当年的人们仅仅根据0和1来操作计算机
普通人根本无法踏入一步,即使是天才们也觉得很痛苦,先驱之一的惠勒曾经说过:
那时候,我正试着让自己编写的第一个真正意义上的程序运转起来。有一次,我像往常一样从EDSAC 机房出来,准备去操作打孔机,突然站在楼梯转角处犹豫了,心里意识到,单是给自己的程序除错,可能就要花掉我大半辈子的时间
于是,一位叫做维尔克斯的人提出了“编程”这一概念,简单说就是,先将一些复杂的指令合成一个集合,比如除法,然后需要用到是直接调用就行,也是现在的主流指令集之一,复杂指令集(CISC)的原型
基于这一指令集,汇编语言出现了,同时出现的还有LISP,BASIC
现在我们可以简单梳理一下,计算机的转换为
真实世界的信息 -> 数学描述 -> 逻辑电路开关 -> 机器指令 -> 汇编语言
没错,计算机就是逐渐将真实世界转换为人类可以理解的语言的过程, 这一过程,就是计算机语言的发展过程
维尔克斯基于这一方向,继续研究,发明了CPL,进一步演变为B语言与1972年诞生的C语言
对于程序员来说,c语言出现后,基本就很熟悉了,接下来还有java,python等等
尽管开发软件变得简单,但是对于用户来说,还是需要长期的学习才行,更关键的是,计算机仍然是独立的,没有联系起来,
在美国国防部牵头搭建了阿帕网后,确实计算机可以联系起来,但是非常有限,不仅错误多,而且范围小,而且基于阿帕网的思想,很多地方都建立的自己的局域网,而这些局域网之间互不通信
罗伯特卡恩,就是一位让计算机网络“车同轨”的人,他发现,与其设计各种各样泛滥的网络,不如创建一个统一的接口协议,只要遵守这一协议搭建网络,即使跨越几十年的时间与几万里,也能通信,。这就是TCPIP的诞生,
接口通信思想也成为了编程最重要的思想之一,小松是做android开发,与后端传输数据也经常需要定协议
互联网因此而诞生,而且规模庞大到远超当初的人们想象,互联网中,每一台计算机都是一个节点,节点连接其他节点的数量称为“度”,度越大的节点越有价值,而与他们越近的节点度也变得越来越大,这些有价值的节点聚集起来,成为了互联网的中枢节点,这也成为信息安全,密码学,云计算的起点
AI就不多说了,计算机图形学,尤其是其中光线追踪这类技术的发展,让仿真世界走入了千家万户
我其实蛮期待VR的
不仅仅是那些千奇百怪的技术,而是我觉得VR也许可以让我们这个社会少一些偏见与戾气
男性觉得女性物质不努力,女性觉得男性多情没前途
成年人觉得孩子们叛逆,孩子们觉得成年人控制欲强
想清零的觉得想共存的不顾大局,想共存觉得想清零的被洗脑了
挺俄的觉得俄罗斯在帮中国挡刀子,挺乌的觉得反侵略必然胜利
这一切的一切,都是因为不同生活环境,经历的人们,无法共情,无法切身体会对方所经历的苦难
人是会变的,也是善变的,
而在VR里面,你可以体会任何角色,
今天是可以发动战争的皇帝,明天又成为被抓上战场的壮丁
今天是可以一掷千金的富豪,明天又成为在桥洞下被驱赶的流浪汉
今天是可以后宫三千的男人,明天又成为被抛弃一个人带孩子的的女人
……
人类的共情能力真的很差,往往需要把真实的东西赤裸裸的摆在他们面前,才能明白他们所讨厌的,所偏见某些东西,并不是他们原先所想的样子
而VR,我觉得是一个希望,可以做到这一点
当每一个人都切身体会过别人的处境后,也许会对对方的选择有更多的包容
我觉得,这项技术有彻底消灭歧视,偏见与战争的潜力,这是我对未来科技向善的最大期待
回头来看,计算机的发展,就是从 真实 -虚拟-真实的过程,我们把路径再拉长一点
真实世界 ->
数学描述 - 逻辑电路 - 机器指令 - 汇编语言 - 高级编程语言 - 计算机图形学 - AI - >
VR
而最终, 让人们分不清真实世界与VR,这就是计算机要做的事情。
也许,真实世界也是被一台计算机所创造的,那台计算机,叫耶和华~