调查:生产环境中使用的C++框架
尽管C++语言历史悠久,其生态系统仍在持续积极发展。然而,与Python或JavaScript世界不同(那里流行框架的列表每年都在变化),C++的情况更为保守。为了了解开发者在实际项目中真正依赖哪些库和框架,我们研究了2023-2024年多项调查的数据,包括JetBrains和C++用户社区的年度调查。
以下是受访者(从事C++生产环境开发)答案中稳定出现的五大领先框架。
1. Qt —— GUI之王,不止于此
Qt仍然是无可争议的领导者。根据调查数据,在商业项目中使用C++的开发人员中,约有35-40%使用Qt。这不仅仅是一个图形界面框架:Qt用于网络、数据库、XML、JSON和多线程的模块使其成为一个完整的平台。Qt广泛应用于:
- 医疗设备和诊断系统;
- 汽车工业(仪表盘、多媒体);
- 工业自动化和SCADA系统。
2. Boost —— 现代C++的必备品
许多开发者不将Boost视为框架,而是C++标准的“试验场”。然而,在生产环境中,近60%的受访者使用它(通常与其他工具结合使用)。最受欢迎的组件包括:Boost.Asio(网络)、Boost.Beast(HTTP/WebSocket)、Boost.Filesystem和Boost.PropertyTree。值得注意的是:随着C++17和C++20的发布,Boost的部分功能已迁移到标准库中,但在遗留项目中,Boost仍然不可或缺。
3. POCO C++ Libraries —— 轻量级多面手
POCO(可移植组件)是一组用于创建网络和服务器应用程序的库。其在生产环境中的占比约为15-20%。选择POCO的原因在于:
- 纯C++和极少的宏(与Qt相比);
- 内置支持HTTP、FTP、SMTP、SSL;
- 便捷的线程和网络套接字操作。
POCO在金融科技、电信和物联网网关中尤其受欢迎,这些领域对可预测的性能和较小的二进制文件大小要求很高。
4. OpenCV —— 计算机视觉的标准
如果项目涉及图像或视频处理,OpenCV几乎是唯一的选择。调查中,25-30%的开发者提到了它。该库在生产环境中用于:
- 视频监控和人脸识别系统;
- 机器人技术和自动驾驶;
- 医学影像(MRI、CT扫描分析)。
有趣的事实:OpenCV不仅通过C++被广泛使用,还通过Python绑定使用,但其核心和高负载模块始终用C++编写。
5. 专用框架(Wt、Drogon、Crow)
在过去2-3年中,C++ Web框架越来越受欢迎。该领域的领导者包括:
- Drogon —— 异步、高性能(使用