分享

干掉C/C++(所有的机器学习实现框架(原文章文档括号)都是由C/C++完成的然后绑定了py接口)Rust正发起挑战终极目标是替换C/C++

 山峰云绕 2021-11-21

    (所有的机器学习实现框架(原文章文档括号)都是由C/C++完成的然后在此之上绑定了对人类更友好的python等接口)Rust 正在对它发起挑战它的终极目标是替换C/C++

https://www.toutiao.com/a7029949959160152609/?log_from=aa2ac4a80573f_1637509554176

最近某平台总是给我推送一些应用开发者对C/C++语言的吐槽;还有一些人工智能公司的人对我说:机器学习不是用python吗?为什么用C/C++?。

吐槽C/C++

这里我不想引发论战,我只想试着澄清一下大家长久以来对C/C++的误解。我想这对于那些正在艰难的选择是否学习C/C++的人来讲也许是个参考。

首先C/C++相对于其他高级开发语言来说是个“古圣先贤”,它更倾向于“机器”而不是“人类”,因此学习起来比较“不通情理”和“难以理解”;它运行速度非常快,几乎与汇编语言相当;但是对于快速变化的业务需求却疲于奔命。

因此这些特点决定了C/C++在“操作系统”、“系统软件”、“高性能计算”、“边缘计算”领域,而不是“应用开发”,有着广泛的应用。下面就让我们一瞥C/C++在这些领域的应用吧。

操作系统

几乎所有的操作系统都是由C/C++开发的,包括:apple osx,linux,windows,unix,android等。

系统软件

C/C++开发了著名的系统软件,例如 MATLAB , Adobe系列,office 系列,浏览器系列等

机器学习

所有的机器学习实现框架(例如tenssorflow,torch,onnx等)都是由C/C++完成的,然后在此之上绑定了对人类更友好的python等接口。著名的工具库opencv,Numpy 等都是类似的情况。

编译器,虚拟机,解释器,runtime

目前大部分其他高级语言的编译器,虚拟机,解释器,runtime 都直接或者间接从C/C++受益。

嵌入设备编程

嵌入式编程也是C/C++的主场,尤其是对内存和速度有极高的要求时。虽然也存在着其他部分场景使用java 或者python ,但他们也必须得到C/C++支持。

游戏和元宇宙

游戏引擎、增强现实和虚拟现实目前被C/C++(unreal)和它的“远房表弟”C#(unity)瓜分。许多酷炫的游戏也直接由C/C++开发,例如我个人最喜欢的“反恐精英”。

其他领域

我所提到的C/C++领域仅仅是冰山一角,但当系统性能是关键因素,或者当需要与设备进行近距离对话时,我觉得你可以考虑使用C/C++。

未来前景

C/C++的生命力很强,一直在不断的发展中,以适应时代的需求,但终将有老去的一天,这是无法摆脱的自然法则。Rust 正在对它发起挑战,它的终极目标是替换C/C++,但是正所谓“尾大不掉”,C/C++也许是当前世界应用最广泛的语言。因此Rust 的中期目标是“在新领域,例如区块链,使用Rust;在传统领域将于C/C++长期共存,在其之上提供封装”。

最后,你愿意加入到研发基础软件或者系统软件的研发阵营中来么?有或者你愿意做一个幕后的独行者,为其他应用开发语言提供支持么?如果是,你就毫不犹豫的学习C/C++和Rust。

https://www.toutiao.com/a7029949959160152609/?log_from=aa2ac4a80573f_1637509554176

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多