I had a professor in college, who upon watching me code for awhile, was left shaking his head. Something like "Well, back in my day, we had to get everything right before compiling. He was from the punch-card era, when round-tripping through the compiler was a 24-hour cycle, and he couldn't believe that I would just haphazardly type "make" all over the place, just to see if I had typed things properly.
So today, I had to upgrade a small header file in Visual C++, so I visited the Microsoft Platform SDK site and asked for it to update me.
The Platform SDK is a large piece of work -- fully installed it uses 600MB+ on disk.
So I shouldn't be surprised, but yet I am, that when I actually tried to update this single header file, I watched in considerable horror, as the updater deleted my entire previous install, not just of the Platform SDK, but of DirectX too. It deleted the old files, then started to get the update.
One hour later, the SDK updater declared itself done, except for the niggling fact that DirectX is no longer part of the Platform SDK (you can of course download an SDK to help you control a Windows Media Server, but not to draw graphics to the desktop), so it had deleted DX without helping me reinstall it. So I started the remaining 218MB download for DirectX.
Another 45 minutes went by. And finally I had DirectX9b and could run my compiler again.
But what happened in the intervening 2 hours was actually pretty interesting.
It was a sort of wonderful timewarp. I finally understood the punch card comment from my professor -- I could almost hear the long-lost echoes of the punch-card reader on my desktop! Because no matter how much I might have wanted to, I just couldn't compile.
I just couldn't compile to see if I had properly declared some const-mess properly, or if I had made a typo, or if I was calling a Windows API with 14 arguments in the right order. I just had to look, and look again, and then move on, creating this sort of code silence all around me.
I do believe this sort of thing is good for focus -- there are no interruptions at all.
But now we'll see if it all compiles.