社区:见见肯尼·科尔

你好。欢迎来到第一个“社区”帖子中,关注C++和/或开发者社区的成员。今天我们将见到肯尼·科尔和一位微软的MVP,他们很有礼貌地同意“先走一步”

null

肯尼是一个偏向Windows和C++的计算机程序员。他喜欢编写和教开发人员如何利用C++获得最优秀的Windows。肯尼已经发表了很多关于Windows操作系统、网络安全和C++的MSDN杂志以及其他出版物的文章。他目前为杂志写C++窗口的月刊窗口。微软在网络和操作系统安全方面的专业知识获得了微软MVP安全奖。他还拥有微软MVP奖,自2007以来,他对C++开发社区的贡献。他最近出版了 Direct2D基础 在Pluralsight上,目前正在编写第二期,将增加Direct3D和XAML、动画、应用程序和游戏性能优化等内容。

http://kennykerr.ca

https://twitter.com/kennykerr

C++的140个字符或更少?

C++是关于权力的。这是C语言的原始性能加上现代语言的生产力,使得编写大规模应用程序更加容易。

为什么C++?

我喜欢电动工具。钻头、刨刀和圆锯。我也喜欢手工工具。凿子、刨子和螺丝刀。这有点像C++。它有强大的工具,如正则表达式和基于哈希的映射,还有手工工具,如堆栈语义、算法和智能指针。C++语言允许您选择适合的作业工具,无论是Windows上的SyrdYpPTR类型的向量,还是为一个小型嵌入式系统的手工滚堆分配器。这种语言并不禁止你转换范式或打破抽象,它让你很自然地使用或创造抽象。

你最喜欢C++的什么?

老实说,我喜欢这样一种现实,即我可以使用或创建在运行时不需要任何成本的抽象。我可以在不影响性能的情况下编写清晰而健壮的代码。类、模板,以及最近的一些东西,比如完美转发、移动语义等等,都可以协同工作,从而使越来越复杂的系统能够高效、简单地编写。

至少?

我对C++的任何特定部分都没有问题。我知道C++中有一些不太理想的方面,但是他们有自己的脚注,这就是历史。

你会给新的C++开发者什么建议?

不要使用你不了解的功能。C++的优点是你可以根据需要使用尽可能多或很少的语言。随着你对C++的理解不断增长,你自然会开始采用新的技术和语言特征,但不要匆忙。掌握基础知识。C和C++是新开发人员的宝贵语言,因为它们非常靠近机器,所以你对每一件事情都有很好的理解。一旦你把你的头围绕机器和操作系统的基本原理,如果有的话,你将在一个好的位置,以提高你的能力,通过进一步的和继续学习C++语言。

你有什么喜欢的C++作者或书籍吗?

我喜欢斯特劳斯特鲁普的书。我知道他的风格不适合每个人,他的书往往是相当理论和详尽的,但这就是我在教科书中寻找的。如果你真的很想学习C++,但实际上对它一无所知,那么我建议你用C++来学习一个编程的副本:原理和实践。一旦你离开了,就可以选择Scott Meyers的有效C++和更有效的C++来扩展你对C++基本概念的理解。最后,随着你使用C++的成熟,我建议略过萨特和Andrei Alexandrescu编写的C++编码标准。后者写了一本有趣的书,名叫《现代C++设计》,虽然现在还不那么现代,但还是值得一读的。

你认为Visual C++编译器是什么特别的?

我知道微软有时在实现最新的标准时会显得很慢,但我要提醒大家的是,比起解析最新和最新版本的rvalue引用,编译器还有很多东西要做。所有进入后端的优化和特定于微处理器的代码生成常常被批评者忽略。我花了很多时间在ARM微控制器上工作,在微型嵌入式系统中,我没有使用Windows的优势,更不用说Visual C++了。我用ARM自己的编译器在金属上编写所有代码(没有操作系统)。他们的重点是后端,以产生最好的机器代码,但据我所知,ARM甚至还没有听说过C++ 11。当然,我可以使用GCC来获得所有的奇特C++ 11特性,但是我的代码生成会受到影响,当你在金属上编码时,你真的无法忍受糟糕的代码生成。这与VisualC++有什么关系?微软提供了一个良好的平衡,现代C++语言和图书馆的特点与优秀的后端代码生成器。当我回到Windows并再次使用VisualC++时,我总是很高兴。

如果你想成为我们的特色人物或者想推荐一个我们应该成为特色人物的人,请给我们一个提示 脸谱网 ! 谢谢!

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享