Java may be portable, but I still feel the need (and enjoy) switching between Windows, Linux, and OS X as per the requirements of work and research. For Java, I like to customize applications (if they are JFC based) to use tray icons under Windows and support the Mac top of the screen menus under OS X.
There are other good reasons for keeping an open mind to which computer to boot to best get the job done. If I want to use Common Lisp, I find it easiest to run Linux + Emacs + SLIME + SBCL (although I own LispWorks licenses for all three platforms, so I sometimes use LispWorks). For reasons that are not totally clear to me, when I code Ruby and/or Ruby on Rails, I like OS X.
When I am working on a huge Java web framework for one of my customers, I like Windows because of the total “niceness” of using ant build files in TextPad shells.
Anyway, years ago, it used to bug me to have to reboot between Windows NT (and later 2000) and Linux. Now, if I want/need to run under a particular operating system for a few hours, the overhead of switching seems really light and I do not mind doing it.
A few things make it easier to switch (rapidly) between operating systems:
- Use source code control (either CVS or subversion) for everything – then a fast CVS update gets a development machine current in a few seconds.
- I mostly use GMail so no more hassles keeping email straight on multiple development systems (my local ISP still does not support IMAP).