[Web4lib] What Sort of Library is Open Source Software For?

John Fereira jaf30 at cornell.edu
Fri Sep 23 08:51:35 EDT 2005


At 11:29 PM 9/22/2005, Ross Singer wrote:
>I would like to second what David wrote.  Also, there is an assumption 
>here that an Open Source software product might not be "finished" or "turnkey".

Lots of good discussion here, much of it which should illuminate the fact 
that not all open source software is equal.  More on that in a bit.


>In fact, Apache is the most widely deployed web server on earth.

The list of "finished" turnkey open source projects is very large.  There 
are more issues however, than whether an open source product is a 
"finished" other than it's set of features.  Some of them have already been 
mentioned but I thought I'd add a few of my thoughts regarding open source 
software, perhaps questions you might ask when evaluating an open source 
product.

First, the custodian of a o/s product can range from a single developer to 
a small development community to a consortium of institutions to a 
commercial enterprise.  Some examples are:

  single developer: Mark Mathews very successful MySQL JDBC driver
  development community:  most of the Apache projects (i.e. Tomcat)
  consortium: Dspace
  commercial enterprise:  Java

The question you might ask, not matter who the custodian might be is how 
committed they are to it's continued existance.  One can go to 
sourceforge.org and find dozens of open source projects for which the 
original custodian lost interest for one reason or another and the project 
became stagnant.

Associated with who the custodian of a project might be is just how open is 
it. As I see it there are essentially two types;  Projects which are 
released as open source but are essentially developed by a closed community 
and projects that support collaborative development.  While one can 
download the source for the Java SDK from sun it's not really open to 
collaborative development.  On the other hand, projects like uPortal (a 
project I'm intimately familiar with) is very open and collaboratively 
developed by essentially anyone that wants to get involved.  That can be an 
important distinction if an institution wants to have some involvement in 
the direction a product might take.  Being able to contribute to the code 
base and get those changes into the core code base can be very important 
for a product that might be used for many years.  Someone mentioned earlier 
that the advantage of open source is that assuming one has the skills you 
can modify the code to suit your needs.  While that might be seen as a good 
thing on the surface for a project that might have several releases a year 
it can become a maintenance nightmare trying to integrate local changes 
into a changing product.  When evaluating an open source project looking at 
how easy it is to make local customizations and either commit them back to 
the core code base or integrate them into future releases.

One of the areas that this becomes most important is related to product 
dependencies.  When I first looked at DSpace it required the use of 
Postgres for a backend database.  For many institutions there may be 
infrastructure requirements.  One the most common is the selection of 
backend databases such as Oracle or MySQL.  Others have proprietary 
authentication/authorization systems or directory services (LDAP vs. Active 
Directory).  Even though DSpace is open source customizing it such that it 
would use Oracle or MySQL instead of Postgres would have required a lot of 
work and once it was done it would have to be done again the next time a 
version of the product came out.

When evaluating an open source project looking at the track record for 
version releases may be a good indicator as to just how "finished" the 
project is.

Something else to keep in mind is that for many open source projects the 
core developers and custodians may all be contributing purely on a 
volunteer basis.  I'm involved in a project in such a capacity but I also 
have a "real job" so demands for enhancements, documentation, or support 
might have to take back seat occasionally.

While support models have been mentioned a closer look at how an open 
source project is supported is important.  Does it have a users and/or 
developers mailing list?  Is there an online forum for getting 
help?  Subscribing to and following mailings lists for o/s projects can be 
a good indicator as to how responsive project developers are going to be to 
problems encountered. Someone else mentioned a product which had a "closed" 
bug tracking system.  An open bug tracking system can be extremely useful 
when encountering problems using the product.  Issue tracking systems such 
as Jira are searchable and issues can be tied to specific releases.  If for 
example, I'm using version 1.3 of a product I can search for a problem I 
might be having and discover that it has been fixed in the 1.4 version or 
even download a patch that might fix a problem if I'm not ready to do a 
full minor release update.  If you go to http://issues.apache.org you'll 
find that most of the Apache projects now have Jira available for issue 
tracking.


>Mozilla's Firefox, while not enjoying the market share of Internet 
>Explorer, is gaining popularity and certainly doesn't require any geeky 
>hacker types to use.

No, but there are other product which might not require geeky hackers to 
use them but might require some training in it's use.  For some open source 
projects formal training just might not exist.


>There are times that commercial, closed source systems are a superior 
>choice (EZProxy comes to mind here).  There are Open Source products that 
>beat the pants off their commercial brethren (I think of Apache, MySQL or 
>PostgreSQL [in most conditions for the latter two]).

Whether a products beats the pants off another depends a lot on the 
requirements.  I know a lot of people that don't consider MySQL to be a 
viable technology for enterprise wide database driven applications, 
especially in the area of transaction management.



More information about the Web4lib mailing list