« Thingamablog From Source | Main | Forum is Down »

Friday, July 16, 2010

Open Source?

Q: When is Open Source not Open Source?

A: When some of the source code is not delivered.

There have been questions arising from the user base about why Thingamablog 1.5 was not delivered Open Source. Version 1.1 was open source. Bob decided to keep the source code proprietary for that version. We have not received an answer for why he did that other that "That is the way it is".

Since Bob has abandoned the program again, and it has some show stopper bugs in it now (it freezes when you try to upload the blog), the 1.5 version has become unusable for some people. Bob is not answering any queries about the bug. Since the code is not open source, the user community has no way to fix the problem either.

"Thank goodness I stayed with version 1.1b6", I said, "which was Open Source"! So I opened up some source files to see if it would be worthwhile to carry this tool forward in the future. Here is what I discovered.

I opened up the file HTMLEditor.java (since that seems to be really slow and I thought I could speed it up) to see if I could puzzle out how it works. That is when I found this in the file:

import net.atlanticbb.tantlinger.i18n.I18n;
import net.atlanticbb.tantlinger.ui.UIUtils;
import net.atlanticbb.tantlinger.ui.text.CompoundUndoManager;
import net.atlanticbb.tantlinger.ui.text.IndentationFilter;
import net.atlanticbb.tantlinger.ui.text.SourceCodeEditor;

The editor is using those other classes, such as SourceCodeEditor to do the real work.

The HTMLEditor uses a bunch of classes in the directory, "net.atlanticbb.tantlinger.ui.text", and that directory is not in the source tree. It must have been written by Bob because it has his name all over it. The classes are not in the Java class library. So I went looking for these critical classes in Thingamablog and finally found them in the file

thingamablog-1.1b6/lib/tamb-ui-commons.jar

Those classes have been delivered pre-compiled and in a jar file full of compiled classes.

There is no source code for those files in the source tree. Hence, if you want to extend/modify/fix/improve the part of the program that is coded in those files, you cannot. All we got were the binaries. So version 1.1 also was not really open source.

I think that it is a bit disingenuous to call a program "Open Source" and then not deliver all of the source code, locking up critical parts it as proprietary.

Posted by Brian S. Kimerer at 8:19 PM

This site and all of its contents are copyright Brian S. Kimerer 2009