C/C++会不会被时代淘汰?这个问题跳过了一步,关键是这个问题:

C/C++有哪些其它语言难以代替的特殊之处?

1、对实现细节的控制粒度

一般我们常说:C/C++具有较高的执行效率。其实这句话不是特别准确,有时候它们并不一定效率高。换句更恰当的话说:

C/C++,特别是C语言,控制粒度很细,与机器语言有着相当稳固的对应关系。

如果大家对C/C++感兴趣的话,可以加一下我们的学习交流Q群:637  935  295,免费领取一套学习资料和视频课程哟~

也就是说,高手可以通过C语言写出完全按照自己的想法运行的程序。从C代码可以直接对应到汇编语言,如果你对C语言有足够的了解,代码在运行时实际做了哪些事情,是相当明确的。

C/C++甚至能指导编译器哪些变量优先放在寄存器,哪些函数内联,哪些变量要避免多线程抢夺,均可以进行非常细致的控制。

与此相反,Java、Python等高级语言在执行时会跨越很多层次。高级语言源代码 ->中间语言 -> 虚拟机执行 -> 分解执行流程 -> 实际执行的一系列操作。这其中的每一步都不是那么简单,最普通的一句代码:

c = a+b

会因为a或b的元方法,产生无数的执行可能性。除非仔细分析每一个细节,否则编程者对于最终代码的执行逻辑是缺乏控制力的,也不可能进行汇编级别的优化。

总结来说,C/C++,特别是C语言,有着极为精细的控制粒度,而更高级的现代语言一般无法进行如此细致的控制。

2、由于极高的控制力,在某些领域难以被代替

需要程序员压榨每一分硬件性能的地方并不多,特别是现在的服务器核心数很多,只要能充分利用多核心,每个核心没有完全挖掘也是可以接受的。

一般来说,需要压榨硬件潜力的领域有:

1、操作系统。因为每个人每天都要用操作系统,操作系统(特别是内核和驱动层),对优化要求非常高。例如如果对Windows磁盘读取优化1%,几乎全世界电脑用户都会受益1%。

2、游戏引擎。游戏是硬件进步的原动力,大型游戏开发商总是在尽力压榨每一分硬件性能,在60帧以上无止境优化视觉效果、动态效果。C++一直以来都是编写游戏引擎的首选语言,而且几乎是唯一语言。(游戏开发可以用各种技术,但引擎本身一般是用C++编写)

3、嵌入式程序。由于单片机的硬件性能较弱,存储空间极小,必须编写专用的程序代码,使用高级语言可能导致延迟过大,或容量超出限制。未来“万物互联”的潮流,可能会引发超微型嵌入式系统的再度复兴。

4、加密与安全方向。大部分加密/解密模块,与操作系统一样,每个人每天都会频繁使用,所以用C/C++来深入优化是必须的;另外,很多软件硬件漏洞,例如常见的内存溢出漏洞,也需要编写很精巧的C/C++代码才好利用漏洞,才能编写木马或者直接入侵系统。

总之,C/C++的不可替代性是由它本身的特点决定的。而且目前来看,这种不可替代性在未来几年、几十年也依然不会有变化。

现在的编程语言越来越多,为什么 C 和 C++ 还没有被现在的时代淘汰呢?相关推荐

  1. 双11越来越“高大上”,你的工资还配得上它吗?

    编者按:本文来自DT财经,作者:罗遥,36氪经授权发布. 遥想9年前首个"双11",DT君还是学生党+单身狗.那时,天猫还叫"淘宝商城",品牌数量也和现在不可同 ...

  2. [转贴]WM越来越实用,诺基亚和Symbian还能风光多久?

    Diamond手机的高配置.操控方式的革新以及多媒体方面的再度增强,无不昭示微软手机的PC化策略再度占据发展的主旋律,iPhone手机的满堂彩使微软等智能手机厂商开始觉醒并争相创新,而Google手机 ...

  3. 为什么中国开发不出流行的操作系统和编程语言?

    " 知乎有两个帖子很有意思,中国能不能写出操作系统?中国为什么没有自己的编程语言? 看了很多回答,有的答案写的很认真,按照编程语言出现的时间顺序等梳理:有的也非常认真,但是逻辑是错的:还有一 ...

  4. 听Ruby之父畅谈编程语言的设计

    本文摘自<松本行弘:编程语言的设计与实现> 1-1 自己创造编程语言的意义 通过实际创造一门新的编程语言,可以学到编程语言的设计思路和实现方法.随着开源的普及,创造新编程语言的门槛一下子降 ...

  5. python php区别-JAVA、PHP、Python这3种编程语言有什么区别?

    扫描下面的二维码,"关注"我的百家号. JAVA,PHP Python区别?现在的编程语言越来越多,但真正能在众多的编程语言当中脱颖而出,那也不是件简单的事.目前,世界所有的编程语 ...

  6. python主流编程语言_对5种主流编程语言的吐槽!

    版权说明丨原文出处:微信公众号: Android每日学习 不可否认,想要成为一名优秀的程序员确实是需要掌握多种编程语言.通过这几年的自虐式学习,我也慢慢的掌握了这些编程语言.鬼知道这过程多么痛苦,但也 ...

  7. photoshop是用什么编程语言开发的_为什么中国开发不出流行的操作系统和编程语言?...

    作者:Stitch 出处:www.cnblogs.com/StitchSun/p/12889614.html 知乎有两个帖子很有意思,中国能不能写出操作系统?中国为什么没有自己的编程语言? 看了很多回 ...

  8. 对5种主流编程语言的吐槽

    不可否认,想要成为一名优秀的程序员确实是需要掌握多种编程语言.通过这几年的自虐式学习,小编也慢慢的掌握了这些编程语言.接下来要为大家,介绍五款让人又爱又恨的编程语言! 1.C 语言 C 语言给人的感觉 ...

  9. 为什么中国开发不出流行的操作系统和编程语言呢?

    中国为什么不能开发出自己的编程语言和流行的操作系统呢?是中国的IT产业就这么落后吗? 看了很多回答,有的答案写的很认真,按照编程语言出现的时间顺序等梳理:有的也非常认真,但是逻辑是错的:还有一种是搞笑 ...

最新文章

  1. 水质php202169,基于php的水质查询api调用代码实例
  2. 第四章:通过:driver.getAttribute(value); 获取value的值
  3. 《R数据可视化手册》一1.4 从Excel文件中加载数据
  4. 【CodeForces - 1042C】Array Product(思维,有坑细节)
  5. Java技术大咖为什么都有写博客的习惯呢?
  6. go语言和python-新学语言,选GO还是Python
  7. 《软件工程》总结——第四章
  8. 堆区和方法区的小认识
  9. C# 泛型2---排序
  10. 高等数学 第一章 极限和连续函数
  11. MacBook Air重置开机密码
  12. 自定义View实践:指南针的实现
  13. pandas数据处理
  14. LayaWorld游戏高峰论坛成都站:用新思路探索游戏业未来!
  15. 2019河南对口升学高考试卷计算机专业课,2019河南对口升学高考试卷计算机专业课-9页word资料...
  16. python eel vue_张莽子—
  17. 保研夏令营、考研复试、出国时个人陈述模板与撰写注意事项
  18. el-dialog el-tabs结合样式改造
  19. Linux----SUID提权复现
  20. EBOOT通过bin文件形式读取、下载LOGO

热门文章

  1. 中国医美市场趋势洞察报告
  2. 在线教育行业内容营销洞察白皮书(2021年版)
  3. 互联网日报 | 华为前三季度营收6713亿元;新央企南水北调集团揭牌;易车私有化议案获股东大会通过...
  4. 橡皮擦的英语_从填字涂鸦到英语启蒙,家长口中的儿童版“秘密花园”涂色游戏测评【玩具测评】...
  5. 【Python】Pandas高效加载JSON文件
  6. 【Python】Python中的异常处理
  7. zabbix监控mysql操作
  8. source 1.5 中不支持 diamond 运算符
  9. 初识MongoDB(四)
  10. BZOJ5251:[九省联考2018]劈配——题解