Author Interview
Talking .NET and C# with Charles Petzold
Charles Petzold is a full-time freelance writer who has been programming for Microsoft® Windows® since 1985 and writing about Windows programming for nearly as long. His book Programming Windows (first published by Microsoft Press® in 1988 and currently in its fifth edition) taught a generation of programmers how to write applications for Windows. Petzold recently finished authoring Programming Windows with Visual C#™ for Microsoft Press. In this authoritative Windows book, he shows readers how to use Visual C# to create dynamic user interfaces and graphical output for distributed or stand-alone applications. In this interview, Petzold shares his thoughts on object-oriented programming and his new penchant for C#.
MS: How is your new book, Programming Windows with Visual C#, different from the classic Programming Windows?
CP: Programming Windows with C# is an all-new book. Throughout its five editions, Programming Windows has shown readers how to write Windows programs using the C programming language and the native Windows application programming interface (API). In Programming Windows with C# I use a new object-oriented programming language and a class library called Windows Forms, which is part of the new Microsoft .NET Framework.
I first started working with Windows Forms and C# in the summer of 2000, and it was nearly love at first sight. Windows Forms is very close to what I've always envisioned as an ideal object-oriented programming interface to Windows, and C# is now my favorite programming language. Even though I was working largely with beta software, writing the book was an extremely pleasurable experience.
MS: So where does all this leave C++ and the Microsoft Foundation Classes (MFC)?
CP: Still going strong, I'm sure. I think C and C++ will continue to be used for many commercial applications, particularly those where tight code and speed are required. Currently Windows Forms is targeted more to enterprise applications, but that may not last for long. Once programmers start getting a taste of it, I think they'll like it and use it more.
Personally I never liked MFC, which is why I've never written about it. MFC is barely object-oriented and really only a light wrapper around the Windows API. Of course, the lightness of the wrapper helps in making it fast. But as far as a true object-oriented approach to Windows programming goes, I think Windows Forms finally gets it right.
MS: Any advice to programmers dealing with all this stuff?
CP: Learn as much as possible. C, C++, and C# have so much in common that there's no reason why a programmer can't be fluent in all three languages. Learning the Win32® API makes you a better MFC or Windows Forms programmer.
Sometimes we programmers tend to treat languages and interfaces as if they were political camps. Already I've been accused of “abandoning” the C and API camp. This is really quite silly. Languages and interfaces are tools, and the more tools you have in your toolbox, the greater your programming abilities.
MS: Will you be getting a .NET tattoo to complement the Windows logo on your right arm?
CP: I got that Windows tattoo after I'd been programming for Windows for a decade. So ask me again in 2010.
Charles Petzold wrote the very first magazine article about Windows programming for the December 1986 issue of Microsoft Systems Journal. In May 1994, Petzold was one of only seven people (and the only writer) to be given a Windows Pioneer Award from Windows Magazine and Microsoft Corporation for his contribution to the success of Microsoft Windows. Petzold is also the author of a unique introduction to the inner workings of computers entitled Code: The Hidden Language of Computer Hardware and Software. He is currently researching a book on the historical origins of software.