On the first day of my new job I was handed a Windows laptop. This came as a bit of a surprise because prior to my start date they had asked me whether I wanted to work on Mac or Windows, and I said Mac.
it was quickly explained to me that a certain set of circumstances had resulted in me receiving a bulky Dell machine with Windows XP loaded on it, in lieu of an Apple machine, and that some time over the next few weeks I would be getting a Mac.
In the meantime, I would have to make due with Windows. I actually hadn’t used Windows as my primary operating system for almost eight years. The last time I’d used it was when I was managing the web site at Carthage College. I was dreading having to work on the machine as my main development environment while learning my role in a new company, and learning a new programming platform (Flex).
I was actually surprised at how (relatively) comfortable I was on the machine. I’ve of course used Windows for years to do testing and debugging for web applications, but not as my main development machine. Cygwin was definitely handy. There are lots of powerful command-line interactions that I can achieve much quicker in a *nix shell than in DOS. So whenever I needed to do something familiar on the command-line, but didn’t know the best way to do it in DOS, I could always fall back on the Cygwin prompt.
After a couple of weeks, I finally got my nice 17″ Macbook Pro and dropped the Dell off at the sys. admin.’s desk. The experience reminded me of why I don’t use Windows. One of the major annoyances was having to start and stop my resin server with each deployment, even though I had hot deployment turned on. This is more of a deficiency in Resin, I think, than in Windows.
But one of the frustrating aspects of this excercise was that after a resin server was stopped, Windows still hadn’t unlocked the files that the Resin server was using. There was always some indeterminate lag-time between the time the server stopped and the time that the files in its deployment directory would become available again. This is a tiny thing in the scope of an overall operating system, but in iterative development it’s HUGE. Enough to remind a developer like me why I use a *nix environment.
This blog post created on a Mac.