What about Joomla?

In my pon­der­ings about WordPress and PostgreSQL I was chal­lenged to con­sid­er Joomla. Believe me, I have con­sid­ered Joomla and reject­ed it, at least for my use. Let me give you a brief his­to­ry 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­pa­ny used to cre­ate client sites. One of my employ­ees was very adept at Mambo. I remem­ber quite clear­ly the day when prac­ti­cal­ly 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­mend­ed Mambo, then Joomla to our clients. Even today, I believe Joomla is a good solu­tion for some sit­u­a­tions.

Fast for­ward a sev­er­al years., cir­ca 2007. One of my old clients approach­es 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­pa­ny 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, migrat­ed 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 giv­en me a fair­ly 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­i­ty 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 oth­er exten­sions or the main Joomla core. This is exhib­it­ed most griev­ous­ly 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 exten­sions.

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­er­al that we had con­trol over). This puts the site into per­for­mance hell.

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

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

Of course that doesn’t include all the oth­er javascripts includ­ing oth­er 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 any­thing.

Now let me say I under­stand on one lev­el why the exten­sions do what they do and why Joomla is designed the way it is designed. The exten­sions are self-con­tained. They can be installed and unin­stalled with­out affect­ing oth­er exten­sions or the main Joomla core. But this self-con­tain­ment allows for com­plete­ly 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 oth­er, either because they haven’t used name­spaces of some sort or they intro­duce incom­pat­i­ble code of anoth­er sort. An exten­sion that expects and requires jQuery 1.3.2 gets broke when anoth­er exten­sion loads jQuery 1.2.6 lat­er. I am just wait­ing for one of the mul­ti­tude of exten­sions installed on this site to sud­den­ly 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­ni­ty that real­ly irks me. I am see­ing more and more Joomla devel­op­ers move to a sub­scrip­tion mod­el. Oh, it isn’t a sub­scrip­tion for the exten­sion itself in most cas­es, 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 mon­ey doing what you do but this real­ly gripes me at one lev­el. To get sim­ple bug fix­es a year lat­er one needs to pay for the sub­scrip­tion to be able to access the down­load. It dri­ves one to pira­cy… almost. In at least one case, dig­ging in and fix­ing the bug myself was the cheap­er solu­tion. But of course, then there is the one devel­op­er 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 hap­py. 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 real­ly, 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­al­ly 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­ev­er. Now I know both jQuery and MooTools work very hard to at least not con­flict with each oth­er, 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 oth­er 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 oth­er com­plaints. It the­o­ret­i­cal­ly is even going to add addi­tion­al db dri­vers so PostgreSQL may be pos­si­ble. But I don’t see (but then I am not active­ly 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 thoughts on “What about Joomla?

  1. dendly

    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­ous­ly wrong. I can under­stand why you hate Joomla but you real­ly should blame the cus­tomer and not Joomla for that mess.

    Didn’t know that thing about mam­bo. Looked it up. It looks like it may have final­ly died off, there hasn’t been any activ­i­ty 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 !@$#$%.

  2. Pingback: 7 Great JavaScript Development Frameworks | denbagus blog

Leave a Reply