Stan Lippman是著名的C++语言先驱,CFront编译器开发团队的领导人,经典著作C++ Primer的作者。最近,Lippman受邀加盟微软,成为Visual C++.NET的新任首席软件设计师。这件事情在C++社区中引起了巨大的反响。几乎所有为.NET所困扰的传统C++程序员都感到欢欣鼓舞,连C++之父Bjarne Stroustrup都在私下里表示,这是一件好事,微软早该如此。著名Visual C++网站CodeProject为此采访了Stan Lippman。下面是这份采访的全文。由于工作紧张,没有时间翻译成中文,请大家原谅。
An interview with Microsoft's new Visual C++ Architect Stanley Lippman
Stanley Lippman has a long history with the C++ language and the C++ community in general. He was one of the first users and implementers of C++, he worked under Bjarne Stroustrup at the Bell Laboratories Foundation Project, was the principal software engineer at Walt Disney Feature Animation and has written a number popular titles such as the C++ Primer.
Stanley recently joined Microsoft as the Architect for Visual C++ so I caught up with him to have a chat on what he sees as the past, present and future of Visual C++, and what his own personal goals are for Visual C++.
Firstly I asked Stan what it was that attracted him to work for Microsoft.
First and foremost Stanley loves the concepts behind .NET. “The framework is amazing, rich and interesting.” Stanley has worked on platforms where even simple concepts such as threading are intensely painful to get working, so having a comprehensive Base Class Library that provides you with such things as a comprehensive threading model that can be accessed using any .NET language of your choice is very important.
Stanley was also pleasantly surprised when he realized that C++ was not left out of .NET, but was in a first class .NET language.
It’s important to remember that libraries such as MFC, ATL, WTL and the .NET BCL are outside of Stanley’s role as the Visual C++ architect, so while we talked a little about them, they aren’t officially under his umbrella of influence.
看来Stan Lippman非常欣赏.NET的整体构架设计。
So what do you see as the future of Visual C++, and as the new Architect what are your goals?
Stanley is very clear on the future: “I believe Visual C++ has a prosperous future”. He has met the Visual C++ team and says they have undeniable enthusiasm and energy. His goal is very simple: “I want Visual C++ to be the C++ implementation of choice”. Stanley’s personal goal is to have C++ developers choose Visual C++ not only because of the tools and platform, but because it’s the premier implementation of the C++ standard.
Compiler compliance
In terms of C++ compliance Stanley admits that the latest release (Visual C++ 7.0) isn’t quite there, but the substantial work that has been carried out on the underlying implementation means that moving towards a more comprehensively compliant implementation is within reach. He’ll be pushing forward with compliance especially in the area of templates.
Even though Visual C++ 7.0 does not have the full range of features that Stanley would like to see implemented, he says it is still by far the most compliant implementation of C++ that Microsoft have released. It’s not 100% perfect, but it’s still an excellent compiler with high compliance to the standards. Areas that still have issues are fully documented in the VS.NET documentation in the article titled "Standard Compliance Issues in Visual C++".
Microsoft’s goal is to have a ‘competitively compliant’ compiler – meaning it won’t be 100% compliant. There are a couple of features of the ANSI/ISO standard (for instance the ‘export’ keyword as applied to template classes) that won’t be implemented because they are considered by Microsoft to be obscure and, at this stage, theoretical. Microsoft is however working to ensure that Visual C++ will compile the most popular libraries such as Boost, Blitz, Loki and a fully compliant version of STL. The emphasis is on a level of compliance that allows popular libraries to be compiled, not 100% compliance.
Nick Hodapp, Microsoft’s C++ Product Manager also added that while high compliance is definitely a very important goal Microsoft will not sacrifice code-generation quality or robustness at the cost of extreme compliance. However in recent lab tests they are still beating several popular compilers on conformance tests.
When will we see the next version?
Stanley laughs and says if it were up to him he’d email out updates each week, but there are pesky things like quality control and processes that must be adhered to in anything as complex as Visual C++. With the latest version to be released around February 2002 he would like to see an update for the compiler late the same year, but is unsure as to whether that is possible. He’ll certainly be fighting for an early update. Nick Hodapp backs this up by saying that it’s extremely likely that an update to VC7 will be available next year. Microsoft are investigating the best mechanism to release a compiler refresh next year that would focus on compliance features.
Many C++ developers feel that Microsoft is relegating Visual C++ to the sideline in favour of the newer languages such as C#.
Stanley wants C++ to be far more a part of .NET than it is currently. At the moment the biggest benefit of managed C++ is as a transitional language. You are able to move your native apps into the .NET framework or consume .NET components within your native applications, but it’s not quite the language of choice for developing fully managed applications.
For the pending release of Visual C++ .NET (VC7) Microsoft focused on enabling interop features. VC7 has the best interop scenarios of all the managed languages and includes the ability to have both managed and unmanaged code in the same image. They also focused on enabling optimization technology on the generated MSIL - the result is that VC7 is the only compiler to generate optimized MSIL. In future releases Microsoft will focus on ANSI/ISO conformance (enabling many more features for both managed/unmanaged code), as well as features that will give Visual C++ feature parity with C# - WinForms, for example. Visual C++ will be positioned as the power-systems language for .NET.
VC.NET是唯一一个能够产生优化MSIL指令的语言,也是唯一一个可以在同一个映像中包含受管和不受管代码的语言,所以,它是.NET的系统语言。
Template support and generic programming are a must and Microsoft are very keen to implement codeDOM support, both for ASP.NET and WinForms. With these added features Stanley sees Visual C++ as being the power programmers language of choice for the .NET framework - to compliment it’s current role as the language of choice in unmanaged development. Even without the template support that is currently being pursued Stanley sees Visual C++ as the only language suitable for those who need more than C# or VB.NET can offer.
Stanley went on to congratulate Microsoft for shifting away from being corporate oriented and moving towards being a more developer-centric organization. To this end he will be pushing even more to open up the company to developers and would like to see Microsoft to be even more responsive to the developer community. Microsoft is renowned for pushing ahead with innovation but there can be dangers in moving too far head of not only standards, but also developer’s needs. Stanley will be pushing to ensure that Microsoft listens more to what the developer community has to say while ensuring higher standards compliance.
New features such as those in the C99 specification
On the topic of extending Visual C++ to embrace the new features found in the C99 specification Stanley stated that these are issues for the relevant Standards bodies. There is growing concern that a rift is developing between C and C++, with C++ no longer being a superset of the former. Microsoft’s aim is to have the most standards compliant implementation so if the C++ standard is updated to include new features then Microsoft will work towards implementing them in Visual C++.
Microsoft’s approach to adding new features is whether those features are
- being used in code that other compilers can build, or
- whether those features are compelling enough that it becomes apparent that their customers want them.
Microsoft will not simply implement features because they are specified in the standard. They will implement them when people want them because they are beneficial.
The future
The message is that Visual C++ is definitely alive and kicking and has a very bright future in the .NET world. Stanley's aim is to have the compiler at a point where it’s the benchmark against which all other compilers are compared – in terms of simplicity, fun factor and conformance. It should be easy to use, versatile, enjoyable, and it should be what developers think of whenever they think C++. Continuing improvements in C++ compliance along with future support for ASP.NET and WinForms will ensure that Visual C++ be the power language for .NET and for native development.
As to the question of whether developers will move to C# instead of managed C++ Stanley thinks there will be more of a move from VB to C# than C++ to C#. C++ is the better, more versatile and the only optimised compiler available in .NET.
我的感觉,似乎VC.NET在.NET时代的地位不但没有削弱,而且得到了加强。非常高兴看到这篇评论。
分享到:
相关推荐
Codeproject对现任VC++NET首席软件设计师Stan Lippman的采访
最近,Lippman受邀加盟微软,成为Visual C++.net的新任首席软件设计师。这件事情在C++社区中引起了巨大的反响。几乎所有为.NET所困扰的传统C++程序员都感到欢欣鼓舞,连C++之父Bjarne Stroustrup都在私下里表示,这...
VC、VC++,MFC 正则表达式类库
CodeProject.AI 服务器是一个本地安装、自托管、快速、免费和开源的人工智能服务器,适用于任何平台、任何语言。没有设备外或网络外的数据传输,没有依赖关系,并且可以在任何平台、任何语言上使用。作为 Windows ...
来自codeproject的关于界面的vc++源码集合
ASP.NET SignalR 是为 ASP.NET 开发人员提供的一个库,可以简化开发人员将实时 Web 功能添加到应用程序的过程。实时 Web 功能是指这样一种功能:当所连接的客户端变得可用时服务器代码可以立即向其推送内容,而不是...
在公司里面,经常发现无法在codeproject上下载源码,原因是因为中间少了一段东西,至于是为什么会这样,俺读书少,忽悠不出来。使用方法:点击codeproject上的下载链接时,按住ctrl健,然后迅速去对应的页面拷贝下来...
VC++ 编写的zip的源码,包括压缩与解压缩,可以到codeproject上自己下的
由codeproject的TabStrip(C#)代码转换而来,该代码还不太完善。但是,它涉及到许多自定义控件、类、接口的深层用法以及自定义设计器的设计和运用。 精研过后,相信你一定会成为vb.net控件设计高手。
对CodeProject上的文件分割合并进行优化 1.CodeProject上是VB.net 现改为C# 2.CodeProject未对分割数量大于999个进行处理
从CodeProject上看,使用DirectX技术实现播放,需要引用系统的C:WINNTsystem32quartz.dll。据此,本文将为大家介绍如何使用.NET实现视频播放。
详细介绍.net 项目session存入mysql数据库,有完整demo 参考地址: http://www.codeproject.com/Articles/633199/Using-MySQL-Session-State-Provider-for-ASP-NET
2.8.10)and compiled the libs and configured the environment of vc++6, following the instructions in Introduction to wxwidgets in www.codeproject.com. second, unzip this file with the name edison-debug...
包含十个小程序,按照codeproject 中7天学会mvc的文章做的,只适用于初学者下载
SmartThreadPool是大名鼎鼎的.Net线程池项目,基于.Net开发,比.Net内置的线程池更胜一筹。1、为什么需要使用线程池(Thread Pool)减少线程间上下文切换。线程执行一定的时间片后,系统会自动把cpu切换给另一个线程...
asp.net mvc 单点登录Demo 无需第三方单独域名 实现原理可以参见codeproject中的单点登录的一篇文章: http://www.codeproject.com/Articles/106439/Single-Sign-On-SSO-for-cross-domain-ASP-NET-applic
codeproject上的QDNet网络控件,具体说明:QDNet is a compact client communication library that enables messaging between clients and server.
CryptoLicensing for .Net is a 100% .Net licensing solution for any C# and Visual Basic.Net (VB.Net) software including: Windows Forms (WinForms), WPF applications,console apps, components and ...
codeproject C# 源码合集.有700多个C#源码组件 CheckBox DataGridView.
CodeProject文章全部例子,和CodeProject相结合,希望对大家有用