So PH went and built himself a CMS/blog. He wrote it from scratch, and I asked him about it, and what he had to say makes a lot of sence. Its the same issue I’ve had with open source, and it parallels a lot of issues in the embedded world as well.
Its not so much that the open source software lacks in quality, but more so, the issues with maintenance. Its a rare webmaster indeed who uses things without modification. Now, as long as the main code is stable, and the hooks and such are stable it tends to work pretty well. The problem is that when you end up making a lot of hacks to the core program, you run into update headaches later on. We ran into this with Mambo, where in everytime they did an update, it took 2-3 days to rewrite our custom hacks to comply with the changes.
Granted, as a product matures, the chances of major rewrites every few months diminishes. Certainly, in the case of Joomla, they are no longer fiddling with the SQL database, so at least thats rock solid. This was not the case years back with Mambo.
The other thing I’ve noticed, is vast differences in the styles of different groups. It seems within php, the tendency is to make everything global, and forget about declarations are variable passing. While I know there are provisions to do so, it seems it is a might bit of a rarity. Certainly, structure and the discpline it requires can be a headache, yet, when everything is out, and ready to be stepped on, it can be a real bugger to find what actually is going on. At least, in the embedded world, we can hook up an emulator, or at a minimum a logic analyzer to actually see what the code is doing. It is interesting for sure.
Yet, open source does give a wealth of ideas. There are new things brought to the table daily, and thus, it presents incredibly value. As it evolves, perhaps the maintenance tasks and hooks will be less and less of a hassle. I sure hope so, there are some cool open source programs out there.