The Matrix

July, 3rd, 2014

You may remember the scene where Neo went to the Oracle the first time, and met a child in the waiting room "playing" with spoons, telling him "there is no spoon". Quite impressive, by the way.

And indeed, when it comes to CMSimple, there is no spoon, but there are several forks instead. While I'm not convinced that forking a software is generally the best idea, as that leads to fragmentation of resources, it is quite common for open source software, and hey, why not follow the Vulkan slogan "Infinite Diversity in Infinite Combinations". In fact, a fork might introduce innovative ideas, and anyway, competition is good for business.

However, there is a serious issue when the software is a host for extensions, because as times goes by the APIs of the different forks will most likely diverge, and it's getting harder and harder for these extensions to stay compatible with all forks. While an extension developer might put a lot of work in to stay compatible with at least some of the forks, his productivity will inevitably decrease.

This is especially true if some of the forks are rather conservative and others are more innovative, or at least try to catch up with modern APIs to support extension development. From time to time the developer will have to reconsider whether he deems it worthwhile to waste time to stay compatible with all of the forks, or whether he prefers to support only a few (or even a single one) to be able to concentrate on improving his extensions.

Actually, I have reconsidered this issue recently. CMSimple_XH 1.5.4 has past its end-of-life, and CMSimple_XH 1.6 offers some nice APIs for extensions. The classic CMSimple (≤ 3.4) as well as CMSimple SE have been discontinued; CMSimple classic doesn't seem to be really popular. Of course there is CMSimple 4.x, but this variant does neither bring any new or improved APIs for extensions nor is its development assessable: there is no publicly available roadmap and so far there have been no beta releases, so a developer might find that his extensions don't work after the next release. There isn't even a place where I could report respective issues—the developer simply ignores my emails, and even if I could get registered for his forum, he most likely would ignore my posts, or kick me out of the forum soon. Just to proof me wrong, I just send a registration request. I don't expect an answer, but I'll keep you up-to-date.

So I have decided to release new extensions and new versions of existing extensions mainly for CMSimple_XH 1.6. IMHO everyone will benefit from that, as I can save time to rebuild the wheel (I would not have to reinvent it, though). And if I save time, I'll be able to publish more extensions respectively add more features to existing extensions. Sounds like a win-win situation, except for users of CMSimple 4.x—but these may consider switching to CMSimple_XH—or should I dare to say, upgrade to CMSimple_XH 1.6.

I'm looking forward to hear your opinion!

By the way: did you know that CMSimple 4.x is based on CMSimple_XH 1.5.3, and not directly on CMSimple 3.4?

PS: I was wrong, as I got an answer from Gert pretty soon. However, he wrote that I am not welcome in his forum.

User Comments

On August 21, 2014 Henrik Rydberg wrote

I really do appreciate your effort to keep CMSimple_XH up to date,...and not only the CMS itself but also the plugins. CMSimple is really remarkable, in all its simplicity, and I think you are doing a job which we all should honor!

Greetings from Sweden

/Henrik Rydberg