这样考虑一下,如果牛顿定律没有被人类掌握,会不会有计算机语言出现呢?(这个问题反过来已经有答案了)
应该说还是有“理论上”可能性的。我在另一个回答里发过我几年前的文章,包括对刘慈欣的引用和我的评点:
机器人群体能够干人类 98% 的非机械性工作的时代,社会会怎么样?刘慈欣的原文:
我问大家:“那你们的计算机的数制呢?你们都有电脑吧?” 我们再次达成了一致,他们都说是二进制。
披棕色大衣的人说:“这是很自然的,要不计算机就很难发明出来。因为只有两种状态:豆子掉进竹片的洞中或没掉进去。”
我又迷惑了:“ ……竹片?豆子?”
“ 看来你真的没上过学,不过周武灵王发明计算机的事应该属于常识。”
“ 周武灵王?那个东方的国王或巫师?”
“你说话要有分寸,怎么能这样形容控制论的创始人?”
“那计算机……您是指的中国的算盘吧?”“什么算盘,那是计算机!占地面积有一个足球场那么大,用竹片和松木制造,以黄豆做为运算介质,要一百多头牛才能启动呢!可它的CPU 做得很精致,只有一座小楼那么大,其中竹制的累加器是工艺上的绝活。”
“怎么编程序呢?”
“在竹片上打眼呀?那个出土的青铜钻头现在还存在北京的故宫博物馆里呢!它的中文名字叫‘辞头’ ,现在人们用这个名称称呼磁盘上读写的那个部件。周武灵王开发的易经3.2 ,有上百万行代码,钻出的竹条有上千公里长呢……”
我的评点:
用豆子来作为标准化的物理量,用竹管里的稳定水流来驱动处理器。这当然在原理上没有什么不妥,只是限于水流速度,计算慢了一点。但只要设定好程序,应该在复杂问题的处理上远胜于算盘。可惜在我们这个时空,豆子的大小重量各不相同,竹子的管径也有大小之分,如果用这样的非标准化元件来建造计算机,势必造成一个 “1”和另一个“1”在计算机里不等价的结果,这就不是计算机了。假如周武灵王拿出秦始皇的劲头,非要用巨大的人力筛选标准化豆粒和竹管的话,倒不如训练一批计算师来的省事。
在我们这个时空,帕斯卡、莱布尼茨这些牛人也设计甚至制造过一些初步的计算机(计算器)。比如说1642年,帕斯卡造了个机械计算器,用齿轮旋转来实现累加(减),用半径差异10倍的齿轮来实现进位,能够用比人快几倍的速度进行加减法,并用连加和连减来实现乘除。20年后,莱布尼茨看了帕斯卡的计算器,也造了一个计算器,只不过他的计算器不是完全用圆形齿轮,而是用梯形轴来解决进位问题,从而更便捷的进行乘除法计算。
不过,他们的计算器固然精妙,在工业时代之前却必须和周武灵王面临同样的问题——缺乏标准化部件和可靠的动力。没有标准化部件,每个齿轮和轴承都必须耗费能工巧匠的大量时间,否则计算机要么卡死,要么损坏,要么和周武灵王的豆子一样,不同的豆子代表不同的“1”,彻底消灭计算机的准确性。而没有外来动力,所有的部件都必须通过手摇动力转起来,如果想进行复杂运算的话,恐怕工程师节约的计算时间都要用来锻炼臂力还不够,更不用说手摇忽快忽慢,给精密计算部件带来的冲击磨损了。所以直到19世纪,机械计算机始终是少数人的昂贵玩物。
标准化的元件、耐磨损的机械、稳定的动力并不需要等到20世纪中期才出现。从1780年左右开始,英国爆发了工业革命,19世纪初期的工业社会已经能批量生产廉价的标准化金属部件,还有可靠的蒸汽机提供稳定的动力,这足以满足性能远超过“竹豆计算机”的“信息化”了。所以,顺理成章地,在活字印刷术和电子计算机之间,出现了“信息化”进程的一个重要环节——机械计算机。
的确,信息论可以脱离牛顿定律,在纯数学领域发展出来(但和C语言也没有直接因果关系);但
机械计算机必须在工业革命的大背景下制造出来。工业革命的爆发的确和科学进步关系不大,是手工业突破导致的技术升华,但从第一次工业革命发展到第二次工业革命,用机器制造出可以定量分析的精密工具,这就必须用到牛顿的理论力学了。从人类的历史来看,必须到第二代机械计算机——差分机的水平,才会出现软-硬件分离的计算机——差分机。上面的回答也提到了这一点:
机器人群体能够干人类 98% 的非机械性工作的时代,社会会怎么样?1842年这一年,巴贝奇泡到了拜伦的女儿,洛夫莱斯。她愿意为差分机这个超时代的设想投入金钱,还有她自己的才华。她很快理解了巴贝奇的设计思想,并熟练掌握了用穿孔卡片给机械计算机机编程的能力。洛夫莱斯设计了一系列计算方式,在不改变差分机基本结构的前提下,能够让差分机实现计算三角函数、级数相乘、伯努利函数等功能。在此过程中,她还通过反复使用同类卡片等方式,将子程序调用等概念引入计算机行业。
(史上第一个程序员洛夫莱斯)
为什么要到差分机时代才需要“软件”呢?因为第一代机械计算器用的还是半手工化的硬件,必须专件专用,复杂到一定程度就会出偏差,改变运转模式更是绝无可能,所以只能执行单一性质的任务。这种计算器的“软件”实际上在制造的时候就已经植入机器了,不能改动,和硬件几乎没有区分,不能支持一个独立的程序员工作。
等到工业革命发展到和牛顿科学结合的年代,机械部件开始通用化、标准化,在改变运转方式的时候能保证不出问题,这时候才谈得上在一台机器上运行不同的任务,才谈得上有软件,也就是洛夫莱斯mm亲手制作的打孔卡片。但众所周知,第二代差分机实际上没造出来,20世纪的电子计算机才完美地实现巴贝奇的梦想,才能给洛夫莱斯的徒子徒孙们发工资。这个阶段的工业已经脱离了早期手工技艺的层次,完全依赖于牛顿理论支撑技术研发。
总而言之,至少在我们这个星球上,牛顿力学是软件出现的前提,是一切程序语言的爹。现在还需要讨论牛顿力学和C语言的地位对比么?如果一定要在牛顿定律(其实牛顿定律很多,我默认你说的是力学三定律)和计算机相关知识之间找个平衡,我只能说香农的信息熵定义或许可以和牛顿第二定律平辈论交(实际上还是小弟),因为信息论给一个基本的自然性质做了量化定义,和牛顿第二定律给“力”做量化定义比较接近。
相关回答:
你在生活中用过最高端的数学知识是什么? - 马前卒的回答 - 知乎感谢点赞的各位,这个答案随手写的,因为不怎么负责任开始还是匿名。这两天本想完善一下,却发现这个坑实在太大。评论中有人认为我吹牛顿吹过了,大家看一下,兼听则明。
------------------------以下是原答案---------------------------
当然是牛顿啊。你们还是不明白牛顿三定律伟大在哪。牛顿当年写了一本书,叫《自然哲学的数学原理》,根本没有『物理』两个字。牛逼顿之前,人类对自然界的认识基本靠推理(或瞎想)和实验,牛逼顿之后,人类开始用数学工具认识自然了。这里所谓的『认识』,牛逼顿之前,是哲学思辨;牛逼顿之后,是抽象建模、计算、实验。有了计算,才有了工程设计,才有了『科学技术』。这一套认识世界的思想直到现在也没有改变过。
如果你非从信息科学里找牛顿级别的理论,我觉得能有一战的是香农的信息论。A Mathematical Theory of Communication,后来再版时候改了一个字,The Mathematical Theory of Communication
C语言在计算机科学领域中的地位,远远比不上牛顿定律在物理学中的地位。
哦我是说,所有编程语言的总和之于计算机科学,都赶不上牛顿定律之于物理学。