Charles Petzold

Why a 6th Edition?

May 25, 2012
Roscoe, N.Y.

Sometimes when I'm getting tired of doing what I'm doing, and consequently eager to finish it up and move on to something else, I'll behave somewhat strangely. Instead of getting bored and lazy and slacking off, I'll double down and work harder than ever to give what I'm doing a definitive conclusion.

An example: Many years ago while attending college, I decided that four years would be it for me. But then I started taking overloads and summer courses so that on the day I graduated, I received a Master of Science degree in addition to the Bachelor of Science. People thought getting two degrees in one day showed real initiative and dedication. But it wasn't like that at all. I just didn't want to go to college any more and I was making sure I got out with as much as possible.

I think I had a similar attitude when I was writing the 5th edition of Programming Windows. Microsoft Press and I had begun planning this edition early in 1997, but Windows betas were delayed somewhat, and I didn't actually begin full-scale work on the book until late in 1997, continuing for much of 1998.

It seemed to me at the time that the 5th edition would be the last for Programming Windows and so I put as much into the book as I could. For a couple years prior, I had been working on a book about bitmap graphics for Windows that I never completed, so I recycled some of that material for Programming Windows. I had done a bunch of columns for PC Magazine on the multimedia extensions to Windows, so that stuff went in as well. If the 5th edition of Programming Windows was going to be the last, it would be a 1,479-page slam-dunk.

And there were good reasons to move on. While waiting for stable Windows betas during 1997, I passed the time by writing the first hundred pages of a rather unusual book I called Code. By early 1998, Microsoft Press had become enthusiastic about publishing Code but I couldn't resume work on that book until the 5th edition of Programming Windows was completed.

I finished writing Code in 1999 and for awhile worked on a sequel called Follow the Data about the evolution of analog and digital communication over the past hundred years. That book didn't quite work out, and in 2000, I began to make the acquaintance of C# and .NET.

C# was love at first site. Here was a language with much of the great syntax of C but with a fully modern approach to object orientation. In conjunction with .NET, developers finally had a strong and extensive foundation for creating robust applications that ran under Windows. Years of wrestling with weird memory models, buffer overruns, array-bounds bugs, and memory leaks in assembly language and C caused me to become a firm believer in managed code and garbage collection.

For over a decade I thought I'd never write another edition of Programming Windows but now I'm working on Programming Windows, 6th edition, and it's all because of Windows 8.

Spend just a few minutes with Windows 8 and whether you love it or hate it, you'll have to admit that it's the biggest change in the Windows user interface since the first Windows release in 1985. Equally as revolutionary is the programming interface: Underneath, it's COM but the surface that's visible to the application programmer, it looks just like .NET, so developers can now write native Windows 8 applications using C# (or alternatively, C++ or JavaScript).

As you begin exploring the Windows 8 application programming interface (called the Windows Runtime or WinRT), you'll find more innovative and modern features, including a much greater emphasis on touch (where the mouse is now treated more like a subset of touch), and the extensive use of asynchronous operations with C# language support. I am also particularly curious about exploring how the Windows 8 "charms" add increased support for integrating an application with the rest of the system.

Windows 8 has engendered much of the same excitement as early Windows, and some similar controversy. Just as old-time users first encountering Windows thought they'd never use a mouse, today's "old timers" are puzzled about touch on the desktop, and question the wisdom of adapting small-screen paradigms to big-screen environments. We're in for another interesting era in computing!

I hope the 6th edition of Programming Windows can help programmers master the intricacies of WinRT just as earlier editions helped out with Win16 and Win32.

My longtime publisher, Microsoft Press, is helping as well by offering an incredible bargain: Rather than spending $50 on the Programming Windows 6th edition ebook when it's published in November, for the next week you can purchase the ebook in advance for $10 and also get as bonus a nearly 300-page Consumer Preview ebook right now, and a Release Preview ebook a couple months from now.

The complete details are on the Microsoft Press blog. To buy the book, just click the link below (or give it a Windows 8 tap).

Programming Windows, 6th edition

Special Price through the End of May 2012!

For just $10, you get:

(1) the Consumer Preview ebook right now
(2) the Release Preview ebook in a couple months
(3) the final ebook in November

Programming Windows 6th edition
Programming Windows 6th Edition
Consumer Preview eBook