与朋友聊计算机的本质

昨天和卞整序讨论计算机的发展方向问题,发现我们如果不理解计算机到底是什么,讨论计算机的发展就是没有意义的,于是发信给几个朋友,一起讨论一下。

邮件主题:你觉得计算机的本质是什么?

以下是各个朋友的讨论:

huangzhenglin:     。。。。。。

工具吧。。
huangyanhua:    工具
yanzhihui:  数字运算
wangpeng: 这个问题好大啊 先说说你的看法把
weishun:   数字电子(不太清楚)
wangke:   我认为是硬件和软件的组合。
husiyi:   计算机的本质我个人认为就是一套数字逻辑电路,一切的操作都是0和1的变化。
我(libo):   计算机从物理上来说,是硬件和软件的组合。软件应该是和硬件等价的,能用软件实现的事情,用硬件都可以实现,反之则未必。而历史上出现的所有工具(可以认为都是硬件),都是人类思维的存储器。因为它们都是人类解决某一问题方法的抽象。这就是我的认为,计算机是人类思维的存储器。
bianzhengxu: 历史上出现的工具可以认为是硬件,我同意.计算机本身是硬件和软件的结合.软件和硬件是等价的,那么从根本上说软件和硬件应该可以相互实现.这就好比是我在问你先有硬件的出现还是先有软件的出现.
计算机先有理论模型,这种模型先于硬件存在,它可以工作与人脑中,相当于是一个纯粹软件的东西. 
不过如果没有硬件,计算机的速度恐怕就真没人脑快了哈.电子计算机只是计算机模型的电子层次的实现,他有自己的速度上限.在思维中工作的计算机模型也有自己的速度上限.以前经常流行的光子计算机说法也有它的速度上限.
所以说,计算机是人类思维的产物,但它不仅仅是人类思维存储器的角色.计算机的发展过程是人类通过另外的途径模拟,复制自身的过程.

husiyi:  如果说飞机是人的翼的增幅,车是人的腿的增幅,那么计算机就是人脑的增幅。硬件相当于设备,软件相当于操作,即使是机器码,亦甚至是电压表的输出值,我也认为这是软件输出的内容。换言之,如果有一个人能够直接用自身感受到电压并说出电压值,那么这个人就相当于一个软件。

我(libo): 

     说到这里,我们应该关注一下软件与硬件的关系。
    “甚至是电压表的输出值,我也认为这是软件输出的内容。”我认为这句话没有搞清楚软件和硬件的关系,当然,软件和硬件的关系相当暧昧,所有人都在误解。
     先说说人们对软硬件的感性认识。
     从辩证的观点来看,没有硬件的概念,也就没有软件的概念。两者是相依而生的。两个的区别在于,一个看得见摸得着;另一个看不见也摸不着,但是可以从执行结果感受得到。所以人们就给有前一个特性的东西起名叫“硬件”,给具有后一个特性的东西起名叫“软件”。久而久之人们便开始简化对“软件”的认识:看起来只能从执行结果感受到的东西。(注意这里的‘看起来’)
     先定义一下“纯硬件”:自然存在的物质。
     让我们再从微观的角度来看一看软件在执行过程中都发生了些什么:电子不断地进出CPU的寄存器和内存,重复上千万次。最后结果出来了,人们的感觉就是,这里面都是“软件”在起作用,我们看得明白的人知道,人们这时候所谓的“软件”实际上是“人类的思维+底层纯硬件”,只不过人类的思维是在执行的过程中体现出来的。
     再来看看硬件吧,我们对硬件的理解也很浅薄,不过和对软件的理解不一样,大多数人认为硬件就是硬邦邦的一块东西,再深一层的理解是它能实现一些功能。到这一层,我们还没有理解硬件,让我们想一想硬件如果实现不了我们想要的功能,它还是硬件吗?再想一想它是如何实现它的功能的?我们就要发现比较有趣的事情了。硬件之所以能实现我们想要的功能,是因为它们有特定的结构,比如飞机有机翼所以可以飞上天空,自行车两个轮子而且有一定的向前的速度,所以才不会倒向两侧。这个结构的本质是什么,是人类思维的固化。即人类的思维以一种结构的形式存在下来。所以,硬件的本质应该是“人类的思维+底层纯硬件”。只不过为类的思维是任何时候都可以看得出来的结构。
     这么看起来软件和硬件应该是一样的了,没错。我想是这样的。不过它们一定也有一些不同的地方,正是这些不同的地方,将它们区分开来。那么什么是不同的地方呢?
     我分析认为,它们的不同就在于前面两段话的最后一句,一个是与纯硬件的晚绑定(软件),另一个是与纯硬件的早绑定(硬件)。这也就是说,我们所谓的硬件是人类思维和纯硬件的紧耦合,而软件则是人类思维和纯硬件的松耦合。从这个角度看,软件和硬件的优势和劣势也就一目了然了。软件的耦合性较低,所以灵活,但是却牺牲了效率;硬件的耦合性较高,所以速度高专用性强,但是损失的是灵活性。

weishun:   

“从物理的角度看,计算机是硬件与软件的结合”,我以为从物理角度看就是一堆废铁呢。“计算机是人类思维的存储器”,历史上出现的很多东西都是人类思维的产物,是人类智慧的结晶。
     我不觉得几个人辩论一番就能给计算机的本质下一个定义,要真正理解计算机,首先要对它的发展史有一个认识,而且不是一般的认识。这类问题在论坛上一般容易引起口水仗,大多数会以各个阵营的愤愤不平收尾,谁也说服不了谁。很多我们看似很明白的概念,其实是因为我们没有真正理解。编程语言之争在各论坛上不时出现,我看到国内业界那些顶尖高手们对某些看似简单问题的看法也几乎没有一致的,不同的经历常常导致人们对事物有不同的看法。做硬件的,对硬件的理解可能并不够;做软件的,对软件的理解也可能还很狭隘。那怎样才能让我们的理解更接近所谓的真理呢?个人认为只有不断地学习,不断开放我们的视野才能办到。怎样开阔视野呢?课余时间多收集资料,读读那些大师们的paper,看看相应领域里面那些颠峰人物都在做些什么。久而久之,就能培养一个正确的观念,毕竟,“正确的观念重于一切(候捷语)”。 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值