在社区中,聚光灯成员是C++开发人员社区。本周,见PJ Naughter,一个C++ MVP和多产C++开发人员。把它拿走,PJ…
自从2007以来,PJ一直是一个C++ MVP。 http://www.naughter.com 在这里他发布了开源软件和Windows C++开发人员使用的源代码。有大约250000行的开源C++代码可供下载。涵盖的领域包括GUI控件、天文学、日历、硬件集成、多线程、网络协议和数据库。
C++的140个字符或更少?
理想的计算机语言,为那些谁想要控制他们的代码的每一个方面。如果不小心的话,也可以射自己的脚。
为什么C++?
C++是一种完美的语言,在这里你可以在代码中表达高级抽象,同时如果你真的想去,你可以直接去裸露的金属。所有这些都具有其他语言无法比拟的性能、灵活性、可移植性和最小的运行时要求。
你最喜欢C++的什么?
用C++你可以完全控制你所生产的代码。我毕业于电子学院,并喜欢C++和C,源于工程,我没有从C语言或基于Web的语言中得到。因为C++是一种成熟的语言,所以当你需要不可用的特定功能时,你可以调用大量的开源库。
至少?
与C#和.NET基类库相比,MicrosoftVC缺乏现代的GUI和类框架,这对我来说是一个真正的问题。这是我最初驱动我的网站上发布开源C++代码的原因之一。在一个理想的世界里,我希望在未来版本的microsoftvc中看到一个现代化的UI框架,它具有MFC提供的所有功能,而不需要MFC承担的所有负担。一个基于标准的XML类库/框架也将非常受欢迎。我们还需要改进VisualStudio中C++开发人员的帮助系统。如果你能用Bing或Google比本地帮助更快地找到开发者需要的文档或信息,那么帮助系统就失败了。当我没有或不允许在线连接时,我开发了许多环境。此外,自从微软VC 6的时候,C++开发人员的帮助内容质量就已经下降了。在VisualStudio的文档创建团队和C++类的创建者和代码描述者之间,需要有更好的连接。
你会给新的C++开发者什么建议?
C++ 11是一个复杂的新手,我仍然在努力处理它提供的所有新的语言特征。我建议,想学习C++的人应该开始学习基本的OO概念和语法,而不用担心太多的特定技术,比如Win32、MFC、ATL、WTL、STL或WRT。一旦你了解了基本知识,我就开始研究STL库,也许还有一些特定于Win32的代码。然后随着你的经验水平的提高,开始挖掘STL的更高级的使用,并最终开始学习C++ 11的新特性。
你有什么喜欢的C++作者或书吗?
目前我的床边柜上的两本书是Nicolai Josuttis的《C++标准库》的第二版,Anthony Williams的《C++并发行动》。这两本书都非常适合C++开发者,他们正在掌握C++ 11和STL的新特性,其中很多都是VS 2012中的。我同时在阅读这两本书,但是首先阅读JoutTurn书是有意义的,因为它是C++ 11的好入门。
你最喜欢的技术网站在哪里?
除了我自己的网站 www.naughter.com
我应该问什么问题?
微软和微软C++社区应该如何继续C++的复兴?
答案呢?
这是一个难以回答的问题,但我不确定完全依赖于推送C++ 11会产生C++的复兴,所有C++开发者,尤其是微软C++社区的开发者都希望看到这种情况。C++在更广泛的C++社区中非常活跃,但在微软C++社区内却不是同一水平。我相信,C#曾经如此成功并继续如此成功的原因,除了它简洁明了的语法之外,还在于它在每一个Visual Studio副本中都提供了全面的库和工具支持。微软C++需要回到微软VC 6的令人眩晕的高度。这真的是我们C++开发者的日子。
我想我们可以做一些事情:
- 我们需要VisualStudio中的工具来更好地支持C++语言特性。像向导、智能感知和代码片段这样的事情确实使C++开发者的日常工作更加高效。我非常欢迎重新引入旧的microsoftvc6收藏夹,比如MFC类向导。
- C++需要是一种简单的语言来学习和掌握,而不是恐吓。我害怕某些C++ 11的特性需要开发人员知道模板的所有细节、引用类型和奇怪的语法。大多数MFC框架的乐趣之一就是“亲吻”。这提醒我,我仍然需要检查STL的第9频道的视频先进的STL!
- 我们需要C++开发人员的基类库。当有内置的替代品可用时,我真的很想让我的一些开源库退役。在C++或新的非MFC相关类中,如何使类更容易实现服务开发,从而支持低级多线程编码,在这里您不想使用PPL或C++ AMP提供的高级抽象。
- 我已经提到了,但我们需要一个现代的用户界面框架从微软桌面开发。我仍然喜欢MFC,但每次我使用它时,我都会碰到它的一个局限性。当您需要定制UI行为时,无法从CWnd执行多重继承可能会使您的生活变得非常困难。我确实使用WTL相当多,它修复了一些烦恼,我与MFC,但它不是众所周知的或很好地使用MFC,我们真的需要一个在盒子里的库与一流的工具,支持和基础设施的任何MFC更换。
- IMHO,微软vc6如此成功的原因之一是它最终有了六个服务包。我们需要更快地修复VC中的bug/问题,而不是依赖visualstudio的下一个主要版本(可能还有18个月)来修复它们。我真的很喜欢VisualStudio2012的更新现在快得多。
- 如果没有可靠的社区反馈,请不要在每个版本上不断更改visualstudio中的UI。从90年代初开始,许多像我这样长期从事风险投资的老手已经开发出了肌肉记忆,因为他们希望在visualstudio中使用某些键盘快捷键和对话框排序,而且从一个版本到另一个版本的持续变化真的很烦人。
谢谢你,PJ。