recently i've seen the work being done on kicker referred to as a rewrite by a couple of people. this meme may have been started by the November 19 issue of the KDE CVS Digest whose opening sentence line was, "Kicker rewrite merged into HEAD for further testing."
i'd like to clarify that a bit because "rewrite" is not particularly accurate nor fair to those who went before me. what i'm actually doing is refactoring kicker. a rewrite is exactly what it sounds like: rewriting from scratch. it's starting all over again. refactoring, on the other hand, is starting from the existing code base, asking how it could be better designed and then reshaping that code base to reflect those answers.
this means that a lot of the kicker code that was written from KDE 2.0 on up through to KDE 3.3 still remains. those who contributed code to kicker still deserve props for their work, as much of it will still exist in 3.4.
this preservation of code is good from a technical standpoint because a lot of bugs were fixed in this code and a number of rather tricky things had been achieved. had i entertained a rewrite, many of those bugs would likely have resurfaced anew and the work required to get kicker "in shape" would've been much larger.
most of the problems with kicker were simply due to a lack of maintainership, incomplete implementations of generally decent designs and the occasional conflict between design concepts. it really needed to be sorted out, but not rewritten.
that isn't to say that the code base hasn't changed radically, and some parts have indeed been completely rewritten. it just means that i can't take all the credit for kicker as it will appear in 3.4, and that it should be a better product when 3.4 hits because it was refactored versus rewritten.
i'm not the only person who feels this way about refactoring versus rewriting, either.