Hey everyone! Before I get around to introducing myself, let me take a moment to explain why I'm joining the ranks of other Microsoft bloggers. For starters, I have found the information on other blogs extremely useful. I've enjoyed contributing to the Visual C++ newsgroups and back when I taught sections in college I spent a lot of time discussing technical stuff with my students. Now that I've spent a considerable amount of time within Visual C++, there is so much I can share – both on Visual C++ itself, C++ programming, and things in general at Microsoft.

With that said, I am the Program Manager for the Visual C++ Compiler front-end. I've been working in Visual C++ since June 2001. Over that time I have worked on the compiler backend team and now the front-end team. The best part of working in Visual C++ is that there are so many great people here. In some ways, Visual C++ is at the crossroads of Microsoft – every team at Microsoft makes use of the C++ compiler, so not only does Visual C++ have traditional customers (those who buy Visual Studio) but every team at Microsoft is also our customer.

To provide some context for Visual C++, I'd like to explain the structure of the Visual C++ product group. These are the main teams:

  • Compiler front-end: This is the team I currently lead. It is responsible for the C++ language. Sometimes, you may see the phrase "programming models team." This refers to the collaboration between the compiler front-end and the libraries team.
  • Compiler backend: This team does all the optimizations and code-generation. Right now, they are responsible for generating code for x86, IA64, AMD64, and MSIL.
  • Tools: Most notably, this includes the linker; however, they do much more. The tools team keeps the product stable by maintaining the build and code check-in process.
  • Libraries: The libraries team has created some of the most notable programming styles from Microsoft including MFC and ATL. They also maintain and improve the CRT. The libraries team is part of the programming models team because they set the programming trends for many Microsoft C++ programmers.
  • IDE: As expected, the IDE team works on the Development Environment. Most of the IDE work is done by a team shared amongst all of Visual Studio – the VS Core team. The C++ IDE team is responsible for C++ specific work including the C++ debugger expression evaluator, C++ IntelliSense, designers and wizards, and the C++ project system.
  • Box: No, they do not design the box. J Actually, they coordinate the beta program, the schedule, the external team dependencies, and a whole bunch of other tasks. Without the box team, we'd never get anything done.

Having experience on both parts of the compiler team, I have gotten to know quite a few people. For a while, I also owned the CRT, so I have some insight into the libraries space. And as mentioned earlier, the Visual C++ team spends a lot time talking with other teams at Microsoft. As much as I can, I will try to provide a mix of interesting content. For the next few weeks, I will spend most of my time providing insight into the new C++ language design. In my next posting, I will talk about the history of all the CLR features in C++ and the design goals for C++.