To view parent comment, click here.
To read all comments associated with this story, please click here.
The point is that over the course of millions of years, species barely change. And then, probably due to external pressure, they change rapidly.
_My_ point was it _doesn't_ happen rapidly. It's a widely accepted _fact_ that evolution is gradual, the only reason we have missing links in our ancient history is simply because they haven't existed for such a long time that there's no physical evidence that has survived. _That_ is how gradual evolution is. There's absolutely _Zero_ evidence to the contrary.
The only reason we evolve at all to any _major_ degree is external pressure ie monkeys > humans but again its all gradual. Sure it might seem big if you compare how little a monkey today differs from one a few million years ago but it's still gradual. To use the word "rapid" is quite silly.
That said, _some_ previously "missing" links have been found in recent years frozen in glaciers. Trying to tell me evolution is anything but gradual is quite frankly, ridiculous
Back to the topic of software:
My original point with this seemingly unrelated analogy was that nature doesn't replace things that don't need replacing. Developers do. There is very little code-reuse. I'm not saying KDE4 didn't need to make the changes it did, because it likely did(especially with QT4). What i'm saying is the whole approach of rewriting everything every couple of years is massively flawed, slower and bug ridden.
I'm sure a lot of you remember the <=2.4/2.5 linux kernel series with a stable and development branch. That approach wasn't a good one - and it showed. The huge number of bugs, the massive development time required to make huge rewrites work (vista anyone?) is just not worth it in a lot of cases.
The 2.6 kernel thankfully provided a framework good enough to break away from that flawed development model and I think the massive improvements in the kernel since 2.6's release compared with previous releases speak for themselves. Hopefully QT4 and KDE4 will end up like the 2.6 kernel series and not just another framework rewrite / rewrite of which there are millions. Maybe i'm just old and bitter but this endless rewriting trend really ticks me off sometimes.
Don't get me wrong, I have high hopes for QT4/KDE4 I just don't want to see another rewrite a year or two down the line. I've seen it happen to so many projects, so many times. Heh writing this makes me wonder if one of my favourite WM of old (enlightenment) will ever see a new release. It's starting to become the duke nukem forever of window managers. Surely there has to be a limit to how many times you can rewrite the same thing?
"There is very little code-reuse."
Do you mean in KDE? If so, there is *massive* code re-use - it's one of the hallmarks of the KDE project.
"I'm not saying KDE4 didn't need to make the changes it did, because it likely did(especially with QT4). What i'm saying is the whole approach of rewriting everything every couple of years is massively flawed, slower and bug ridden."
KDE4 isn't a re-write of KDE3, though - it's mainly a port to Qt4, along with legacy stuff being retired and approaches that turned out to be sub-optimal removed or fixed, plus the addition of a few new frameworks made from whole cloth, most of which had no direct suitable analogue in KDE3. Bear in mind that KDE is largely a volunteer project and that its SVN contains somewhere in the region of *5 million* lines of code - a re-write would be a practical impossibility!
Plus, the difference in release dates of KDE3.0 and KDE4.0 is approx 5.5 years - rather a lot more than "every couple of years!"
KDE4 itself is expected to last at least another 5 years.
I think having a large break with old code is massively beneficial psychologically, too - programmers seem to get more and more worn down when they get stuck working on the same code that is expected to continue functioning in the next point release - there's a tendency to become more and more conservative and resistant to change in case something breaks and people whinge, and development becomes a chore. Giving them a chance at a clean break like this is tremendously liberating - they can tear down all of the cruft and poor design choices they inevitably accumulate and take their time doing it - it feels like you're being given a fresh new start with a clean slate, and you can finally go nuts! The introduction of better and more powerful APIs (for which retiring old and, with hindsight, ill-conceived ones is often a pre-requisite) makes the process of going nuts even easier! In a nutshell, I think these massive shake-ups are very healthy and desirable indeed as long as they are paced correctly, and having one every 5 years feels like a pretty good tempo.







Member since:
2005-07-07
The point is that over the course of millions of years, species barely change. And then, probably due to external pressure, they change rapidly. This explains partly why so many 'missing links' can't be found. And those are the jumps I'm talking about. Again, if you read up on it, you'll see this is a pretty accepted fact in biology.
And yes, jump is relative - we're still talking a long time. But you know, Computers do everything faster than biology does ;-)
And of course, this analogy doesn't have any real value, it's just a way to explain stuff, I guess ;-)