3 Prime Directives of Open Source Software

Open source software has always been near and dear to my heart. I just love the idea that everyone collaborates on a project to meet an end goal. That being said, the nature of open source means that anyone can publish OSS (open source software) just like how anyone can build a machine. Each item may not always be that great. In what regards is an not that great: end goal, installation, or development? With any software prime 3 directives must be achieved, but even more so with the open nature of OSS. If a piece of software does not perform a useful utility, cannot be installed, or cannot be developed then, no matter how good the original developer engineered the software, the software is doomed to rest in the large graveyard that is OSS.

Searching through SourceForge.net, I stumbled upon the SQuirel SQL Client project. Let’s see whether this project fulfills the latter directives.

1. The system successfully accomplishes a useful task.
The SQuirel SQL client is able to connect to multiple database management system from one user interface as long as the correct JDBC driver is present. There are not many open source SQL client managers because of the complexity of connecting to a database. But now that the Eclipse database management plugin is become a mature project, the SQuirel SQL client may be decreasing in utility as a SQL client.

Yes, this system accomplishes a useful task.

2. An external user can successfully install and use the system.
Installation was as easy as running the JAR file, but may not have been readily obvious for those not familiar with running Java JAR files. The installation directions was present on the website only. As far as I know, there does not exist another text file included with the download that indicates how to install this system. The documentation is located in the Subversion repository.

java -jar squirrel-sql-3.4.0-install.jar

After running this command, the installer presented me with a GUI where I was able to select optional plugins and the installation directory.

SQuirel Installer

After the installation, I was able to start up the application and create a connection to a database with relative ease. The introduction page shows an example on how to install a JDBC driver.

SQuriel SQL

No, a user needs technical knowledge of Java in order to run the system. If a user can get over the hump of installing the project and the JDBC driver, then this application is easy to install and use.

3. An external developer can successfully understand and enhance the system.
As this project has been in development since 2001, this project had been moved over to Subversion from CVS in about 2006. The other great aspect about this project is that the code is built using Apache Maven. Since Apache Maven is a great way to standardize a project on top of a build system, I believe an external developer will be able to focus more on the code rather how to built the code.

But there does seem to be much documentation on the layout of the repository. There exists documentation on how to setup your computer system for development, but it does not convey the layout of the code. It seems that the only way to know the system intimately is to build the system.

Yes, developers should have the ability to look into the code repository to build the system since this project relies heavily on Maven.