大家好,我是张巧龙。

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

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

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

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

原因1:人们总是倾向于使用自己熟悉的技术,总是在不得不改变时才会去改变。

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

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

毕竟,人都是念旧的。

原因2:C和C++从技术上已经很难被优化了。

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

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

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

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

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

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

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

大家如何看待呢?欢迎在留言区讨论,截止到10月8号12点前,点赞前三位同学将获取三个红包(88.88、66.66、33.33)


推荐阅读:点击下方图片即可跳转阅读

-END-

我是张巧龙,一名教电子的大学老师,欢迎关注!

为什么C和C++难以被取代?相关推荐

  1. Chatgpt这么智能,以后会不会取代掉人类?

    人工智能技术的快速发展为许多领域带来了新的机遇和挑战.ChatGPT正是其中一种体现.它具有自动回答用户提出的问题.24小时全天候服务.易于使用等优点,同时也有一些局限性.那么,ChatGPT会不会取 ...

  2. Gartner预测:2025年,人工智能将创造200万个新增就业机会

    来源:人工智能和大数据 概要:对于与人工智能(AI)有关的就业动态来讲,2020年将是极其重要的一年,人工智能将带动整体工作机会的正增长. 对于与人工智能(AI)有关的就业动态来讲,2020年将是极其 ...

  3. IT从业者进阶指南:如何提升自身的不可替代性

    [福利]赠书活动仍在继续中:<大话代码架构> "30岁以后IT从业者该何去何从""大龄IT从业者如何度过中年危机"诸如此类的观点和言论总会被媒体或个 ...

  4. 靖江机器人怎么样_铁饭碗不保?靖江可能消失的12大职业!快看有你的工作没?...

    原标题:铁饭碗不保?靖江可能消失的12大职业!快看有你的工作没? 无人飞机.无人驾驶.智能机器人.... 你能想象这些充满现代感的高科技 正在改变我们的生活吗? 在科技高速发展的今天 人工智能逐渐能够 ...

  5. 鸟哥:程序员应该不断提升自身的不可替代性

    这篇不是原创文章,是一篇来自开源中国的好文,很不错,对迷茫中的程序员有一定的启发作用,分享给大家! 如果把程序员这个行业当成是"体力导向型"行业,而你的优势在于"能加班& ...

  6. SEO的职业发展规划及SEO优化未来的发展方向是什么?

    正文共:3733字 22图 预计阅读时间:15分钟 SEO工具包获取方法在文末 1.什么是SEO呢? 其实即便是互联网行业的朋友,也很多都对这个岗位仅仅是有所耳闻,却不甚了解,只是隐约知道,这大概是一 ...

  7. 单片机可以替代PLC吗?

    单片机可以替代PLC 吗? 这个问题如同面粉能代替面条一样,答案是否定的.第一次听到这个答案可能很多人都有疑问,单片机明明功能那么强大,功能那么丰富为什么不能取代PLC呢? 那么今天我们就来了解一下单 ...

  8. 安防工程商遇六大挑战考验 能否披荆斩棘?

    随着安防系统向数字化.IT化.智能化的转变,安防工程商将面临着更高技术上的竞争,而且由于大批IT厂商.服务商.通信运营商等的加入,使竞争变得更为激烈.安防工程商如何应对这一更高难度.更为激烈的挑战? ...

  9. 为什么一款优秀的移动工具类应用必须开发PC客户端?

    移动大潮气势汹汹,PC端似乎已经一条腿跨进了坟墓.作为一个windows开发人员,难免有些焦灼.windows真的已死吗?真的无用武之地了吗? 也许是人云亦云吧. 突然看到了这篇文章,感触颇深. 文章 ...

最新文章

  1. 使用pip来安装pyOpenSSL
  2. 案例 | 日活提升 50%,海尔智慧厨房平台如何引领行业革命?
  3. java finalize逃脱_JVM【第十三回】:【Java对象存活------finalize()方法】
  4. android怎么ota升级,Android OTA升级过程
  5. python3知识点汇总_35个高级Python知识点总结
  6. Python repr() 函数用法及实例(各种类型转字符串)
  7. 如何让service不被系统杀掉
  8. python distance matrix_Python 矩阵转置的几种方法小结
  9. Key-Value Coding (KVC)
  10. python基础7-函数
  11. plsql 排序_在PLSQL中怎么能取到表中按ID降序排列的前十条记录???
  12. github代理-github
  13. wps多出来的页面怎么办?wps怎么删除不要的页
  14. 使用CentOS7搭建Nat64服务器实现IPv6网段访问IPv4地址
  15. 第十二周项目四:银行系统(一)
  16. 创变数智化,新华三揭开企业上云密码
  17. Java程序员的职业规划是什么?叩丁狼的建议
  18. Python将numpy(.npy文件)存储为.ply文件
  19. 夏令时引起的时间问题
  20. 年终总结——思考,沉淀

热门文章

  1. SAP UI5 ABAP repository的handler class
  2. how is crmd_product_i inserted to db
  3. Cloud Fiori Launchpad
  4. Angular Table test
  5. WordPress,SAP Kyma和微信三者的集成
  6. SAP WebIDE 里 UI5 应用的隐藏文件 project.json
  7. block size在equipment download中的用法
  8. Content management workbench DMWB
  9. Field EXP_REVENUE
  10. Trial SCN WebIDE版本下载