I'm with Bazzy. It'll be Linux or BSD or OpenSolaris that's best for programming (personally I don't like OpenSolaris).
If you want to choose a distribution of Linux, Archlinux is good. It's fast, it has a good package manager (called pacman) and it's optimized for x64 and 686 architectures (in fact, they're the only ones supported). The issue is that there's no graphical installer AFAIK. The installation won't be difficult or dangerous, but for some reason; some people are put-off by text-based installers.
Other good distributions are Slackware, Gentoo, Debian, Mandriva (which I know absolutely nothing about whatsoever) and Red Hat/Fedora Core. Slackware and Gentoo are great because you have to compile them yourself from source code
For someone migrating from windows, however; Ubuntu is by far the easiest... Otherwise, I don't recommend it. It's not the most optimized Linux distribution out there, and it tends to encourage use of the GUI over the command line; which I dislike. Linux Mint, which is based on Ubuntu (actually, it is
Ubuntu, with some custom artwork, themes and proprietary programs and codecs etc.), works a little better "out-of-the-box" and looks a little nicer.
If you want to learn about how Linux works, go for Slackware or Gentoo on a VM (or on real hardware, if you want). Otherwise, go with Arch, Debian (which has a graphical installer) or Ubuntu (which has an even easier graphical installer)...
Personally I would not
Oh and as a finality; you have to build Gentoo and Slack and probably some others (maybe Arch, I haven't tried that yet) from source; but it won't take that long. For me, the Linux kernel took about 10 minutes to compile, it was really quick. No, I didn't get it working (couldn't make an initrd for some reason), but the point is that it doesn't take that long. I can't imagine it would take that much longer for Gentoo and Slack on a similar processor.