Originally Posted by Igo kyu
Why Oleg went for a rewrite rather than an upgrade we can't know, since we don't have the old code to see what was wrong with it, and I for one would probably have a great deal of trouble reading it if I did have it.
It takes a couple of years to learn C++ if you have the apptitude, which many folks just don't, it's not something that anyone can pick up over a weekend. After those years, you would then have the time it would take to learn to understand the old IL*2 codeset, which would probably be another year if you could do it at all, I doubt anyone on the team but Oleg had a complete overview, and even he probably had bits that someone else worked on that worked just fine that he didn't understand all the details of. That's just how complicated programming is these days, and it's not getting easier.
It's not a case of:
"Here are two spades, there's a mountain of earth, the two of you have got six months to shift that mountain 20 ft west, start now!"
That would be tedious, hard and annoying, but if the size of the mudpile was right, you'd know it could be done from the start. With Programming, everything tends to interact with everything else. You do try your hardest to keep the interactions limited to the ones you know about and want, but they tend to escape and run wild. Those wild interactions are called bugs.
So, since Oleg said it wasn't possible to update the original IL*2 codebase, I think we have to take his word on that.
Old code gets encrusted with additions but it depends on the original foundations, and sometimes they just can't be updated. For a hypothetical example, suppose all the integers in the original IL*2 were 16 bit, if the newer code wanted 64 bit integers, you couldn't just change the definitions, because something, somewhere, would be hardcoded to 16 bits, and it would break when you changed the definitions. It wouldn't be obvious where the break was, it wouldn't be clear what you could do about it, and in a large codebase like the original IL*2 there would probably be thousands of breakages each of which would probably take a week of somebody's time to fix.
|