程序员入门教程:学C/C++不能不知道的硬知识

摘要
本文不是为C/C++站台,宣传其为全宇宙最好的语言,而以近二十年的从业经验来分析C/C++的优劣势,提出指导性建议。

4月份发布的全球编程语言排行榜

Java高居榜首,C屈居第二,C++紧随其后,C和C++的比例之和,超过Java5%,python借人工智能和DevOps的东风,扶摇直上,新秀GO语言,投胎技术好,有个好爹,依托容器技术和K8S,迅速走红。

这些是C/C++能做的

  1. 服务器开发工程师
  2. 人工智能
  3. 云计算工程师
  4. 信息安全(黑客反黑客)
  5. 大数据
  6. 数据平台
  7. 嵌入式工程师
  8. 流媒体服务器
  9. 数据控解
  10. 图像处理
  11. 音频视频开发工程师
  12. 游戏服务器
  13. 分布式系统
  14. 游戏辅助

C语言以过程式编程,比汇编更贴近人类思考方式,而迅速兴起,在性能上贴近于机器语言

在开发效率和执行性能上做了一个平衡

在系统控制上,给开发人员更多的自由,这是他的优点,也是缺点。对于资深人员来说,有很大的发挥空间,但对于新手来说,浙江小学二年级一对一辅导就是踩不完的坑,学习成本极高,稍不小心就是内存泄漏,死锁

因此,C语言主要应用场景在操作系统,如Linux;底层组件,如ceph;这些标准化程度高,性能要求苛刻的场景

C++在C基础上,引入对象模型,将数据和方法有机的绑定在一起,比C语言更一步贴近人类思维模式

引入模板编程,替换C中宏这样的语法糖

早期C编写的程序中,内联函数和宏满天飞,现在变成模板满天飞,在执行效率上不相上下,但在调试期,倒引入不少麻烦,实际上违反了接口和实现分离的原则

C++在开发效率上要高于C,执行效率上略逊于C,因此在开发周期要求比较严格,性能要求高的场景,有他的发挥空间,比如游戏的端游,比如行情软件

在客户端,有C#和C++竞争,在服务端,有JAVA、python、go与C++竞争,所以C++的市场份额就比较尴尬

C/C++由于底层绑定比较紧,所以在跨平台这块存在很高的难度,特别是大规模的软件系统,要考虑的可能性更多

在boost逐渐发展壮大后,这些情况会逐渐好转。boost为了跨平台,不得不牺牲一些平台特性,在性能上也会有一定损失,因此在一些应用场景中,还会存在定制自己API库的场景存在,相较于之前没有boost时代,依然要好很多

C/C++因为其自由度高,百花齐放,即使是同一个功能,也能整出个N多花样,开发人员需要在选择困难症中,痛并快乐着。这些状况,会随着标准化程度不断提高,而减少,但永远不会消失

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值