Software developer here. For me it depends. Almost always, I find shift to be faster and more comfortable. However, sometimes I have to type things like THIS_LONG_ALL_CAPS_VARIABLE, in which case I find toggling capslock before and after to be faster and more comfortable.
Absolutely the shift key -- it requires only a single press which can be performed in tandem with striking the letter to be capitalized, whereas the caps lock key requires you press it, strike the key you intend to capitalize, then press it once more to turn it off -- this requires literally triple the effort of using the shift key.
This isn't even a real comparison. If you're playing to type quickly, always use the Shift key. Unless you're chickenpecking keys like a geriatric, CapsLock should be used exclusively for very long strings of upper-case words.
Well, caps can be useful. If you do happen to need MORE THAN A SINGLE LETTER IN CAPS FOR SOME REASON, it's a life saver. Really just trying typing even two or three words in all caps using the shift key and you'll see why caps still has a place on the keyboard.