(一)为什么要选择C++

如果要说C++的优点,大部分人可能会说C++ 跨平台,性能好,如果要说C++缺点那估计很多人可以说出一大堆。

  • 没有官方包管理工具
  • 没有官方构建工具,虽然cmake 横空出世,有一统江湖的趋势,但是很多项目还是没有cmake支持
  • 内存问题防不胜防,生命周期异常,野指针访问
  • ABI 不兼容
  • 多线程问题
  • 语法复杂,细节太多,入门门槛太高

确实C++ 有很多需要改进的点,相比其他高级语言真的过于复杂。 甚至还有专门针对C++ 的调侃,“C++从入门到放弃”
。那为什么还有这么多项目要选择使用C/C++呢?我从我的经历来说说为什么要选择C++

语言基因

每个公司都有自己的技术偏好,就像我厂客户端开发,很多都使用C++,一个成功的产品可以培养很多有技术的程序员,这些程序员又去开发新产品,自然也会用自己最熟悉擅长的语言,逐渐的这门语言在这个公司就会变得更受欢迎。并且相应的基础设施和基础库也会逐渐完善建立起来。

跨平台

我厂的很多产品都是多平台的,即使放弃桌面端也需要同时支持安卓和iOS。因此项目中使用的基础库通常会考虑使用C++进行开发,这样可以节省人力资源,并编写一份代码以供多个平台编译。此外,C++开发底层库的运行效率也不会有问题。

开源社区活跃

GitHub上有许多C/C++项目,几乎可以找到各种轮子(即开源库)。例如,boost、openssl和sqlite等基础设施都有开源实现。这些开源项目为开发者提供了丰富的资源和解决方案。

CMake 统一构建工具

虽然C++委员会没有提供官方的构建工具,横空出世的CMake 有一统江湖的趋势,而且 boost 库现在都支持CMake 构建了。CMake 支持各个平台。GitHub 上很多不支持CMake的项目也会逐渐的针对CMake的支持

C++ 自身发展

C++一直在不断进步,努力解决开发者面临的各种问题。虽然脚步走得慢,但是C++ 没有放弃。从11版本开始就被称为 “现代C++”,到现在的稳定版本C++17以及实验版本C++20,引入了许多新特性。当然这也带来了更多的学习成本。

后面会分享一些实际项目中遇到的设计问题

相关推荐

  1. ()为什么选择C++

    2024-01-05 19:22:03       34 阅读
  2. 每日题: 为什么使用Spring?

    2024-01-05 19:22:03       14 阅读
  3. 为什么选择AWS?AWS的优势有哪些?

    2024-01-05 19:22:03       11 阅读
  4. 为什么选择AWS?AWS的优势有哪些?

    2024-01-05 19:22:03       6 阅读
  5. 篇文章告诉你为什么使用MybatisPlus框架

    2024-01-05 19:22:03       38 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-05 19:22:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-05 19:22:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-05 19:22:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-05 19:22:03       20 阅读

热门阅读

  1. Linux 系统 find 命令详解

    2024-01-05 19:22:03       34 阅读
  2. 11. C++ inline函数消除重定义

    2024-01-05 19:22:03       36 阅读
  3. cocos creator人开发小游戏免费素材资源

    2024-01-05 19:22:03       38 阅读
  4. 算法:简单加密

    2024-01-05 19:22:03       30 阅读
  5. 快速搭建 linux 源码调试环境

    2024-01-05 19:22:03       38 阅读
  6. 什么是Vue-响应式数据

    2024-01-05 19:22:03       36 阅读
  7. 2023年终总结

    2024-01-05 19:22:03       32 阅读
  8. LeetCode 28.找出字符串中第一个匹配项的下标

    2024-01-05 19:22:03       46 阅读