文章目录
  1. 1. 性能与安全
  2. 2. C++ 的生命力
  3. 3. 国内与国外

2020 年是 CPP-Summit 第一次来到深圳,也是赶在了 2020 的尾巴。感谢公司让我有机会参加这种会议见见世面,在此记录下这两天的经历和想法,就当是记笔记交作业了。

简单介绍下这个会议,中文名是『全球 C++ 及系统软件技术大会』。虽然它的英文名里省略了『全球』,但从演讲嘉宾阵容上来看,也算是对得起『全球』二字了:有将近三分之一的演讲者来自国外。官网上的大会主席是『C++ 之父』Bjarne Stroustrup,他今年演讲的主题是《C++ 20 与C++的持续演化》。顺便说下,这个是『真·西佳佳之父』。会议的主办方是一家叫 Boolan 的技术咨询和培训机构,所以会议开始会植入一波硬广,这也算是常规操作了。大会的演讲嘉宾有极少部分是来自这家机构以及大会金主爸爸的,大部分嘉宾都是来自行业内有一定经验的开发者,阵容还算可以。

先说下总体感受:C++ 作为一门亘古不衰的语言,在各行各业都存在着经验丰富的开发者。随着各种更加『现代化』的语言的兴起,C++ 也迎来了更多的变化。不过很多新增语法特性的改进更像是戴着脚镣跳舞,保证对存量代码的向前兼容。在大会上也深深感受到互联网行业对传统软件行业的冲击,甚至讨论了 C++ 这碗饭还香不香的问题。大会的议题总体分为三大类:

  1. 新特性的研究和布道
  2. 性能和安全的实践经验
  3. 研发模式、测试和工程化等方法论

一般这种大会都是分为多个分会场同时演讲的,我只能选其中一些我比较感兴趣的议题去参加,大部分集中在前两类。国外开发者分享的议题大部分集中在第三类,由于今年疫情的原因,都改为线上会议了。国内开发者的分享更侧重于性能和安全,或者尝鲜新特性,尤其是大厂更强调业务落地。这里按时间顺序列出我参加的分享,并附上我的一句话短评:

接下来胡扯下我感受到的几个点。

性能与安全

如果要分析性能,那就一定要涉及到编译器开启的优化选项,不同级别的优化会导致差异很大的结果。有些代码会因为过于简单而被编译器优化没了,从而导致测试结果的偏差。这时候往往需要对照生成的汇编代码来看,推荐一个在线工具:Compiler Explorer

安全方面能做的大都是自动化代码静态扫描工具。C++ 除了接入扫描工具检查之外,也在努力添加新特性,想把一些事情放在编译期去做。好像很多现代化语言都喜欢在编译期保证空值安全,类型安全等等,甚至是编译期就已经计算好了一些常量,推导出了一些结果。想要在编译期做更多事情,就需要语法特性上做更多要求。带来的负面影响就是学习成本高,很难做动态化。比如 Rust,初学者想让自己的代码编译通过都有点难。

C++ 的生命力

C++ 对嵌入式、培训和咨询等行业影响很深,但是移动互联网时代大家更偏向于使用 Go、Python、Rust 等语言。比如有人提到招 C++ 的应届生很难,由于前一阵子深度学习很火,好多都是只会 Python 的候选人。接着也有人回应说深度学习的应用层的确是 Python,但是各种引擎和框架还是需要 C++来实现,这恰恰反映出 C++ 高性能的优势。甚至有人说要是以后大家不学 C++ 了,那么在座的各位待遇就会翻倍了,因为有大量现存的代码是用 C++ 写的,只有我们才看得懂。

大会上好多拥有二三十年 C++ 开发经验的大佬,我这种毕业四年的萌新只能在一旁打 call。大量熟悉底层软硬件的资深开发努力分享经验,做咨询和教育。大家并不希望 C++ 因为过时而构起了壁垒,而是积极拥抱变化,布道更现代化的 C++。

但话又说回来,C++ 的这些新特性很多要照顾已有的旧语法,用起来还是少了内味儿。比如各种现代语言都具有的 Modules 概念,C++至今也并未普及,这也导致 C++ 没有一个公认的制品库管理工具。站在一些现代语言的开发者的视角,C++ 不过是在努力变革求生罢了。尴尬之处就在于,维护 C++ 老代码时没必要升级到新特性(有工作量和风险),若是写新业务还不如直接用上 Go,Java,Scala 等。一门语言的命运啊,当然要靠自我奋斗,但是也考虑到历史的行程。

国内与国外

在一次午餐的时候,我听到隔壁桌聊天说国外开发者讲的东西太虚了。我作为一线开发者深表赞同,也是在『踩坑』后避开了大部分国外开发者的分享。可能这里不仅仅是分享内容不被大家讨喜的原因,主办方的实时翻译效果也不太好。建议主办方考虑下,不要为了追求『全球』国际化而刻意安排国外开发者分享的比例。

为主办方点赞的是现场可以通过贴小心心的方式为分享者打 call。(主办方的小姐姐给了我三颗小心心让我贴给心心比较少的几位,然而我比较耿直,还是送给了我想打 call 的几位分享者)

最受欢迎的当属『C++ 之父』的分享,我觉得这不仅仅是分享内容受欢迎了,『教父』自带的人气和信仰也是很重要的。提问环节甚至有一位华为的项目经理上来就是一句 “Dear father!”,然后在主持人的一通喊停之下来了一通自我介绍,并邀请 Bjarne Stroustrup 来甚至华为参观,想来个拥抱交个朋友。最后说自己没有问题要提问,单纯想膜拜下。(非原话,差不多这个意思)反正把大伙儿都逗笑了。更逗的是线上提问,亮点自寻:

文章目录
  1. 1. 性能与安全
  2. 2. C++ 的生命力
  3. 3. 国内与国外