调查:哪些C++框架在2024年主导生产环境
C++社区继续令人惊讶。尽管该语言已有近40年的历史,它仍然是高负载系统、游戏、金融和嵌入式开发中最受欢迎的语言之一。但团队在实际项目中真正使用哪些工具和库?我们分析了2023-2024年多项公开调查的数据(包括JetBrains开发者调查和C++基金会调查),并总结了关键趋势。
顶级框架:谁在领先?
调查显示,框架明显分为三类:用于GUI和基础设施的“重型武器”、轻量级工具以及小众解决方案。
- Qt — 无可争议的领导者(约38%的受访者)。用于跨平台GUI应用程序、嵌入式系统,甚至汽车行业(例如仪表盘)。
- Boost — 34%。与其说是一个框架,不如说是“标准之前的标准库”。Smart pointers、asio、filesystem——这些模块几乎出现在每两个生产代码中就有一个。
- POCO — 约12%。广泛应用于服务器端开发(REST API、网络服务)和物联网。
- OpenCV — 9%。机器视觉、图像和视频处理——每个计算机视觉项目都离不开它。
- Folly(来自Facebook/Meta)— 5%。在高负载后端和社交网络中越来越受欢迎。
意外热门
今年,调查中首次出现了Abseil(Google)和nlohmann/json。前者是转向C++17/20的公司中Boost的替代品,后者是处理JSON的事实标准。有趣的是,7%的受访者表示他们根本不使用第三方框架——只使用STL和自建工具。
为什么框架选择至关重要?
开发者指出了选择框架的三个主要标准:
- 性能 — 特别是在实时系统中(游戏、金融)。
- ABI稳定性 — 避免在更新时重新编译整个项目。
- 社区和文档 — Qt和Boost在这方面无可匹敌。
趋势:C++走向何方?
调查证实了从单体框架向模块化库的逐步转变。越来越多的团队使用Conan或vcpkg来管理依赖项,而不是包含整个框架。同时,对C++20的兴趣明显增长——模块、协程和范围降低了Boost的需求。
结论:如果您正在启动一个新的C++生产项目,请关注Qt(如果需要GUI)、POCO(用于网络服务)或Abseil(如果团队年轻且喜欢现代标准)。而Boost仍然是万能工具——即使项目形式上使用C++20,它依然被熟知、喜爱并继续使用。