I've been using a keyboard layout I made with Ukulele that swaps the symbols with the numbers and I couldn't be happier. You get used to it in less than a day of typing and it makes all the () $ @ ! so much easier. It makes so much sense as a programmer when symbols are typed so much more frequently than numbers.
Here's a link to download my .keylayout file (goes in ~/Library/Keyboard Layouts): https://www.dropbox.com/s/8hy5391ay2u0dta/US%20Symbols.keyla...