Chris Anderson is a developer at Microsoft who in recent times has spent most of spent most of his
waking hours working on the .NET framework.
What’s your official job title (this week) and what exactly is it you do?
"Officially" I am a Software Design Engineer, or Development Lead, depending on where you look
my name up. Throughout this product cycle I’ve done a bunch of different jobs. I have spent
most of my development time working on Windows Forms and pieces of ASP.NET. I manage several
developers who own most of the UI pieces of ASP.NET (sometimes called "Web Forms"), as well as
the CodeDOM, RegularExpressions, and the ASP.NET tracing features.
How long have you been at Microsoft? Do you enjoy it?
I became a developer in Microsoft’s IT division in 1996, and left shortly after to start a company with a few friends. After a few stumbles in our company I came back to work at Microsoft, this time in the Developer division working on Visual Basic 6.0 and Visual J++ 6.0. This May will be my 4 year anniversary since I cam back to work at Microsoft.
I love my job. I have always felt that you spend way too much time at work not to enjoy it. I work with some of the brightest people I have ever met and find new challenges at my job every day.
How does it compare to other places you have worked?
This is, hands down, the best place that I have ever worked. The work here is challenging and exciting, and the people love their jobs. I spend time after hours with my coworkers doing (gasp!) non-computer related hobbies and such. I have had the opportunity to travel to Japan for TechEd and have been able to talk to a lot of customers (one of my favorite things to do!).
How did you end up where you are?
Car. I drove to work tonight. ;)
My path to working on the .NET Framework isn’t actually all that bizarre. I started in the Visual Basic group working on controls for VB 6.0. At that time the control team was also going to be providing a set of controls for use in the VJ++ product. As the various product plans solidified it became apparent that we needed a VJ specific controls team and I transferred. I then moved onto the .NET Framework team to work on the class libraries team. I worked on Windows Forms, the component model, resources, and other fun. Eventually I moved on to work on ASP.NET.
What single word would you use to describe the new .NET initiative?
After working on this project for over 2 years I am constantly amazed at the scope of this project. We have a team of star developers writing a revolutionary platform for the next generation of applications and services. When I see the user community that is forming around this technology I am totally excited.
What excites you most about .NET, and what are the main benifits you see for the average developer? Are there any new announcements we should be keeping an ear out for?
Probably the most exciting thing to me about .NET is the introduction of a common API for the entire .NET platform. With the .NET Framework you can write programs that are web services, web sites, rich client applications, NT services, or simple console applications. This consistency allows you to easily pickup new technologies and put them to use right away.
The framework is a set of class libraries specifically targeted at making developer’s lives easier. We have struggled with balancing simplicity with power and extensibility, and I believe we have succeeded. When our Beta 2 is released you will be able to write real production quality applications using the framework.
My top 3 personal favorite namespaces:
- System.Text.RegularExpressions - an awesome regex library... fast, supports compiled expressions, Perl 5 compatible, and easy to use!
- System.Drawing - fast 2D drawing... alpha blending, JPEG, animated GIFs, fully Unicode on all platforms, all sorts of cool stuff!
- System.Diagnostics.Process - ok, this is just a class, but the ability to easily spawn a process, redirect the input and output to a stream, and monitor it’s working set, etc, is just cool!
C# s really exciting also. I have written professionally using C++, Java, and Visual Basic applications. I started writing C# code sometime in early 1999, and can honestly say that this is the best language that I have ever used. The ease of use is amazing, but is still have a familiar syntax. The integration of "unsafe" code to allow you to drop down to pointers means that there is almost never a need to drop into native code.
As for new announcements... Keep an eye out for a new ASP.NET Beta 1 sample application for writing web portals!
What are your main criticisms? If there is anything you could change what would it be?
Too much new stuff. I spend a lot of time trying to track all the different class libraries and features that we are implementing for this version, and it makes my head spin. This is a major shift in the way that applications and services are written, and I think that it will take some time to really absorb the entire thing. Not that I would want to cut any of these features J, but boy have we been busy!
The only thing that I would want to change is to have more hours in the day!
What do you see as the future for software development in 5 years? 10 years?
Predictions in the software industry are usually only accurate for... oh wait, that’s right - they are never accurate. I believe that we are on the cusp of the next phase of computing evolution. On one hand, we are just now beginning to really harness the power of a global network. As connectivity becomes completely ubiquitous through wireless networking and bandwidth is increased 10 times, we will see more applications that really leverage the power of the network. On the other hand personal computing power is still growing at an amazing speed. Looking at products like the XBox I see that we are also going to increase the power of the client for years to come. The next "killer app" will be something that leverages all the power of the personal computer and all the connectivity of the Internet.
What technology would you suggest graduates first start tackling in order to be successful? What technology would you suggest experienced developers ensure they are up to date with
XML, VB6 or ATL. XML is quickly becoming the universal data format and understanding XML, schemas, and XSL are vital. The world is changing rapidly, but VB is still by far the most widely used programming language out there. If you want to work in a corporate environment, VB is a must. ATL provides you with a high performance framework for writing COM objects in C++, especially useful for writing components to be used by VB and other COM consumers.
What does the future hold in store for you?
Sleep, but only after we ship according to my boss...
I will continue to work on the .NET Framework. The framework is an amazing product, but it is just beginning. I see an even more exciting future for the framework. Our customers are throwing tons of ideas for new features at us, and we have some a bunch of ideas ourselves.