Excuse me but, I was never really clear on how software development works. Are you saying that they've got teams of hundreds of people sitting at computers 12 hours a day punching out code? Is that what they did when they converted those 86 million lines of Mac OS X Tiger code from PPC to Intel?
Does it really take that much time?
Depends I suppose. Some of the core adobe stuff of old may have roots in very early versions of OS X and the PowerPC days. Over time, these core parts are probably taken, tweaked a little, added to, worked around, whatever for each new revision. It may be old core code and methods of working, but with the advancements of the speed of machines, it can still look like things are happening faster even though they may not be being processed in the most efficient manner possible. In such cases, they probably just use the bulk of the existing code knowing that it works already.
Then along comes a change to the OS ( or the machines ) such as Universal Binary which *may* mean that some of those core things no longer can be done in the way they used to. If that was the core units of the program and you cant run it anymore, then you kind of have to start from scratch from the ground up to re-write the core stuff which the program is based around.
But its not really completely from scratch. With new developer programs / languages, there is often a similar way of doing something that you did before, just that you have to write the code slightly differently.
As a very basic example ( and not meant to be any particular language ) the old way of changing a pixel colour could be:
ChangePixelColor(pixel_address, red)
and the newer way:
pixel.colour = red
Its the same effect, just a different way of writing how to do it and then compiling it into the latest style of program file.
So doing that for 86 million lines of code could take a while if you have to go right back to basics as opposed to tweaking what you already have.