Databases Reference
In-Depth Information
Sanjoy is a freelance software developer. He is creating a Java application to help interior
decorators to track their hours and send invoices. In Java, strings are immutable, which
means that the contents of the string cannot be changed after they have been created. He
now needs a class that implements a mutable string with full String capabilities, such as
split(), find(), and substring(). After performing some searches, he found a class that did
what he wanted that was part of the MG4J (Managing Gigabytes for Java) full text search
engine. Unfortunately, he wasn't able to use the class, because MG4J uses the Lesser GNU
Public License, and Sanjoy is writing an application for commercial purposes. In the end,
he implemented his own mutable string class.
In this scenario, Sanjoy has to balance competing requirements: up front devel-
opment costs and future commercial opportunity. Development costs encompasses
both expenses and his own time. Sanjoy works for himself and any development ex-
penses will cut into his take-home pay. Consequently, he would like to use code that
is low cost or nearly free. Also, reusing existing code will save him time. Although
Sanjoy is currently working for a client, it is not uncommon for freelancers to take
bespoke software and later turn it into a revenue stream as a product. The only way
that Sanjoy could reuse MG4J is if he had no future plans to sell the software. Con-
sidering all the options, he decided to implement his own classes. The code that he
needed was relatively small and wasn't worth sacrificing future potential, especially
when he had a working example that he could use to inform his own work.
If the component that Sanjoy needed was larger or more complicated, he may
have decided that it was worth compromising a future opportunity. It is also not
unusual for software developers to simply violate the license. Sometimes they do
this because they lack the education or knowledge. Other times they do so, because
they believe it is unlikely that they will be caught. Open source projects are not
known for their tenacious legal teams. Another possible reason is that people in
general have become used to copying digital goods, violating licenses, and feeling
no remorse. The exploration of the reasons is beyond the scope of this chapter, but
suffice it to say that it does happen and we cannot endorse it.
The GPL license created by Stallman integrates a provision that terminates the
license if the underlying code is used in a patent. Due to provisions such as this, it
is important for a programmer to understand the restrictions of the license and how
it can be used. Licenses do not prevent fair use of the software.
There are, however, plenty of alternatives available if GPL does not fit a program-
mer's needs. An estimate from the Open Source Initiative suggests there are over 70
different open source licenses. 1 The Creative Commons License is one alternative,
and while not as popular as the GPL, might better fit the flexible needs of program-
mers. The Creative Commons license, unlike the GPL, does not require the author to
share his or her work under the same license though he could if he should so choose.
In fact, the license can be as restrictive or permissive as the author chooses. Creative
Commons operates as a framework where the author hand-picks what modules to
1
http://www.opensource.org/licenses/alphabetical .
Search WWH ::




Custom Search