向C语言说再见

来源:互联网 发布:如何使用网络代理 编辑:程序博客网 时间:2024/04/29 05:52

讲授汇编语言的老师或使用过汇编语言的人都知道,汇编语言是最简单高效且干净的语言。那么为何现在汇编语言式微至此?我认为是计算机发展的早期,软硬件并行向前发展,在某些方面相互促进,但是在某些方面相互制约了。CPU没有解决好“线程间隔离与通讯”的问题,导致汇编语言很难用,易出错,难纠错,互相干扰,就像“一碗面条”。C语言的出现使程序员摆脱了这种困境,但其实并没有真正解决这个问题,它只是回避和跳过了这个问题而已。这么多年过去了,英特尔的CPU在提升运算力的同时,也在硬件层面提供了多种保护机制,虽然其目的也许并不是为了重新启用汇编语言,但确实使得解决这个问题变得有径可循了。我在08年开始钻研操作系统,首先要熟悉CPU的工作机制,就发现以现有的现代版的CPU架构完全能够解决“线程间隔离和通讯”的问题。那么为何没有人这样做呢?我想大概是由于现有的软件生态过于枝繁叶茂了,另起炉灶重新再来难度太大吧。


C语言的核心工作机制仍然是“共享内存下的过程调用”,在这个问题上C语言仍然没有质的飞跃,在它看来,整个HOST的资源(核心是内存空间)全部是共享的,没有可靠的“边界”。基于此原因,OS必须“替”用户来完成功能,而不能将内存资源“交给”用户,由用户自己来使用,因为那样太不安全了。简单打个比方,他怕你把厨房给烧着了,于是给你提供各种菜单和各种菜式,就是不给你提供“锅和铲”,不让你进厨房。其实他也是实在没有办法,无论是理论上或实践上,目前都没有突破这个。


目前的开发工具编程语言层出不穷,三年一小变,五年一大变。APP程序员完全处于产业链末端,跟着潮流疲于奔命。其价值并不体现在“对业务的理解和掌控”上,而是体现在“对开发工具的熟练使用”上。年轻时业务上缺乏积累,年长时跟不上潮流。这种本末倒置的情况,耗费了多少程序员的青春。


归根结底CPU上跑的都是汇编语言机器码,只要解决好“可靠隔离和有效通讯”,把内存资源放心大胆的交给程序员去用,没事的!程序员掌握了安全高效而又简单的工具,剩下的就是天长日久的经验积累了,就像律师、医生和作家,越年长越厉害。


vm58完成的就是“可靠隔离和有效通讯”。



0 0
原创粉丝点击