The End of an Era

Posted by Michael Babker on

In May 2010, by pure accident, I stumbled into a software community that ended up redefining my life and career. And for eight and a half years, I have given a substantial portion of myself back to Joomla and the Open Source Software community. But that is no longer sustainable, and it's not something I particularly enjoy doing anymore, so within the next couple of months I will be withdrawing myself as an active contributor to Joomla (and probably most open source outside of select projects or needs).

Why Now?

To put it bluntly, my participation in Joomla is no longer beneficial to me or Joomla, and I am fully aware that there are a fair number of people who welcome this announcement. For far too long now, I have constantly been at odds with the Joomla project and contributors, having a different guiding set of principles and beliefs as it relates to how the project and software should move forward or do anything other than be stagnant. I have a different vision for what the software should be than a vast majority of others who voice their opinions. And perhaps most painful to admit to, I have felt like for quite some time that my time, resources, and opinions are not respected by the project (supported by claims that I proactively try to block progress in the project, have to have control over everything, and that the only reason I continue contributing to open source is to publicly stroke my ego).

I can tolerate a lot of things. What I cannot tolerate is constant disrespect toward me and my character. As a member of the Board of Directors of Open Source Matters, Inc., I constantly felt my time was disrespected because I would not drop everything on a dime at the project's request, something that was more feasible for the CEO's and self-employed individuals of the board to do compared to me with my commitments to my employer. As a code contributor, who has bent over backwards to fulfill user requests that the project leadership felt was not necessary or who put in time on efforts core teams acknowledged needed to be done but provided little support for completing, I have felt my time and efforts were wasted and on multiple occasions wanted to abandon my work and apologize to the contributors who gave their time to helping those efforts. I have seen teams and individuals completely disregard the information and ideas I have proposed and go behind my back to try and create shortcuts to complete tasks in the fastest and cheapest manner without any regard for long term needs. And to be frank, the accusation that I only contribute to open source for some form of self satisfaction is honestly one of the most hurtful claims that has ever been made against me and since that is the perception of me it is one of the biggest reasons why my contributions have slowed down drastically and will be stopping completely.

Long Term Issues

It is no secret that I disagree with a fair number of ideas people propose. It is no secret that I quite openly go against the grain as it relates to the project and its status quo, and don't simply "drink the Kool-Aid" and accept everything for what it is and that every idea that comes along is a good idea. Any healthy community must be able to promote debate and support the notion that not everyone will always agree on everything. Joomla is not that community. For years, I have advocated against the way that Joomla collectively tries to keep its head buried in the sand and ignore the problems it faces by pointing them out and trying to force them to be addressed head on. It seems there is no interest in actually fixing the problems. As long as the hole under the rug can be dug deeper and issues swept into it, that will continue to be the preferred course of action unless you are one of two individuals that it seems the project proactively works against.

State of the Software

I have hesitated sharing this opinion publicly, but it needs to be said. Joomla 4 has been an ambitious effort, and rightfully so. However, the project derailed twice and was forced to be rebooted because of that derailing, and I feel that the current state of Joomla 4 is reaching a point where it too needs a reboot. A lot of good work has gone into the software and the new version, but the branch I believe has reached a state where it needs to be archived and rebooted for a multitude of reasons:

  • As of this writing, the current branch is 1100 commits behind current 3.x development (I believe 3.8.8 was the last release fully merged forward), meaning the branch is seven stable releases behind the current stable release series (including all of the work for the 3.9 release, which includes two components that have not been integrated in any way into the Joomla 4 architecture or UI considerations)
  • There are a number of half complete features in the current branch that should not have been merged to the main development branch (this is not to say the features are bad in any way, rather this is to point out the work was merged in an incomplete or broken state; of those merges the only thing that is a continued work in progress is the workflows system with most every other major feature that is incomplete being in a state of abandonment)
  • Rightfully, there has been a push to decouple Joomla's overly opinionated rendering layer from jQuery and Bootstrap, and while this is a much needed move I feel as long as there is an overly opinionated rendering layer in core this type of push will introduce more issues than it fixes, and in many ways you can already see it with the approaches taken to the core templates for each application, not to mention that there are core APIs (Form and HTML) which are used across applications and changes made for one are going to affect the other (singular form purposefully used here because I don't believe the continued GSoC work for a core API layer/application will merge given how little focus it gets)
  • A lack of resources to complete all of the work (which at this point there have been legitimate questions regarding the state of the branch and if there is a measureable milestone that can be reached to create a release) and a lack of resources to maintain the new infrastructure (everything JavaScript in Joomla 4 is the effort of a small number of people, most of whom at this point have backed off on their contributions)

Another unpopular opinion I have held for a while is that Joomla just needs to formally abandon the Joomla Framework as a standalone concept and fold the code that will be used back into the CMS repo and let the rest just live gracefully in archived repos for anyone who wants to reference it or fork and maintain it. Realistically, that group of repositories has been my working space for the better part of two years with community contributions only starting to come in "core" packages simply because Joomla 4 now uses them. The project does not have the resources to support and maintain this code as a separate entity, and it should not be seen as a failure to admit that the project is reorganizing things to make more efficient use of its limited resources.

What Next?

To be honest, aside from "ego driven" contributions that fulfill a purpose (such as business needs or sharing ideas/improvements based on the work I have done with someone's code), this is probably the end of the line for me as a general open source software contributor. I've given eight and a half years of my life to open source, at times putting so many hours into it that it was like working a second job (legitimately there was a period of time in late 2013 and early 2014 where I was averaging 2-3 hours of sleep per night because of the time I was putting in for Joomla). It's time for me to move on to a less public life and find a new passion that means I don't spend 14 hours per day staring at an IDE and writing software.