Sunday, 7 August 2011

All about open source software

The Open Source Definition, as by the Open Source Initiative:

Introduction

Open source doesn't just mean access to the source code. The distribution terms of open-source software must comply with the following criteria:

1. Free Redistribution

The license shall not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license shall not require a royalty or other fee for such sale.

2. Source Code

The program must include source code, and must allow distribution in source code as well as compiled form. Where some form of a product is not distributed with source code, there must be a well-publicized means of obtaining the source code for no more than a reasonable reproduction cost preferably, downloading via the Internet without charge. The source code must be the preferred form in which a programmer would modify the program. Deliberately obfuscated source code is not allowed. Intermediate forms such as the output of a preprocessor or translator are not allowed

3. Derived Works

The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software.

4. Integrity of The Author's Source Code

The license may restrict source-code from being distributed in modified form only if the license allows the distribution of "patch files" with the source code for the purpose of modifying the program at build time. The license must explicitly permit distribution of software built from modified source code. The license may require derived works to carry a different name or version number from the original software.

5. No Discrimination Against Persons or Groups

The license must not discriminate against any person or group of persons.

6. No Discrimination Against Fields of Endeavor

The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.

7. Distribution of License

The rights attached to the program must apply to all to whom the program is redistributed without the need for execution of an additional license by those parties.

8. License Must Not Be Specific to a Product

The rights attached to the program must not depend on the program's being part of a particular software distribution. If the program is extracted from that distribution and used or distributed within the terms of the program's license, all parties to whom the program is redistributed should have the same rights as those that are granted in conjunction with the original software distribution.

9. License Must Not Restrict Other Software

The license must not place restrictions on other software that is distributed along with the licensed software. For example, the license must not insist that all other programs distributed on the same medium must be open-source software.

10. License Must Be Technology-Neutral

No provision of the license may be predicated on any individual technology or style of interface.


Free Software Licensing

All open source software is not distributed under the same licensing agreement. Some may use a free software license, a copyleft, or GPL compatible. The GNU GPL license is a free software license and a copyleft license, while a "GNU Lesser General Public License" is a free software license, but not a strong copyleft license. There are many different types of licenses for free software . some GNU GPL compatible, some not.

The Open Source Initiative approves open source licenses after they have successfully gone through the approval process and comply with the Open Source Definition (above). There is currently well over fifty licenses that have been approved by the OSI.
For example, the GNU General Public License (GPL) is one license that accompanies some open source software that details how the software and its accompany source code can be freely copied, distributed and modified. The most widespread use of GPL is in reference to the GNU GPL, which is commonly abbreviated simply as GPL when it is understood that the term refers to the GNU GPL. One of the basic tenets of the GPL is that anyone who acquires the material must make it available to anyone else under the same licensing agreement. The GPL does not cover activities other than the copying, distributing and modifying of the source code.

Advantage of open source software


When it comes to open source software, there are a number of factors to consider, some positive and some negative.  First, this particular type of software is actually free.  Released and distributed under the umbrella of specific terms for licensing, the purchaser would enter a special source code to use the product. Once the software has been installed, the user becomes restricted by the licensing requirements.
The dynamics associated with open source software include the following:

•    Source code included and must be used
•    Product is free
•    Modifications have to be allowed
•    No person or company can be discriminated against
•    No industry can be discriminated against
•    The author’s or programmer’s source code is to be respected
•    Licensing is neutral to technical
•    One license has to cover all people using the application

Open source is created and then given out fee.  Depending on the programmer and company, the application may be a standalone product or bundled in with other free or charged applications.  Pertaining to the advantages and disadvantages of open source software, the upside is that there are many different uses.  For instance, this type of software could cover things such as education, entertainment, ecommerce, and much more.  Some of the advantages are as follows:

•    Free – Again, while some hidden costs may exist, the software application itself costs you nothing.  Obviously, for many business owners trying to get a company started, this can be very beneficial.

•    Evolution – Open source software usually has a number of programmers and companies involved, which means as new technological advances are made, you get to enjoy them.  The fast evolution of open source software is very exciting.

•    Hands-On – On the positive side of the advantages and disadvantages of open source software, you will also find that many of the upgrades or modifications are things you can do, which eliminates the need to purchase additional items or hire a professional programmer to complete the installation.

•    Multiple Vendors – Next, whenever you purchase a shrink wrapped application, you are locked into one particular vendor.  This means that if you run into problems or have questions, you have to work with that vendor only.  Unfortunately, even the best support can take time and sometimes, money.

Now the downside of advantages and disadvantages of open source software, you would need to consider:

•    No Production – Although programmers of open source software have the best of intentions to continue on with the project, some turn their attention to other things.  For you, this could mean working with a bug filled application and finding you have no fixes that will ever be offered, unless you fork out good money to an independent programmer.

•    Support – With standard applications, you are buying a legal license, which protects you and the seller.  In this case, the company that sells the software is obligated to provide you with quality customer and technical support.  However, with open source software you could be faced with situations of needing some quick answers but find that you either does not get it in a timely manner, get no support at all, or you have to pay a significant fee for help.

•    Features – Then, most types of open source software are very innovative because these are up and coming programs.  Even so, you might find that a friend’s company that uses this type of software thinks the included features are over the top but then for your specific business, they may not add any or enough value.

As you can see, when it comes to the advantages and disadvantages of open source software, there are some definite pros and cons to consider.  It could very well be that this is the perfect solution for you, helping you to start or grow a business without having to expend a lot of money.  However, before you determine this to be the perfect solution, you need to carefully analyze the various advantages and disadvantages of open source software to ensure this is what you really want and need.

The solution might be that you use open source software along with standard software, finding the perfect balance.  There are many exciting possibilities associated with open source software but it is imperative to do all your homework before choosing the right application for your personal or business use.

Term free in open source software


0. The freedom to run the program for any purpose.
With open source software there are no licence fees, up front or ever. There is no restriction to run the software on a given number of terminals or for a specified number of users. Says Miles: “That’s not to say that it’s without any costs, but training, support, maintenance and, for web-based applications, hosting, are costs which apply to all software, whether open source or proprietary”.
1. The freedom to study how the program works, and adapt it to your needs.
Whilst there are going to be relatively few librarians with the skills, time or inclination to study the source code, you are able to invite anyone with the relevant skills to study it for you. Miles again: “More importantly, access to the source code allows [library] techies to tailor the software to the specific needs of the [library]; it’s this adaptability of open source software which is its unique, er, selling point. For me, this is at the core of why open source software matters for [libraries].”
2. The freedom to redistribute copies so you can help your neighbour.
This is a critical advantage for schools, perhaps less so in the library world. For example, Koha is a fully featured ILMS. It is a very large and sophisticated piece of software. Whilst community members, particularly in Asia, are working to simplify the installation process, as of today inexperienced users will require support at installation. For the brave this is available from the email lists, but those not interested in the underlying technology or in a hurry to get started might prefer to call on the services of a support company. Either way, the call is yours.
3. The freedom to improve the program, and release your improvements to the public, so that the whole community benefits.
If you enhance the software, you can contribute your changes back to the project for inclusion in a future release. For the non-technical, ways to contribute to the community abound, by providing advice to new users, writing documentation or suggesting new features. Koha means ‘gift’ in the Maori language of New Zealand, where the system originated. If you appreciate the gift, you will want to give something back.
Though software that is open source is often not free of cost, it emanates from a superior model of software development. More on that in a future post.