Yesterday I met up with Harald Ponce de Leon and Mark Evans in Brussels for the FOSDEM 2010 event. FOSDEM was, as always, very well organised and the sheer amount of concentrated geekness was again impressive. If you want to see bearded unix guys on sandals, gothic h4x0r chicks and rastafari code ninja's - go to FOSDEM. You will not be dissapointed. And they have interesting tech talks too. Double win.
We ran across a lot people wearing red fedora hats, but unfortunately our favorite one, former osCommerce team member and now permanently branded member of the Redhat tribe Jan Wildeboer, was already on his way home. Maybe next year Jan, I want to see that tattoo in the flesh. And I don't drink beer anyway ;)
The times they are a changing
Harald and Mark discussed the many changes osCommerce is currently undergoing and showed me some of the recent work. At this moment all the commits at Github are solely focussed on getting security fixes and enhancements in the 2.2 version of osCommerce. Housecleaning if you will, but things are on the move again.
The current situation where 2.2 needs to be finalized, even if only for historical reasons, while 3.0 needs to be released simultaenously is an interesting but complicated situation. Adaptation of 3.0 branch needs to grow from practically zero and will most likely meet a lot of resistance from the current community, who is exclusively using the old 2.2 versions.
On the short term most shop owners would probably prefer new features for their trusted and highly customized 2.2 live stores over a 3.0 release, not realizing the life span of the 2.2 product is quickly coming to an end.
The inevitable death of 2.2
Standard osCommerce 2.2 in this day is not up to speed for programmers, designers, shop owners and even end-user customers. It's feature set used to be all that was needed to sell products, and in way still is, but extending or improving the selling- or shopping experience is a tedious task and requires indepth knowledge of PHP, SQL and HTML. This has always been a problem, and no matter what contributions or addons you add - the problem will never go away.
Several forks (spin offs) have tried solving these problems by adding more functionality to the 2.2 core. The problem with that approach is you end up solving one problem but create another. So you stick on band-aid after band-aid untill you end up with this enormous monster that kind of works.
The only solution is something bold and daring: a complete rewrite. Start from scratch, learn from all the mistakes, pitfalls and dead-end streets in your existing code. Incorporate a modular structure that allows you to extend the core program by just plugging in what you specifically need. Create API's, make it easier to contribute quality code to the product, make it easier for other products to talk to your product.
Why is this bold and daring? Because you break compatibility with your previous product, you are basically building a completely new product that doesn't look anything like the trusted old one. There is no easy upgrade path for users, there is no familiarity with the internals for programmers.
This is exactly what osCommerce has done with the 3.0 branch. And yes, it has been troubled by postponed release dates, broken promises and possibly shattered dreams. No, it will not instantly bring all the new exciting features you have implemented on your 2.2 store over the years. But it will provide you with a solid framework that can easily be extended and upgraded. Something in PHP5 that is a lot more future proof. It will be a lot faster and it will be able to scale. The codebase is already here, it just has not really been promoted or supported in the past.
If that changes, and I have the impression it will, 3.0 is the way to go for osCommerce users that look ahead.