C++的意义\nC++ 程序员应该都听到过下面这种说法:\n\nC++ 是一门多范式的通用编程语言。\n多范式,是因为 C++ 支持面向过程编程,也支持面向对象编程,也支持泛型编程,新版本还可以说是支持了函数式编程。同时,上面这些不同的范式,都可以在同一项目中组合使用,这就大大增加了开发的灵活性。因此,C++ 适用的领域非常广泛,小到嵌入式,大到分布式服务器,到处可以见到 C++ 的身影。\n\n下面是一些著名的用到 C++ 的场合:\n\n大型桌面应用程序(如 Adobe Photoshop、Google Chrome 和 Microsoft Office)\n大型网站后台(如 Google 的搜索引擎)\n游戏(如 StarCraft)和游戏引擎(如 Unreal 和 Unity)\n编译器(如 LLVM/Clang 和 GCC)\n解释器(如 Java 虚拟机和 V8 JavaScript 引擎)\n实时控制(如战斗机的飞行控制和火星车的自动驾驶系统)\n视觉和智能引擎(如 OpenCV、TensorFlow)\n数据库(如 Microsoft SQL Server、MySQL 和 MongoDB)\n有些同学可能会觉得,这些应用场景似乎和平时的开发场景有点远啊!你的感觉是对的。有些传统上使用 C++ 的场合现在已经不一定使用 C++,最典型的是个人电脑上的桌面应用。以前 Windows 下开发桌面应用常常用 MFC,微软的 C++ 框架。目前很流行的 Visual Studio Code 主要是用 TypeScript 写的,不是 C++。\n\nC++ 的传统领域有被侵蚀的风险,那是因为和它相竞争的语言远远不止一个,可以说是上下夹攻。\n\n如果专注性能和最小内存占用的话,C 仍然是首选——嵌入式领域用 C 非常多,而 Linux 也是用纯 C 写的。\n如果专注抽象表达和可读性的话,那 Python 之类的脚本语言则要方便得多。\n图形界面(GUI)编程传统上是 C++ 的地盘,但近年来 C# 和 JavaScript 占领了很大一部分市场。\n游戏算是 C++ 的经典强项了,但有了 C++ 写的游戏引擎,游戏用 C# 写也没啥问题了——你可能不一定知道,Unity 游戏引擎上的首选开发语言是 C#,而王者荣耀是用什么游戏引擎呢?答案正是 Unity —— 所以王者荣耀可以认为是用 C# 开发的。\n还有,Go 和 Rust 也加入了战团,对 C++ 形成了一定的竞争……\n目前,跟 C++ 定位差不多、能有直接竞争关系的,也就是既支持高度抽象、又追求高性能的通用编程语言,其实只有 Rust 一种。而 Rust 远没有达到跟 C++ 一样的成熟和普及程度。这也可以从 TIOBE 的排名看出来:C++ 是第 4 位,而 Rust 是第 25 位。\n\n另外,和 C 的兼容性,也是 C++ 的一大优势。虽然现在很多大型程序都混杂了多种语言,但在小项目里,减少语言的数量可以简化开发和部署。
【无标题】C++的意义
最新推荐文章于 2024-11-06 23:10:00 发布