10.3. 共同的需要

以下是开发者常见需求(排名不分先后):

  • 数据库连接与读写
  • CSV文件处理
  • 压缩(如gzip)
  • 日期时间增强功能
  • 各类计算(矩阵/虚数/方程求解等)
  • 桌面与移动端UI开发
  • HTTP客户端
  • HTTP服务端
  • 异步编程
  • 图像处理
  • PDF处理
  • 后台任务
  • 加密算法
  • 网络通信
  • 序列化
  • 邮件发送
  • JSON处理
  • 配置文件读写(ini/yaml等)

可以确定的是,C++拥有覆盖所有这些需求的库。我们随机列举几个:

这样的例子不胜枚举,但已足以证明:C++不仅库资源丰富,其中一些库甚至启发了其他语言的实现,也有些汲取了其他技术的精华。C++实现的速度和内存效率优势显而易见 —— 有些库仅需几百KB就能实现丰富功能,头文件库(header-only)的设计更极大提升了可移植性。

C++的框架生态同样繁荣:除前述的GTK/QT/Boost等,还有Unreal Engine等重量级框架。最全面的资源列表当属awesome-cpp(https://github.com/fffaraz/awesome-cpp)。

即便是小众编程范式也有对应支持:

至此,结论已不言而喻:很难找到C++缺乏库或框架的领域。但关键在于 —— 这些资源真的可用吗?