In my pon­der­ings about WordPress and PostgreSQL I was chal­lenged to con­sider Joomla. Believe me, I have con­sid­ered Joomla and rejected it, at least for my use. Let me give you a brief his­tory of Joomla and me.

Possibly the first CMS I ever used was Mambo, the pre­de­ces­sor to Joomla. It was one of the tools with which my web devel­op­ment com­pany used to cre­ate client sites. One of my employ­ees was very adept at Mambo. I remem­ber quite clearly the day when prac­ti­cally the entire Mambo devel­op­ment team up and quit Mambo, announc­ing they were going to cre­ate a fork which became Joomla. It was the buzz of the office. We rec­om­mended Mambo, then Joomla to our clients. Even today, I believe Joomla is a good solu­tion for some situations.

Fast for­ward a sev­eral years., circa 2007. One of my old clients approaches me to help them out with their web site, it is a Joomla 1.0.x site. That client knew I was famil­iar with not only their com­pany but with Joomla. I have worked now on that site and a cou­ple oth­ers over the past three years. We have changed themes, migrated from Joomla 1.0.x to 1.5.x and added or removed count­less exten­sions. I have even worked on a cus­tom Joomla exten­sion. All this work, has given me a fairly good per­spec­tive on Joomla and what I don’t like about it.

First and fore­most, Joomla has a bit of a wild west men­tal­ity when it comes to exten­sions. Each exten­sion seems to do its own thing, often with­out regards to the needs and desires of other exten­sions or the main Joomla core. This is exhib­ited most griev­ously in the way the exten­sions han­dle css and Javascript. Joomla itself seems to encour­age this behav­ior because of the way it han­dles the extensions.

On one site I often have to debug, the client has 22 Components, 34 Modules, and a gazz­il­lion plu­g­ins, all which are not part of the core. This results in 22 dif­fer­ent Javascript files need­ing to be down­loaded, most at the top of the page where they shouldn’t be, and 14 dif­fer­ent css files (and that is after we com­bined and mini­fied sev­eral that we had con­trol over). This puts the site into per­for­mance hell.

More impor­tantly and most annoy­ingly, of the javascript files, the fol­low­ing gets loaded in this order:

  1. jQuery 1.2.6 minified
  2. jQuery 1.2.2
  3. jQuery 1.3.2
  4. jQuery 1.2.6 not mini­fied and mod­i­fied specif­i­cally for the exten­sion that includes it (we finally dis­abled this exten­sion because it was caus­ing too much problems)

Of course that doesn’t include all the other javascripts includ­ing other Javascript frame­works such as MooTools which of course all want to use the $ for them­selves. We have very lit­tle con­trol over the order the files get loaded and the exten­sions of course have the pride and prej­u­dice to think that they are the only ones that need to load anything.

Now let me say I under­stand on one level why the exten­sions do what they do and why Joomla is designed the way it is designed. The exten­sions are self-contained. They can be installed and unin­stalled with­out affect­ing other exten­sions or the main Joomla core. But this self-containment allows for com­pletely diver­gent and some­times con­flict­ing code to be intro­duced. Some exten­sions just can’t be installed with oth­ers because they step on each other, either because they haven’t used name­spaces of some sort or they intro­duce incom­pat­i­ble code of another sort. An exten­sion that expects and requires jQuery 1.3.2 gets broke when another exten­sion loads jQuery 1.2.6 later. I am just wait­ing for one of the mul­ti­tude of exten­sions installed on this site to sud­denly upgrade to jQuery 1.4.x and watch the entire site burn down from the total chaos.

While I am on the exten­sions rant, there is a trend in the Joomla devel­op­ment com­mu­nity that really irks me. I am see­ing more and more Joomla devel­op­ers move to a sub­scrip­tion model. Oh, it isn’t a sub­scrip­tion for the exten­sion itself in most cases, rather, a sub­scrip­tion to access the sup­port and down­load sec­tions of the web site. I under­stand the need to make money doing what you do but this really gripes me at one level. To get sim­ple bug fixes a year later one needs to pay for the sub­scrip­tion to be able to access the down­load. It dri­ves one to piracy… almost. In at least one case, dig­ging in and fix­ing the bug myself was the cheaper solu­tion. But of course, then there is the one devel­oper who uses IonCube to encrypt the php so one can’t even go in and fix a bug! If I could get my client to aban­don that exten­sion, I would be so happy. Closing access to the php source code should result in that code being boy­cotted *cough* SEF Advance *cough*.

I could list a few more rea­sons why I don’t like Joomla but really, the whole exten­sion thing is enough for me to avoid it. In my opin­ion, the Joomla devel­op­ment team needs to intro­duce a uni­fi­ca­tion and mini­fi­ca­tion engine for Javascript and CSS that all the exten­sions have to go through to elim­i­nate dupli­ca­tion and con­flicts (ver­sions and name­spaces) and increase the per­for­mance of Joomla based sites. I per­son­ally would prob­a­bly put the ham­mer down in a very unpop­u­lar way and insist that all exten­sions use a spec­i­fied Javascript frame­work, be it jQuery, MooTools, YUI or what­ever. Now I know both jQuery and MooTools work very hard to at least not con­flict with each other, so maybe a lit­tle lee­way there but good grief. We don’t need 6 copies of jQuery in 4 dif­fer­ent ver­sions, 2 copies of MooTools each their own ver­sion, and some other lit­tle known frame­works puk­ing up the site.

So no. Even if I could use Joomla with PostgreSQL, I wouldn’t right now. Maybe Joomla 2.0 will fix a lot of these prob­lems. The next ver­sion of Joomla 1.6 is address­ing many of my other com­plaints. It the­o­ret­i­cally is even going to add addi­tional db dri­vers so PostgreSQL may be pos­si­ble. But I don’t see (but then I am not actively par­tic­i­pat­ing) in the devel­op­ment of 1.6 the basic address­ing of what I see as a seri­ous flaw, the pro­lif­er­a­tion of Javascripts and CSS files flow­ing from the exten­sions them­selves. This is a site killer and not for me.

2 Responses to What about Joomla?

  1. dendly says:

    Dude, that cus­tomer site is way out of con­trol if what you said is true. A few extra exten­sions in Joomla is cool but that site is seri­ously wrong. I can under­stand why you hate Joomla but you really should blame the cus­tomer and not Joomla for that mess.

    Didn’t know that thing about mambo. Looked it up. It looks like it may have finally died off, there hasn’t been any activ­ity on it for quite a while. Screen shots though show how much Joomla was a fork of it.

    Oh and yeah, I refuse to use Sakic prod­ucts and rec­om­mend my cus­tomers do the same. IonCube is !@$#$%.

Leave a Reply

Looking for something?

Use the form below to search the site:


Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...