服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - 为什么C和C++难以被取代

为什么C和C++难以被取代

2021-12-03 22:40今日头条朱有鹏老师 C/C++

在嵌入式开发领域,C和C++却是yyds,几十年一直排名前列,甚至是唯一的选择。这是为什么呢?难道没有其他语言能取代C/C++吗?

大家应该发现了,近些年编程语言发展很快,各种新编程语言非常多,有些热门编程语言如Python js go swift等迅速流行了起来,使用者越来越多。

为什么C和C++难以被取代

但是在嵌入式开发领域,CC++却是yyds,几十年一直排名前列,甚至是唯一的选择。

这是为什么呢?难道没有其他语言能取代C/C++吗?

我个人认为确实很难有。即使技术上有了(如rust)也很难真的流行起来,在市场使用上打败C/C++。原因有这么几个。

一个重要原因就是前两天提到的技术惯性问题。人们总是倾向于使用自己熟悉的技术,总是在不得不改变时才会去改变。

C和C++经过几十年的发展,已经培养了大量的成熟开发者,孵化了大量优质项目和基础软件,这些都是全人类全行业的优质基础设施资产,不可能丢弃,也没必要重写,继续使用是非常合理的选择。

你想让这些成熟开发者放弃C和C++去用某种新语言,除非有非常明确且充分的理由,有大的好处,否则没人会理你。也许你的新语言会好一些,但是没有带来本质优势的95分到98分的好,其实很难说服成熟的传统开发者。

另一个原因是C和C++从技术上已经很难被优化了。因为这两个语言已经是直接操作内存,并且都支持很好的指针操作,内存对象的建立和维护。熟悉汇编语言和CPU指令集的同学们就会清楚,这些特性和硬件层已经深度接轨,效率最高了。

所以不管是java,还是js,python,他们本质上都是在更上层和人(程序员)接轨的部分在做文章,提供更多编程者觉得更好用的特性(譬如垃圾回收机制),然后在内部又使用C和C++式的内存对象建立和管理来实现这些特性。

所以你对这些有所了解后就会发现,在和硬件接轨的嵌入式开发领域,技术上确实很难去优化C和C++了。除非CPU自己发生很大的变化,譬如打破了冯诺依曼结构,否则C和C++稳如泰山。

那在性能上没文章做,在靠近程序员的易用性和语法安全上是否可以优化呢?当然可以,实际上java和go,rust等语言就是这样的思路。

但是要么就是要牺牲效率导致嵌入式领域不想用,要么就是必要性不大发展缓慢推动艰难。rust目前看来最有希望,但是仍然很幼小,继续观望吧!

最后,C和C++本身都是开放使用的。既没有限制任何人使用,又不用付费,没有隐患,为什么不用他呢?

所以综合以上大家就会明白为什么这俩兄弟这么强,并将一直强下去!

原文链接:https://www.toutiao.com/a7034702347804639777/

  • C++
  • C
  • 延伸 · 阅读

    精彩推荐
    • C/C++使用C++制作简单的web服务器(续)

      使用C++制作简单的web服务器(续)

      本文承接上文《使用C++制作简单的web服务器》,把web服务器做的功能稍微强大些,主要增加的功能是从文件中读取网页并返回给客户端,而不是把网页代码...

      C++教程网5492021-02-22
    • C/C++c/c++内存分配大小实例讲解

      c/c++内存分配大小实例讲解

      在本篇文章里小编给大家整理了一篇关于c/c++内存分配大小实例讲解内容,有需要的朋友们可以跟着学习参考下。...

      jihite5172022-02-22
    • C/C++C语言main函数的三种形式实例详解

      C语言main函数的三种形式实例详解

      这篇文章主要介绍了 C语言main函数的三种形式实例详解的相关资料,需要的朋友可以参考下...

      ieearth6912021-05-16
    • C/C++关于C语言中E-R图的详解

      关于C语言中E-R图的详解

      今天小编就为大家分享一篇关于关于C语言中E-R图的详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看...

      Struggler095962021-07-12
    • C/C++OpenCV实现拼接图像的简单方法

      OpenCV实现拼接图像的简单方法

      这篇文章主要为大家详细介绍了OpenCV实现拼接图像的简单方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

      iteye_183805102021-07-29
    • C/C++深入C++拷贝构造函数的总结详解

      深入C++拷贝构造函数的总结详解

      本篇文章是对C++中拷贝构造函数进行了总结与介绍。需要的朋友参考下...

      C++教程网5182020-11-30
    • C/C++C语言实现双人五子棋游戏

      C语言实现双人五子棋游戏

      这篇文章主要为大家详细介绍了C语言实现双人五子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

      两片空白7312021-11-12
    • C/C++c/c++实现获取域名的IP地址

      c/c++实现获取域名的IP地址

      本文给大家汇总介绍了使用c/c++实现获取域名的IP地址的几种方法以及这些方法的核心函数gethostbyname的详细用法,非常的实用,有需要的小伙伴可以参考下...

      C++教程网10262021-03-16