« Hacks0.8.5.5 Release Candidate »

Codebase

Permalink September 20, 2003 @ 16:33, by Francois Planque • Category: Technology

b2evolution is actually an evolution of the b2 blog software. Thus, a significant part of the codebase is b2 legacy. As of today, b2 legacy is a little less than 50% of the whole b2evolution code.


Every now & then I read these quite irritating remarks about some other b2 forks supposedly being so much better because their authors are planning to rewrite it from ground up someday. :crazy: Duh!


Beyond the intrinsic irony of this statement, I'd like to explain my position about this: I do not believe the usage value of software lies in its codebase!


Actually, I have experimented the rewriting path myself about 12 years ago. I had developed a piece of software working very well with lots of happy users. However, I decided that having written this software in GfA Basic wasn't good enough and rewrote it from ground up in C!


This was an unvaluable move for me to learn the C language (and a couple of other things I wanted to experiment with, like the GEM environment), but regarding the software, the new version - while significantly nicer - never reached the usage value of the previous one.


The product and the users would have benefited much more from me spending all this time adding new features to the existing codebase instead of reimplementing the same ones differently. However, as a developer, I personnaly benefited more from reimplementation.


See how precisely this translates to b2 and its forks?


Now, please give me a break with this rewriting crap! Anyone talking to you about rewriting doesn't actually care about the community but about himself. :lalala: I don't blame that - we work for free - I just don't want it turned into ridiculous "marketing" arguments.


Also, please don't get me wrong: I am not saying the legacy b2 codebase was all clean. The b2evo dev team has actually rewritten more than 50% of it in order to achieve better maintainance. But we don't advertise that. We take far more pride in providing new features on a regular basis. :P

7 comments

Comment from: ocatrapse [Visitor]
Do not pay attention to them, just ignore them.
09/20/03 @ 20:53
Comment from: gustavo [Visitor]
I just started using b2evolution so I'm not too familiar with what is (was) going on. But anyway I agree with what you sad. Sometimes the opensource people are so busy on doing a perfect code(on theory) that they forget the users just want to use a software with as much features as possible. Sometimes a commercial approach to opensource is good.
09/20/03 @ 23:48
Comment from: ocatrapse [Visitor]
I respect your opinion.
I only want to write a little comment: remember users want quality, stability and reliability too. "opensource people" only try to make good software, and usually more features affect this goal. The François' approach is, IMHO simply the pragmatic (and correct) approach. I think it is not about commercial or free developers "mindset".

Regards.
09/21/03 @ 00:45
Comment from: Hans [Visitor] · http://hansreinders.com
I totally agree!
09/21/03 @ 15:51
Comment from: Edlef [Visitor] · http://log.netbib.de
I've been using b2 from the very first version (0.4 or so) and it ist a fine tool. The community is great and til version 06 Michel did a great job with a lot of enhancements. I've watched and tested the other b2-forks, but b2evo is the only script which is working like it should: Import of old entries, nice enhancements (statistics, last comments, much better search function ...), and, for new users of b2evo, the skins option.
The only thing that prevents me for now using it on my working server, is my missing luck of making a template or skin which can be shown and used with older Netscapes (4.x)
I think its the right way how Francois and the others have used the old b2!!!
Thanks a lot!
09/22/03 @ 08:28
Comment from: Michel Valdrighi [Visitor] · http://intraordinary.com/
The reason I first wanted to rewrite b2 from the ground up was to have the ability to add features.
The sheer size, uncleanliness, useless duplication of code bits, and lack of in-the-source documentation made adding features much too annoying. It also lead to adding more bugs.
So I just couldn't let it go on like that, just like I couldn't go on developping it if it meant having to cope with the conceptionnal mistakes of what a newbie can do in php (the newbie being me... when I started coding b2 I had done less than 3 weeks of PHP, and that was really low scale PHP for my job).
And then, I took a big break. And I got a depression or two, which don't have anything to do with b2 but which halted the support from me.

Code cleanliness is always a win-win situation in opensource projects: it means more developers can join the project and not feel alienated when ogling over the legacy code.
A fine example of it is Apple's choice of the KHTML engine over the Gecko one for Safari. They chose KHTML simply because the code was cleaner and more easily extensible, even if it meant turning their back to Gecko's wonderful rendering engine.

And last but not least, I'm saddened that you're taking such an oppositional approach towards other b2 forks' maintainers and their decisions. Can't we all just get along? :)
10/08/03 @ 01:38
Comment from: François PLANQUE [Visitor] · http://fplanque.net/
Michel,

I do agree that code cleanliness is a good thing. How could I disagree? What I am saying, is that rewriting is not necessarily the best option over simply cleaning up.

I also do agree on the Safari example. However bear in mind that Apple chose KHTML because it actually was a fact that it was cleaner than Gecko, not because people said they were going to rewrite it cleaner someday.

Plus, the reason that made Apple choose KHTML for *development* purposes is pointless when users need to choose between *using* Safari vs. Gecko.

Regarding your opinion on my approach, let me assure you that I am not ranting at you nor the other forks' maintainers but at those big mouths spreading their opinions on the subjects above all over the place without actually having a clue neither about b2evolution nor about software development.

It is everybody's right to rewrite anything he fancies and to talk about it. Whatever their reasons I wouldn't normally care, but this time I eventually got sick of people drawing ridiculous conclusions on all that and posting them in my sight :P
10/19/03 @ 20:48

Leave a comment


Your email address will not be revealed on this site.

Your URL will be displayed.
:!: :?: :idea: :) :D :p B) ;) :> :roll: :oops: :| :-/ :( :'( |-| :>> :yes: ;D :P :)) 88| :. :no: XX( >:XX
(Line breaks become <br />)
(Name, email & website)
(Allow users to contact you through a message form (your email will not be revealed.)