I've been using Dvorak since the last year of highschool, so I don't really have anything to compare Dvorak to; I never really programmed in qwerty. I see no reason to believe it's worse than qwerty, especially if you use Vim (having y next to p on the left hand is a real boon, I'd say). Obviously programmers type more punctuation than people who write straight English, but once you're over the hurdle of normal keyboards and keycaps that match what it types, you're free to make the punctuation even more convenient. Like I did. (I say specifically because I've heard some people complain that square brackets in particular are harder to type, being relegated to the end of the number row.) Otoh, back when I did learn Dvorak, I struggled with the punctuation much longer than the letters, so I sometimes popped those keycaps and made them line up.
The biggest problem is that now all of a sudden you struggle to type on other's keyboards, and they simply can't type on yours. (My qwerty foo comes and goes like the tide. Sometimes I can touchtype without a problem, but the last few months I've been apalling.) I actually have two keyboards connected up to my computer at work, so I'd love it if one could be bound to Dvorak and the other Qwerty for when someone is else is working with me, like I have a mouse for others and a trackball for myself. I'm sure it can be done, but I don't know how at this point. If there was a forum here about that sort of issue, I'd ask but I've got no idea where I should
As for how I've set up the custom layout, it's done in Xmodmap, so it applies to all the programs I'm running in Xorg. (I'm assuming you're using Linux cos of how you say you use Vim. Maybe this is still interesting if you're not) It basically consists of a file with a lot of lines like:
keycode 59 = w W U028D
and then you run "xmodmap filename" and voila, only you can use your keyboard
(In another life, I've also been a linguist, so I have every key manually set up to include IPA characters. Normal people could just set their keyboard into Dvorak and only change the keys they need to, but I am rarely accorded the distinction of "normal". In this particular case, if I use altgr w, I would get ʍ (which is the sound some old people in America use for "wh") — except that after I've used up one alt for meta and the other for compose, I have no keys left on my Kinesis, so I don't have an altgr key at all! I might have to actually mod this thing.)
You can find the keycode by using xev. Start it in a terminal (by running xev) and you get a bunch of stuff, put the focus on the ugly window it brings up, and anycharacter you type, the keycode (and some other info) will be spewed on the keyboard. But be careful, because any X event will be, so take a note of the keycode before you move the mouse. You will likely have to use your own memory, not the computers!