CppCon 2016: Dan Saks “extern c: Talking to C Programmers about C++”

https://www.youtube.com/watch?v=D7Sd8A6_fYU

https://github.com/CppCon/CppCon2016 PDF版本的slides

这个视频我是不知道从哪里点击进来的,觉得这个标题挺有意思的就看了,没想到这个还是CppCon 2016的keynotes.

整个视频几乎没有怎么谈到C++,而是在分析为什么C++这个语言不能被C社区所接受。之所以没有被接受几乎和C++技术本身没有什么关心,而是C社区开发者固有观念。

这个过程非常有趣,大致就是作者写了一个程序对比C/C++开发上的差异,在写C版本的时候回应还是很不错的,但是写C++版本的时候C社区的开发者就开始质疑是否存在性能问题或者是增加复杂性。即使作者后来写了比较详细的性能对比程序,发现其实C++在很多时候性能是很不错的,C社区的程序员也很难接受,认为对比不公平或者是程序太简单。

然后作者花了差不多30分钟在分析为什么会产生这种现象,主要原因就是所有开发者都有自己的mindset/frame, 加上各种心理学效应。这些东西短时间是很难改变的,必须使用某种类似和平演变的方式。因此C++如果想让C开发者能接受的话,必须更加强调之间的共同之处以及简化迁移成本,现在看上去的确是做了不少工作( https://isocpp.org/wiki/faq/mixing-c-and-cpp )

有兴趣可以看看PPT和视频。另外作者提到了以及经典的话,这话翻译成为中文大致就是“不要认真,认真你就输了”。原文是,如果你尝试去说服别人的时候,不要去争论,不然你就输了。("if you are arguing, you are losing – Mike Thomas)