I have a bit of a rant in me right now so you may want to duck and cover. Although I tend to disagree with some of the rabid and rather constraining ideologies in the open source community, I have always agreed with the basic issue that the source code should be open so that the customer of that code can go in and tweak it to meet their needs. Closed source code puts constraints around their code so that the one using the code can not use it as they need it. In web development where most code involved by default has to be open there should be openness. But there are those who would close things down.
I am working with a client developing a refresh of their web site. It is starting to look pretty good. They are using Joomla 1.5 for their base and adding a bunch of third party extensions, several of which they have paid for, to help meet their needs. I have gone in and tweaked a couple of them to match the extensions more closely to the needs of my client. Joomla and most of those extensions are open source. But I have run into one that needs some tweaking but they encrypted their code with IonCube so it can only be run with the IonCube decoder.
The extension is from sakic.net and they should be ashamed of themselves. Quite frankly, I would that no php developer ever use these encoders so that the encoder developers would just go out of business. And, customers should never pay for something that uses these encoders!
I believe firmly that the developers should receive compensation for their work if they so desire. I have no problem with paying for these third party extensions. But for them to prevent the end user from being to able to change the code to meet their needs… growl. One wonders what they are hiding, could it be nefarious?
This is one of the biggest problems with closed source code, especially from small developers. One does not have any way of knowing what is going on inside that black box or how it could even innocently be doing something damaging. Nor could one go in and fix a bug real quick instead of hoping that the developer will fix it. Don’t get me started again with third party data sources! My client has run into a situation as well with a third party data source that has a bug and they refuse to fix it — that simply reinforced my dislike for them.
On the other hand, I don’t go so far as to say that developers have to follow exactly the Open Source Initiative’s definition of “open source.” I believe a developer has to have the right to restrict distribution of their code for one. In fact, I feel this points out probably the one big idea that I really take issue with the open source community. They do not care one whit about the developer, they only care about the rights of the end user. Obviously, from this post, I sincerely care about the end user’s rights but they have to be balanced with the developers.
So let me be plain. Do not purchase products from sakic.net until they stop encoding their products. They could protect their intellectual property by proper copyright provisions and still allow people to modify their code for their own needs. But this wanton disregard for their customer’s needs precludes me from recommending their products.
If you are a php developer, do not use IonCube or any of the other encoders (including Zend Guard). Lets rid ourselves of these warts in the PHP community. I still find it sad that Zend encourages closed source code using an open sourced language. Growl!
Ok, rant off for now.