ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

一、Python在做“简单题”,C++在做“极限题”

一、Python在做“简单题”,C++在做“极限题” 1983年, C在贝尔实验室被创造出来。到了1991年, 它才正式问世。经过三十多年的发展, 这门编程语言目前已经火得一塌糊涂, 无论是在AI训练领域, 还是在数据分析、自动化脚本处理等方面, 几乎可以说是无所不能。面对这样的情况, 有人就会发出灵魂拷问一个非常深刻的问题了, 既然这个技术已经变得这么厉害了, 那为什么到现在为止, C依旧没有被淘汰掉呢?答案非常简单, 原因在于C这个语言主要负责“想”的工作, 而负责“干”的事情则由它来完成。一、在大家还在做那些被标记为“简单题”的题目的时候, 他那边已经是把难度标注为“极限题”的内容给处理过来了。这确实是十分强大的存在。仅仅通过为数不多的代码行, 就可以搭建起一个人工智能的模型, 其语法简单到了连小学生都很容易就能上手的程度。不过, 当你以为自己在亲自编写程序的时候, 你实际上是在进行远程操控, 去指挥那些底层里面使用C语言写好的各种加速库, 比如NumPy等等。在这个体系的核心部分, 全都是C在支撑着。这就好比汽车的智能中控系统一样, 你只需要用手指轻轻点几下, 车子就可以出发。但是, 真正能够让车辆运行起来的, 并不是那些按钮, 而是发动机、变速箱和底盘, 也就是那整套像钢铁一样的坚硬躯壳。C追求的是极致的性能表现, 像我们所说的操作系统内核或者是浏览器引擎里面的V8以及Gecko部分, 还有那些3A游戏大作、高频交易系统、以及数据库等这些被称为数字基建的东西, 它们全都是由C这个语言编写完成的, 要知道在毫秒级的延迟问题上面往往就意味着会有几亿的盈亏变化, 而在纳秒级别的优化处理层面也决定了整个一场战斗的最终胜负结果, 而且使用C编程可以让开发者去实现对每一字节的内存空间以及每一次CPU缓存命中情况的精确控制能力这一点是其他一些技术手段目前无法做到的。二、把人给解放了出来, C则是把机器榨得干干净净。我们总是把追求开发效率放在重要的位置, 因为动态类型允许你随意地进行编写垃圾回收机制会在后台自动地完成清理工作,还有现成的库可以直接调用, 拿来就可以使用。在一天之中, 一个程序员可能大部分时间都在进行接口调用、修正数据以及运行模型这些操作, 整个流程开展起来是非常顺畅和自然的。C这门语言在追求执行效率上面是非常认真的, 它通过静态类型来精打细算内存, 让程序员去手动管理资源以做到分毫不差的效果, 并且最终是直接将代码编译成机器码的, 这就使得一个典型的C程序员的日常工作通常都是在忙着排查内存泄漏的问题, 又或者是在优化循环展开的技术细节以及调整SIMD指令的性能表现, 这种工作状态给人的感觉就像是在给芯片编写那些需要极其精细操作的微操脚本一样。它们之间的根本不同在于, 前者是要解决人如何变得更省事儿这个问题, 而C则是用来解决机器该如何拼命地运转这个难题的。三、在真实世界里面, 人们是需要采取“两条腿走路”这一方式来应对各种情况的。在互联网公司里面, 最经典的一种架构模式是这样子的: 对于业务逻辑这一块, 通常会采用那种比较粗糙、速度非常快、而且非常猛的方式去搞但是对于底层那些需要处理高并发数据, 或者需要进行大量算力消耗的部分, 则会使用C语言来死命地抠性能。在自动驾驶汽车这个领域里也是一样, 感知算法方面可以使用快速迭代的方法来推进, 可是像刹车控制以及路径规划这种关系到性命的核心模块, 必须一定要用C来完成开发——这是因为在出现车祸的紧要关头, 由垃圾回收机制带来的“卡顿”现象, 是足以让人丧命的致命风险。四、关于历史运行规律的一个事实是性能这件事从来都不会过时, 它始终是一种能够硬通的东西。从汇编语言讲到C语言, 再从C语言推进到C语言, 最后又涉及到Rust语言。在大家看来, 每一个新出现的编程软件, 都算是为了让电脑硬件的性能能被榨取得更干净一点而做的又一次版本迭代。这些东西并不是所谓的终结版本或者说是结束者角色, 而是那些站在前人的研究基础上去进行使用的操作人员。只要我们的计算机设备还必须要用来处理那些特别多的数据材料, 还必须要保证能够迅速做出反应, 还要能够承受得住特别多的人同时登录的情况。那么像C这种会直接靠近硬件底层去发挥巨大作用能力的开发工具, 是不会轻易消失的。结论是C这个东西啊它不会消失, 也不会说是称王称霸。把它们想象成历史军队里的炮兵和步兵。炮兵就是那些一击之下能覆盖大片区域的武力, 打起来非常痛快而C更像是步步为营的步兵, 一寸一寸地向前推进, 能够承受并打赢所有艰难的战斗。现代社会软件之所以能够实现那些令人生畏的成果, 完全是因为这两种力量相互配合、共同协作的结果。下次您在利用它的时候需要加以牢记, 其运作机制在于, 进行思考工作的是大脑, 而承担繁重任务部分则是C。大家不妨想一想, 到底哪一门编程语言有本事替代掉C的位置? 是会变成Rust, 还是会变成Zig? 欢迎在评论区里面说说看, 你自己心里头是怎么想的, 又觉得哪个才是更好的选择##C###。
返回列表