向C语言说再见
来源:互联网 发布:如何使用网络代理 编辑:程序博客网 时间:2024/04/29 05:52
讲授汇编语言的老师或使用过汇编语言的人都知道,汇编语言是最简单高效且干净的语言。那么为何现在汇编语言式微至此?我认为是计算机发展的早期,软硬件并行向前发展,在某些方面相互促进,但是在某些方面相互制约了。CPU没有解决好“线程间隔离与通讯”的问题,导致汇编语言很难用,易出错,难纠错,互相干扰,就像“一碗面条”。C语言的出现使程序员摆脱了这种困境,但其实并没有真正解决这个问题,它只是回避和跳过了这个问题而已。这么多年过去了,英特尔的CPU在提升运算力的同时,也在硬件层面提供了多种保护机制,虽然其目的也许并不是为了重新启用汇编语言,但确实使得解决这个问题变得有径可循了。我在08年开始钻研操作系统,首先要熟悉CPU的工作机制,就发现以现有的现代版的CPU架构完全能够解决“线程间隔离和通讯”的问题。那么为何没有人这样做呢?我想大概是由于现有的软件生态过于枝繁叶茂了,另起炉灶重新再来难度太大吧。
C语言的核心工作机制仍然是“共享内存下的过程调用”,在这个问题上C语言仍然没有质的飞跃,在它看来,整个HOST的资源(核心是内存空间)全部是共享的,没有可靠的“边界”。基于此原因,OS必须“替”用户来完成功能,而不能将内存资源“交给”用户,由用户自己来使用,因为那样太不安全了。简单打个比方,他怕你把厨房给烧着了,于是给你提供各种菜单和各种菜式,就是不给你提供“锅和铲”,不让你进厨房。其实他也是实在没有办法,无论是理论上或实践上,目前都没有突破这个。
目前的开发工具编程语言层出不穷,三年一小变,五年一大变。APP程序员完全处于产业链末端,跟着潮流疲于奔命。其价值并不体现在“对业务的理解和掌控”上,而是体现在“对开发工具的熟练使用”上。年轻时业务上缺乏积累,年长时跟不上潮流。这种本末倒置的情况,耗费了多少程序员的青春。
归根结底CPU上跑的都是汇编语言机器码,只要解决好“可靠隔离和有效通讯”,把内存资源放心大胆的交给程序员去用,没事的!程序员掌握了安全高效而又简单的工具,剩下的就是天长日久的经验积累了,就像律师、医生和作家,越年长越厉害。
- 向C语言说再见
- [JZOJ4924] 向再见说再见
- 【JZOJ4924】向再见说再见
- 向viewDidUnload说再见
- 【JZOJ 4924】 向再见说再见
- 向影印版说再见?
- Android 向菜单按钮说再见
- 【NOIP2017提高组模拟12.17】向再见说再见
- 【JZOJ4924】【NOIP2017提高组模拟12.17】向再见说再见
- 【NOIP2017提高组模拟12.17】向再见说再见
- 再见,C语言
- 说再见
- 说再见
- 网景(Netscape)正式谢幕:向互联网元老说再见
- 网景(Netscape)正式谢幕:向互联网元老说再见
- SQL Server 2005:向系统表说再见
- Windows Server 2008 R2向VPN说再见
- Windows Server 2008 R2向VPN说再见
- 让KVM虚拟机支持console功能
- html5第二天笔记(上)
- Codeforces 350C - Bombs
- c++大数类
- 【笔记】阿里云RAM
- 向C语言说再见
- 远程地址无权限连接Mysql数据库,如何配置
- 进程间通信的方式有哪些?各自的优缺点及应用选择?
- 多主机网络下 Docker Swarm 模式的容器管理
- 导入ecplise项目No projects are found to import解决方案
- 设备接口描述
- android studio搜索手动输入的文字 比如提示等文字时 快捷键ctrl+shift+f
- java中的类加载过程.md
- 使用SVN命令行工具