Introduction

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++.