Yireo - Extensions, tutorials and blog for Magento and Joomla!

Blog Tags

MageBridge Standard

Open source dumpware

Monday, 31 May 2010

In the Joomla! Extension Directory almost 5000 extensions are listed, and the number of extensions on the Magento Connect site is also running in the thousands. This might seem like a good thing, because this diversity gives you the freedom of choice. But this gives you also a lot of crap, so-called dumpware.

What does open source mean?

An extension becomes open source as soon as you apply the right license to it: For Joomla! the right license is the GNU/GPL, while for Magento the OSL applies. The license effectively allows others to modify the source code, while giving the original author still all the credits he/she deserves.

But with a lot of Joomla! extensions and Magento extensions, an open source license is applied - giving it a very cool charisma, while the actual code is badly written and full of bugs. This is not why people started with open source. Let's take a look at why there is a concept like open source.

Why use an open source license?

Open source started off as an initiative by some geeks. In the 70s, they wanted to modify some programs to make them better, but because the original creator did not give them the source code, they were unable to do is. Instead, they decided to write their own software instead, but implicitely share this software with others. This is why an open source license was invented - to backup the original idea of open source.

So the actual reason behind open source software is that everybody can help one and another: The original creator helps everybody by creating the original software. But third party developers can add additional changes, and send them back to the creator - thus, helping themselves, the original creator and everybody else.

Helping third party developers

But helping third party developers when they want to improve your own code, is not only about applying a license. If you write code that is absolutely unreadable to others, the whole license makes no point - other developers can read the code with their eyes, but the code might be too hard to understand.

This is why there are other conventions as well: There are coding standards. The code should be clearly written, variables should make sense, complicated code-structure should be accompanied by explanatory comments. And above all, it must be easy to reach the original creator - either through forums, guestbooks or emails. If the original creator never replies, why use an open source license?

Open source or public domain?

Besides open source, there are other options to share your code with other people: One of them is called public domain. If you release an extension in the public domain, it says as much as that you don't care what happens with it. You wanted to share it with the world, but if people run into problems, you shouldn't be the one solving those problems.

So if you don't want to take up the responsibility for the code, public domain is much better than open source. Unfortunately, open source is also about legal agreements. For instance, with Joomla! all extensions need to be GPL-ed. That's why instead of calling badly written Joomla! extensions "public domain", it might be better to call them "open source dumpware".

More practical: Finding bad extensions

For programmers there are many practical ways to find out if an extension is bad or not. Just download the extension and peek at the code: Is the code commented? Does the code following the coding standard of the overall project (Joomla!, Magento)? Are functions and classes setup in a logical manner?

But for non-programmers it is harder to inspect the code. Of course there are other criteria: Does the creator give good support? How is the response time? What is the release schedule? On top of that, other users might give reviews. But to find out if an extension contains crappy code, is not something you will find in general reviews.

Bad code

Too often people choose extensions because of numerous good reviews, but as soon as the extension needs to be modified by a third party developer, news comes out that modification is too difficult because the source code is very bad.

We don't offer any solutions to this problem, but the first step into improving the situation is pointing out the problem: Many extensions might seem good because of their functionality, but when it comes to the code, the open source princinple looses it's power.

Tags: joomla | magento

About Yireo

Yireo tries to help webdevelopers build successful Joomla! and Magento sites.

More about Yireo