True. However, FOSS software development IS a process where there are successive generations (called versions), each one made with largely the same defining code (not DNA but source code) inherited from its parent code of the previous generations, but with incremental small changes which subsequently continue on in the code through later generations only if that code is the best fit for purpose.

Whatever works best, survives to the next generation, and continues to survive in subsequent generations as long as it remains the best.

This is the process of evolution, essentially. The parallels to the process of biological evolution are significant.

a process where there are successive generations (called versions), each one made with largely the same defining code (not DNA but source code) inherited from its parent code of the previous generations, but with incremental small changes which subsequently continue on in the code through later generations only if that code is the best fit for purpose.

This is arguable at best.

Whatever works best, survives to the next generation, and continues to survive in subsequent generations as long as it remains the best.

So why was all the KDE 3.5 code chucked out the Window when they moved to 4?

This is the process of evolution, essentially. The parallels to the process of biological evolution are significant.

And evolution doesn't produce the best results. It produces results which are "good enough".

So why was all the KDE 3.5 code chucked out the Window when they moved to 4?

No it was not. That statement is pure nonsense.

KDE 4.0 retained easily 80-90% of the KDE 3.5 code. One of the larger parts of the 3.5 code that was scrapped and rewritten was kicker and kdesktop, and that was hardly more than 1-2% of the code. So a far way from chucking all code out the window. Large parts of the code was virtually unchanged, only adapted to changes in the underlying Qt libraries.