Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 -...
Transcript of Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 -...
Practical Uses of Open Source
Jonathan HoodCSE 4000
Practical Issues in Software Engineering
Introduction
What is Open Source?
Open Source Licenses
Pros of Open Source Software
Cons of Open Source Software
Scenarios
What is Open Source?
Source code is free to look at.
Compiled application is (typically) free to use.
Licensed under one of many OSS licenses.
Licenses are typically GPL compatible.
What is Open Source?
OSS Projects are Developed:
By Hobyists
By Software Companies
By people all over the world
What is Open Source?
Examples:
Linux Kernel
BSD-Derived Operating Systems
Mozilla Firefox
OpenOffice.org
Apache Web Server
Many, Many, Many more
What is Open Source?
Where are we?
What is Open Source?
Open Source Licenses
Pros of Open Source Software
Cons of Open Source Software
Scenarios
Copyleft
Forces derived works to inherit license
Guarantees 'freedom' of derived works
Causes problems for proprietary software
Licenses: GPL
GNU General Public License v3
Created by Richard Stallman
Fundamental example of an open-source license.
Highly restrictive.
Licenses: GPL
if( use_gpl_code ) {
distribute_changes_as_gpl(); distribute_linked_apps_as_gpl_compatible();
}
Licenses: LGPL
GNU Lesser General Public License
Can be linked to by non-GPL compatible software.
Can be distributed with your software...
Licenses: LGPL
if( modify_lgpl_program ) {
distribute_changes_as_lgpl();
} else {
distribute_however_you_like();
}
Permissive
Licenses that aren't copyleft
Derivative works can be licensed however
Most useful to corporate entities
Licenses: MIT
MIT License
Only 20 lines!
Liberal terms.
Use this code however you like...
Licenses: MIT
if( modify_mit_program ) {
sublicense_however(); give_attribution();
} else {
distribute_with_mit_license(); }
Licenses: BSD
3-clause BSD license
Very similar in terms to MIT
Adds a 'no advertising clause'
Licenses Compared
License Allows Linking
Distribution Code Change Redistribution
GPL Not Allowed
Only if software is GPL compatible.
Derivative must be GPL
LGPL Allowed Changes must be distributed as well.
Changes must be distributed as GPL or LGPL.
MIT Allowed Allowed Allowed
BSD Allowed Allowed Allowed
http://developer.kde.org/documentation/licensing/licenses_summary.html
Where are we?
What is Open Source?
Open Source Licenses
Pros of Open Source Software
Cons of Open Source Software
Scenarios
Pros: Footprint
People all over the world look at the same code.
Potentially huge development teams.
Broader testing base.
Pros: Cost
IF a component fits your system:
Save many development hours
Small customizations may be easy
A lot of testing is done for you
Pros: Documentation
Open source projects have many developers.
For them, documentation is a must.
Bad documentation indicates a bad project.
Where are we?
What is Open Source?
Open Source Licenses
Pros of Open Source Software
Cons of Open Source Software
Scenarios
Cons: Cost
OSS may not fit your system!
Large modifications -> Time Consuming
Testing is hard -> You introduced bugs!
People with expertise are expensive.
Cons: Licensing
In short, hire a lawyer!
GPL licenses are complex
FSF protects OSS with a vengeance.
A special case. You want to open source!
Cons: Intellectual Propery
You can still infringe on someones patents.
Patent trolls are real.
Again, hire a lawyer!
Cons: Temperamental Community
Make sure you contribute back, at least a little
This community is full of 'early adopters'
They influence people's opinions
Where are we?
What is Open Source?
Open Source Licenses
Pros of Open Source Software
Cons of Open Source Software
Scenarios
Scenarios
The Project Ping Pong Deluxe
The Option Super Graphics Library 3
The License GPL
Documentation Function ListingForums
Project Status Stale
Scenarios
The Project c+++ compilerCompile the successor to c++Open Source
The Option sac (super awesome compiler)
The License GPL
Documentation UML DiagramsExample CodeForumsIRC
Project Status Highly Active
Scenarios
The Project SupaBrowserProprietaryPut ads on every page
The Option Superfox
The License MIT
Documentation ForumsUser GuidesTesting Guides
Project Status Active
Scenarios
The Project TCP/IP Router
The Option Linux Kernel
The License LGPL
Documentation ForumsUser GuidesTesting GuidesImplementation Details
Project Status Active
Conclusion
Open Source Software is a great tool
It's not a silver bullet!
Know the licenses, and when they are appropriate.
It won't always save you money
References
http://developer.kde.org/documentation/licensing/licenses_summary.htmlhttp://www.opensource.org/licenses/alphabeticalhttp://en.wikipedia.org/wiki/GPL http://en.wikipedia.org/wiki/LGPL http://en.wikipedia.org/wiki/MIT_License http://en.wikipedia.org/wiki/BSD_License http://www.educause.edu/EDUCAUSE+Quarterly/EDUCAUSEQuarterlyMagazineVolum/IsThereSuchaThingasFreeSoftwar/174575 http://www.gnu.org/copyleft/http://www.opensource.org/node/442http://www.gnu.org/graphics/fsf-logo.html
Questions?