Definitely personal preference comes into play, but also take into consideration the type of programming you intend to do. Scripting? Desktop applications? Cluster computing? Mobile applications? There are a vast number of different types of programming...and some are more feasible than others in different environments. I personally prefer 'nix based operating systems. Why? Very stable, very secure, isn't prone to issues common on Windows (eg malware, necessity to defragment the disk, etc...), comes standard with a whole slew of useful programming languages (perl, python, java, etc...) and tools (grep, awk, etc...). Downside is that there is a learning curve. Upside to the downside is that Mac is unix based, throwing an easy learning curve on top of a powerful OS (my experience with programming on a mac has been much different from aussiemcgr's). This being said, if you've used Windows for years, moving over can be a challenge (perhaps try to get your hands on a mac to play with it for a few days and see how you like it).