On the Windows side, (assuming you don't mind it being locked down to Windows), Visual Studio is going to be the way to go. Visual Studio Express is free for a year and programs you make with it can be used after that. More and more the big companies are giving away the dev tools to attract hobbyists, as they are usually the ones making the interesting small apps these days. I didn't truly understand this until my own program that is getting more and more popular among widescreen gamers.