Well, there were a number of technical reasons why they couldn't do this. It could have been worse. Look at the way Apple has kicked its userbase in the teeth over the years. First they switched from m68K CPUs to PowerPC, then they switched from OS Classic to OS X, then just as the dust was settling from that, they switched from PPC to Intel CPUs.
People who have never written a line of code in their lives always make these kinds of comments, and bemoan loudly when some kind of compatibility is dropped. Never mind that it's causing all kinds of problems for the developers, slowing them down considerably and making other features difficult, if not impossible, to implement.
Despite your best efforts, it is inevitable that sooner or later a computer program is going to shoot off in directions you never anticipated. Think of it like trying to build a house, and every time you get rolling, the city inspector comes along and says you have to start using a new building material or comply with some new code. Maybe you lay the foundation, and then you start putting up some wooden frames, only to be told you need to use steel. Then you were planning on using lightweight aluminum siding, until you're told you have to use cinder blocks for the ground floor, and then bricks for the second floor. Of course now you're putting quite a bit more weight on the foundation than you expected when you started, and you have to be really careful about how you spread the weight out over it. And even then, it's on ground that isn't firm enough for this kind of weight, so all you're doing is trying to ensure that the entire structure sinks evenly and there's no Leaning Tower of Pisa effect going on. At some point, you just have to say screw it, and tear everything down and rip up the foundation to lay a brand new one.