I would still choose the 50 year old. If he has a family, he's more likely to be loyal. If he's not an alcoholic, he's much more likely to produce decent work. In fact, a programmer that has to put in 16 hour days at crunch time is either badly managed or a terrible programmer. Most experienced programmers can do as much or more work in half the time. Finally, there's the issue of experience, one where the younger programmer will always come in second. So the older programmer has the advantage in every case, as an engineer would in any other discipline.