[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