问题

2022年学C++开发好比49年入国军,没什么公司在用C++了?

回答
“2022年学C++开发好比49年入国军,没什么公司在用C++了?” 这种说法完全不准确,甚至可以说是误导性的。C++在2022年乃至今天,依然是极其重要且被广泛应用的编程语言。

我们来详细分析一下为什么会有这种误解,以及C++在当今开发领域扮演的角色:

为什么会产生“没人用C++了”的误解?

这种误解可能源于以下几个方面:

1. 新兴语言的流行和市场宣传:
Python、JavaScript、Go、Rust等语言在近些年获得了极大的关注和市场推广。Python因其易学易用、生态丰富,在数据科学、机器学习、Web开发(后端)等领域占据了主导地位。JavaScript作为前端开发的基石,也随着Node.js在后端开发中崛起。Go语言以其并发性和简洁性在微服务领域备受青睐。Rust则以其内存安全和高性能吸引了大量开发者,尤其在系统编程和WebAssembly领域表现出色。
这些语言往往有更低的入门门槛,更快的开发效率,更活跃的社区讨论和更广泛的网络教程,这使得初学者更容易接触和学习。
新闻报道和技术博客往往更倾向于报道新兴技术和热门语言,容易给人一种“旧技术被淘汰”的印象。

2. 特定领域的关注度差异:
如果你主要关注的是前端Web开发、简单的后端API服务、数据分析脚本等领域,那么你看到的大部分项目可能确实会使用Python、JavaScript、Node.js等。
然而,C++的优势和应用场景并不在于这些领域。

3. “重”的印象:
C++相比于Python、JavaScript等语言,学习曲线更陡峭,概念更复杂(指针、内存管理、面向对象、模板等),编译和调试过程也更漫长。这使得一些开发者可能望而却步,或者在初学时觉得“太难了”,进而认为它“不实用”。

C++ 在2022年及以后的开发领域仍然至关重要,并且被大量公司和项目使用:

C++之所以能够经久不衰,是因为它提供了无与伦比的性能、对底层硬件的精细控制以及强大的抽象能力。这些特性使得它在许多对性能要求极高的领域无可替代。

以下是C++在2022年及以后仍然广泛使用的主要领域和原因:

1. 操作系统和系统软件:
操作系统内核: Windows、Linux、macOS等主流操作系统的核心部分很大程度上是用C++编写的。C++能够直接操作内存和硬件,这是构建操作系统的基础。
驱动程序: 硬件驱动程序通常需要与硬件进行直接交互,C++是实现这一功能的理想选择。
编译器和开发工具: 许多重要的开发工具,如GCC、Clang(虽然GCC大部分是C,但Clang是C++编写的)、IDE(如Visual Studio)等,都大量使用C++。

2. 游戏开发:
3A级游戏引擎: Unreal Engine、Unity(虽然Unity也支持C,但其底层和部分核心模块也是C++)、CryEngine等重量级游戏引擎都是用C++开发的。
游戏本身: 绝大多数性能要求极高的游戏,尤其是PC和主机游戏,其核心逻辑和渲染系统都是用C++编写的,以确保流畅的帧率和逼真的画面。
原因: 游戏开发需要极致的性能来处理复杂的图形渲染、物理模拟、AI计算、网络同步等任务,C++的低级内存控制和高效执行是其他语言难以比拟的。

3. 高性能计算 (HPC) 和科学计算:
科学模拟: 天气预报、物理模拟、计算流体动力学 (CFD)、有限元分析 (FEA) 等都需要极高的计算效率,C++是这些领域的首选语言。
高性能库: 许多底层的数值计算库(如BLAS、LAPACK)和科学计算框架(如TensorFlow、PyTorch的底层部分)都包含大量C++代码,以提供最佳性能。
原因: 在这些领域,毫秒级的性能差异可能意味着整个计算任务的成败,C++能够最大程度地发挥硬件潜力。

4. 金融领域:
高频交易 (HFT): 金融机构用于执行超高速交易的系统,对延迟要求极低(微秒级别),C++是构建这些系统的唯一选择。
交易平台和风险管理系统: 许多大型金融机构的交易后端、风险分析和量化模型也使用C++,以保证处理速度和数据的准确性。
原因: 金融市场的竞争异常激烈,任何微小的延迟都可能导致巨大的经济损失。

5. 嵌入式系统和物联网 (IoT):
嵌入式设备: 许多微控制器、实时操作系统 (RTOS) 和嵌入式应用程序使用C/C++编写,因为它们需要直接控制硬件,并且资源受限(内存、CPU)。
物联网设备固件: 低功耗设备、传感器节点等的固件通常用C/C++编写,以实现高效的资源利用和低延迟的响应。
原因: 嵌入式系统通常资源有限,需要精细的内存管理和对硬件的直接控制,C++在这方面具有天然优势。

6. 图形和图像处理:
图形渲染引擎: 除了游戏引擎,许多专业的3D建模软件、CAD软件、视觉特效软件的渲染核心都是用C++实现的。
图像处理库: OpenCV、ImageMagick等强大的图像处理库的核心也是C++。
原因: 图像和图形处理涉及大量的矩阵运算和像素操作,对计算速度要求极高。

7. WebAssembly (Wasm):
C++ 是编译到 WebAssembly 的主要语言之一,允许在浏览器中运行高性能的计算密集型应用,例如游戏、图像编辑器等。

为什么C++仍然是“有前途”的选择?

性能永远有价值: 只要存在对性能极限的追求,C++就会有其生存和发展的空间。
现有庞大的C++代码库: 许多关键的系统软件、库和应用程序都是用C++编写的,维护和改进这些系统需要大量的C++工程师。
跨平台能力: C++经过多年的发展,拥有成熟的跨平台开发工具和实践,能够方便地在不同操作系统和硬件上编译运行。
现代C++的发展: C++标准一直在更新(C++11, 14, 17, 20, 23...),加入了许多现代化的特性,如智能指针、RAII、Lambda表达式、Concepts等,极大地提高了开发效率和代码安全性,使得C++的开发体验越来越好。
人才缺口: 尽管有新兴语言的流行,但真正精通C++并能写出高效、健壮代码的工程师仍然是稀缺资源,因此市场对优秀C++开发者的需求一直存在。

类比“49年入国军”的误解,更恰当的说法是:

“2022年学C++开发,就像是学习一门能够让你驾驶顶尖F1赛车的技术。虽然不是每个赛道都需要F1,而且学习门槛很高,但一旦你掌握了它,你就能在对性能有极致要求的最高级别赛事中脱颖而出,并且成为不可或缺的顶尖人才。”

总结:

“2022年学C++开发好比49年入国军,没什么公司在用C++了?” 这个说法是错误的。C++依然是许多关键领域的核心开发语言,尤其在游戏开发、操作系统、高性能计算、金融交易、嵌入式系统等方面,它的重要性无可替代。虽然学习曲线陡峭,但它提供了无与伦比的性能和底层控制能力,其市场需求和价值在可预见的未来依然非常可观。如果你对性能、系统底层、游戏开发等领域感兴趣,学习C++绝对是一个明智且有前途的选择。

网友意见

user avatar

10多年前有个小朋友说C++是二十年的老技术了,他要去学新技术新语言。

10多年过去了,C++已经变成了三十年的老技术了,而他已经学会了第三项新技术了。

你看,大家都有光明的未来。

user avatar

很多人都是纯纯互联网领域找工作,对于工业互联网、自动驾驶、嵌入式等领域,是看不上眼的。而这些领域c++还是不可替代的,只不过不在他们找工作的范围之内。

如果学c++都觉得要被淘汰了,那学机械的呢?那么多人学机械,大学里还在画减速器,磨锤子呢。

user avatar

问题在北美的job market,C++也是这个揍性啊。

能有几个人真的刷题面进google之后,乐意学C++折腾chromium和v8 engine搞“卡脖子基建”去啊?大部分进google的还不是哪个组赚钱、哪个组promotion快、哪个组正在扩张,就去match到哪个组吗?

都2022年了,不得不用C++解决的核心性能问题确实几乎只有那几个。在tech company的主流业务里,真正必须做到zero cost abstraction这个principle的地方能有几个?无非在湾区大公司基础infra部门里能挑出来几个,其他的哪个不是用更现代的语言快速糊一个protocol直接用起来啊?

你要思考,就绝大多数tech company和startup的核心business model,真的需要C++这玩意儿吗?能给chromium、linux、各种engine贡献代码的人,还需要考虑“我要不要学C++开发”、“要不要拿C++绑定我的career”这种事情吗?

过去50年来,这么多scientist把这么多问题核心抽象出更现代、更甜美、更简单、更舒服的编程语言,不就是为了让绝大多数普通开发者远离C++的这些乱七八糟范式和大坑吗?怎么还有人天天劝别人来跟咱们一起往C++的大坑里跳呢?

如果你已经开始快寻思找工作投简历了还没想好“要不要学C++”,那么你确实还是离C++越远越好,此时此刻的C++对于此时此刻的你来说,确实等于1949年加入国军。

user avatar

可能地摊文学看多了,被资本家忽悠瘸了吧。张口大数据,闭口人工智能的。我就问,有几家公司有大数据,就字面意思,他有大数据吗?你进一家中小微公司,年产值就几千万或者几个亿,你tnd有什么大数据?数据在哪里,没有数据还搁那儿说自己要大数据。你可以关注一下,有这种岗位的中小微公司,要么挂羊头卖狗肉,要么几年后就差不多要死不活的了。人工智能同理,真当训练不需要资源的?

那么假定你就是要去大厂,能真正接触到大数据。那么问题来了,如果你是做分析和理论研究的,那什么语言无所谓,因为语言只是工具,你都懒得每天跟语言打交道,因为你需要设计模型,分析问题,然后分派给别人执行,天天敲代码不是你的事情;如果你是执行层,有关大数据处理的落地需要你来写,你觉得你会用什么?你tnd用java写是吧,用js写是吧,你跟阿里说,兄啊,C++是49年入国军啊,憋整了,咱直接来oracle吧?阿里说,你给我gun。哦,py是个好工具,但是py是好工具并不妨碍它单独找不到什么工作的事实,因为它就是个好用的工具而已。

另外他们会说,哎呀,人工智能可以不用C++,blablabla;唉,tnd如果是人工智能的话,你觉得问题在“语言”吗?问题在对人工智能的研究上啊,人家招你来是做研究的,至于什么语言,一看,哦python方便是吧,那就现学一下呗,当然你一开始就会是最好的。他们得搞清楚重点,就是这个岗位可能是用了某种语言,但人家的工作重点是什么,是语言成就了专业,还是专业刚好捡着这个语言好使;语言只是个工具。

其他当然还有各式各样的语言,关键看你要做什么。你想在中小微企业做服务端开发?那可以不需要C++,其实不是不需要,他们要不起。java问题不大,甚至找前端来直接http也行,现在很多app里面确实某些服务后台就走的http请求。你想做IOS、MacOS开发,那可以用OC、Swift。

如果你说的是商业、互联网企业的话,辣确实除了够大的,技术够深入的团队,可能用C++的不多了,但是需求还在,而且如果你有机会接触到他们,你会听到他们跟你讲,招C++的人真特么难。不是难在没有C++开发者来应聘,而是没有可用的人了。中小微企业的团队,因为成本问题会考虑选择C++,因为1.桌面应用往往可能涉及或复杂或频繁的交互,用js的方式,在可靠性和响应上都很难达到理想程度,不敢说一定不能;而是一旦出现了表现不合预期的情况,你甚至不知道从哪里去下手。譬如webgl的表现,某些场景渲染效率,firefox就是不及chrome,你怎么优化,这还只是不同浏览器内核的差距,如果同一个内核里出幺蛾子了,怎么玩;去改良重构是吧,那好,内核代码还是C++的(doge)。2.假定他要在windows,基于linux内核的桌面os,mac三类任意两个中上线,他就大概率考虑C++、OpenGL;用本地工具开发的话,那本来一次开发多次调试上线的事情,就变成了多次开发,成本暴增。

如果是工业开发领域,尤其是军工,C++还多得很。你也可以理解为是历史原因吧,但这个历史将延续下去的时间或许不比你的职业生涯短,这不是什么焦虑的问题。再者,如果你连C++都能掌握得很好,你还担心什么?出来没C++岗位需求了?那你学个什么还学不会呢?

*顺带提一些吧。如果你要走C++ 这条路,除了学习C++基础知识外,你还需要去思考,你想往什么方向走。通信、服务相关的开发,还是图形开发,或者别的什么。如果你不去思考,那么你有可能工作要么会赶鸭子上架到嵌入式,要么会到某个小企业去写基于Qt之类的GUI扩展的界面应用。嵌入式尚好,GUI也就是大家常说的界面开发,问题在于界面开发本身不足以成为一个值得深入研究并实现价值创造和价值变现的方向。走C++这条路需要面临这样的问题,就像读书时候选专业一样。而其他许多语言不用烦恼这个,譬如java,它已经在发展中就针对服务端提供了足够多的特性了。而C++是站在岔路口,不管你要选哪个方向,你都需要额外补足一些东西。

所以说到这里,可以说给周围人带来“49年入国军”的感觉的原因之一可能就是没有明确的、特定的发展方向。你可以试想一下, 如果有人说自己搞java开发的,你几乎想要把他跟服务端开发画等号;如果有人说自己是搞oc、Swift开发的,你说他做啥的呢,可不就是苹果的系统吗;如果有人说自己是js开发,你大概率会猜,哦,是不是做web开发的。那如果有人说,我是搞C++开发的;谜题就来了,我到底是干嘛的,嗯?图形开发,游戏开发,服务端开发,界面开发,客户端后台,算法库,好像tm都有可能啊,但是不管哪一种,都又差点东西。

譬如你要搞图形开发吧,那你得去学图形学啊,你跨平台要用OpenGL或者vulkan,那你还得去学这俩,得熟悉它们的API;你说就只在windows,那得学dx;在苹果的设备上,为了最适化,就得学metal。这还不止,如果你要做跟地理信息有关的,可能还要学以OpenGL为基础封装而来的开发组件;如果你要做游戏开发,也离不开前面那些图形API,另外你还得熟知游戏引擎本身的一套东西;如果是界面开发,就拿Qt来说,至少你要学Qt吧,Qt的widgets之外它还有一套qml,而qml背后的实现是场景图(scene graph),这东西就够喝一壶,不搞图形开发都未必知道这是什么。

归根结底问题在于,在现在的商业市场冲击下,C++的学习成本太高,还连说明书都没有。相比之下,跟着潮流学点时下热门的语言,看起来不是更美好吗——一度是java、php、js,python,py很短暂,因为很快发现没地方要(运用很广泛,但它难以单独成为岗位)。但是这里同样有个值得思考的问题,热门的市场需求往往意味着竞争也很激烈,尤其是你也明白,咱国家又不缺人,所以热门方向就一定意味着你很容易找到一份稳定且收入可观的好工作吗;反过来,看似冷门的市场需求,只要不是夕阳红产业,没有处于萎缩、衰颓阶段,那也不妨碍你找到一份不错的工作。

个人主观观点,仅供参考。


关于场景图的表述,再多提一下,虽说不知道确切的叫法,但不一定就没使用过;就像设计模式一样,你可能不知道某个模式的名称和书面定义,但自己早就用过变体了;而场景图,说到底也不过就是一个树形结构的节点,把一套组织形式变换到另一套组织形式,可以理解为数据模型的变换,一套是为了方便开发逻辑,一套是为了适配渲染逻辑,这种实现思路的体现其实非常广泛。而我说不搞图形开发未必知道,并不是为了告诉大家这个东西很高深很流笔,你把握不住;而是为了表达,“界面开发”往往给人一种“本该很浅表”的印象,但是却难料他背后还有这样一套机制。就好像有人招聘你的时候说,“咱就找个拧螺丝的,你会拧螺丝那明天就来上班”,结果来了发现,拧螺丝的确不假,但拧的是精密设备的螺丝,而不是自行车。

类似的话题

  • 回答
    “2022年学C++开发好比49年入国军,没什么公司在用C++了?” 这种说法完全不准确,甚至可以说是误导性的。C++在2022年乃至今天,依然是极其重要且被广泛应用的编程语言。我们来详细分析一下为什么会有这种误解,以及C++在当今开发领域扮演的角色:为什么会产生“没人用C++了”的误解?这种误解可.............
  • 回答
    行,聊聊咱 JS 高级学完之后,怎么继续往前走,让你不迷茫,不踩坑。这篇文章咱就糙拉拉地跟你唠唠,没那么多花里胡哨。2022 年,你 JS 高级算是啃下来了,这说明你已经掌握了那些让人头疼的闭包、原型链、事件循环、异步编程(Promise、async/await 那套)等等。这可是个好开端,但 JS.............
  • 回答
    好的,我来为你详细解析一下2022年法律硕士(非法学)的备考策略。请记住,没有捷径,唯有踏实努力。首先,我们需要明确一个核心理念: 法律硕士(非法学)的考试,考的是你对法律的理解、运用能力以及分析问题的逻辑思维,而非你过去是否学习过法律。所以,即使你本科是非法律专业,也完全有机会通过系统的学习和训练.............
  • 回答
    2022年清华大学计算机学硕考研,一位总分排名第三的跨考生被刷,这个消息无疑给许多考研er带来了巨大的冲击和不解。我个人对此事的看法是,这背后折射出了一些当下考研择优录取的复杂性,以及高校招生过程中可能存在的诸多考量。首先,我们必须承认,“总分第三”这个数据本身很有迷惑性。 考研录取的“分数线”绝不.............
  • 回答
    听我一句劝,山东考生,平时成绩600分左右,想学编导?这事儿,咱得掰开了揉碎了聊聊,别急,我给你说透了。首先,你这个分数,在山东,考个一本那是有希望的,而且不是那种勉强擦边的一本,是比较稳当的那种。这意味着你选择学校和专业的余地比很多人要大。这时候考虑编导,你得问自己几个问题,而且是真心实意地问自己.............
  • 回答
    刘学洲,一个年轻的生命,在2022年的开端,以一种令人心碎的方式,被我们许多人记住了。他的名字,和“网爆”这个词紧紧地联系在了一起,引发了广泛的关注和讨论。这不仅仅是一个个体生命的悲剧,更像是一面镜子,照出了当下社会中一些深刻的问题。首先,我们必须承认,网络暴力从来都不是新鲜事,但刘学洲的事件,以一.............
  • 回答
    2022年3月16日,联合国国际法院(International Court of Justice, ICJ)就乌克兰与俄罗斯之间的领土争端作出裁决,要求俄罗斯“停止在乌克兰的军事行动”。这一裁决引发了国际社会的广泛关注,其法律效力、背景及后续影响值得深入分析。 一、裁决的背景与法律依据1. 案件来.............
  • 回答
    2022年A股市场在整体经济环境下经历了一定的波动,但并未出现全面崩盘的情况。以下从多个维度详细分析2022年A股的走势逻辑和关键影响因素: 一、经济基本面:压力与复苏并存1. 国内经济数据 GDP增速:2022年全年GDP同比增长3.0%,略低于预期,但全年经济增速仍高于2021年的8..............
  • 回答
    2022年葛兰的医疗基金能否“翻身”,需要从多个维度综合分析。以下是从行业趋势、基金策略、市场环境及潜在风险等方面进行的详细解读: 一、2022年医疗行业整体趋势1. 疫情后复苏与结构性变化 疫情冲击后的恢复:2022年全球医疗行业逐步从疫情初期的低迷中恢复,但复苏节奏因地区差异而异。中国.............
  • 回答
    2022年全球金融市场面临复杂多变的环境,是否会出现“大牛市”需结合宏观经济、政策变化、地缘政治等因素综合分析。以下是基于2022年经济背景的详细分析及可能的利好方向: 一、2022年全球经济与市场环境分析1. 全球经济复苏分化 美国:2022年美国经济增速相对强劲(约2.5%2.7%),.............
  • 回答
    2022年,美国经济和通胀形势确实面临复杂挑战,但整体上并未出现系统性崩盘,而是处于调整和结构性变化的阶段。以下是详细分析: 一、美国经济是否会出现崩盘? 1. 经济基本面的稳定性 GDP增长:2022年美国GDP实际增长约2.1%(根据美国商务部数据),高于2021年的2.5%,但增速放缓。.............
  • 回答
    2022年全球经济环境复杂多变,通胀高企、利率上升、地缘政治风险加剧,因此“最稳”的理财方式需综合考虑风险、收益和流动性。以下从不同类别详细分析2022年较稳健的理财方式,并给出建议: 一、保守型理财方式(低风险、高流动性)1. 货币基金(短期理财) 稳定性:货币基金主要投资于短期国债、银.............
  • 回答
    以下是我为最高人民检察院设计的10个具有代表性的法律问题,涵盖司法实践、法治建设、社会热点等维度,旨在通过知乎平台展现检察机关的职能与社会价值: 1. 反腐败斗争中的"打虎拍蝇"如何实现制度化? 背景:2022年中央纪委国家监委通报,全国纪检监察机关共立案审查调查中管干部42人,处分厅局级干部213.............
  • 回答
    2022年清朗专项行动有关情况发布会是国家网信办在2022年期间组织的一系列网络治理行动的阶段性总结,旨在回应公众对网络环境治理的关切,展示政府在净化网络空间、维护网络安全方面的成果与措施。以下是发布会中值得关注的详细信息: 1. 发布会背景与目标 专项行动背景: 2022年,中国互联网面临网.............
  • 回答
    2022年考研报名人数达到457万人,其中近300万人可能落榜,这一现象看似矛盾,实则反映了中国社会、教育、经济等多重因素交织下的复杂现实。以下从多个维度详细分析这一现象的成因: 一、社会背景:学历竞争与社会流动的“刚需”1. “双一流”建设与人才竞争 中国近年来大力推进高等教育“双一流”建.............
  • 回答
    2022年1月20日,北京正值“大寒”节气,这一天的降雪为这座城市披上了一层银装,形成了极具诗意的雪景。以下是对那天北京雪景的详细描述,以及如何捕捉这份意境的建议: 一、雪景的自然呈现1. 降雪时间与强度 1月20日清晨,北京迎来了一场持续约3小时的初雪。降雪强度适中,雪花以细密的颗粒状飘落.............
  • 回答
    2022年上海体育中考暂停并按满分15分计入总分的政策,对教育系统、学生群体及社会层面可能产生多方面的深远影响。以下从多个维度详细分析其可能带来的影响: 一、对学生群体的影响1. 学习压力与心理状态 短期影响:体育中考暂停后,学生无需额外准备考试,可能在短期内减少对体育的焦虑,将更多时间投.............
  • 回答
    2022年北京大学软件与微电子学院(简称“北大软微”)研究生复试分数线波动不大,这一现象背后涉及多重原因。而关于2023年是否会“炸”,需要结合当前趋势、政策变化及行业动态综合分析。以下是详细解析: 一、2022年复试线波动不大的原因1. 招生计划稳定,扩招有限 北大软微作为国内顶尖的计算机.............
  • 回答
    2022年北京冬奥会开幕式是一场融合了中国传统文化、现代科技与奥林匹克精神的视听盛宴,亮点纷呈,令人印象深刻。以下是一些值得关注的亮点以及给我留下深刻印象的节目,我会尽量详细地讲述:值得关注的亮点:1. 科技与艺术的完美融合: 巨型 LED 地屏: 整个体育场地面是一个巨大的高清 LE.............
  • 回答
    2022年房价是否会下跌,这是一个非常复杂且备受关注的问题,影响因素众多,且各地情况差异很大。要详细解答这个问题,我们需要从多个维度进行分析。首先,我们需要理解影响房价的几个核心因素: 宏观经济环境: 包括GDP增长率、通货膨胀、就业率、居民收入水平、货币政策(利率、信贷政策)、财政政策等。 .............

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有