Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 -...

34
Practical Uses of Open Source Jonathan Hood CSE 4000 Practical Issues in Software Engineering

Transcript of Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 -...

Page 1: Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 - Practical Issues in... · 2018-01-08 · Pros of Open Source Software Cons of Open

Practical Uses of Open Source

Jonathan HoodCSE 4000

Practical Issues in Software Engineering

Page 2: Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 - Practical Issues in... · 2018-01-08 · Pros of Open Source Software Cons of Open

Introduction

What is Open Source?

Open Source Licenses

Pros of Open Source Software

Cons of Open Source Software

Scenarios

Page 3: Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 - Practical Issues in... · 2018-01-08 · Pros of Open Source Software Cons of Open

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.

Page 4: Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 - Practical Issues in... · 2018-01-08 · Pros of Open Source Software Cons of Open

What is Open Source?

OSS Projects are Developed:

By Hobyists

By Software Companies

By people all over the world

Page 5: Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 - Practical Issues in... · 2018-01-08 · Pros of Open Source Software Cons of Open

What is Open Source?

Examples:

Linux Kernel

BSD-Derived Operating Systems

Mozilla Firefox

OpenOffice.org

Apache Web Server

Many, Many, Many more

Page 6: Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 - Practical Issues in... · 2018-01-08 · Pros of Open Source Software Cons of Open

What is Open Source?

Page 7: Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 - Practical Issues in... · 2018-01-08 · Pros of Open Source Software Cons of Open

Where are we?

What is Open Source?

Open Source Licenses

Pros of Open Source Software

Cons of Open Source Software

Scenarios

Page 8: Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 - Practical Issues in... · 2018-01-08 · Pros of Open Source Software Cons of Open

Copyleft

Forces derived works to inherit license

Guarantees 'freedom' of derived works

Causes problems for proprietary software

Page 9: Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 - Practical Issues in... · 2018-01-08 · Pros of Open Source Software Cons of Open

Licenses: GPL

GNU General Public License v3

Created by Richard Stallman

Fundamental example of an open-source license.

Highly restrictive.

Page 10: Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 - Practical Issues in... · 2018-01-08 · Pros of Open Source Software Cons of Open

Licenses: GPL

if( use_gpl_code ) {

distribute_changes_as_gpl(); distribute_linked_apps_as_gpl_compatible();

}

Page 11: Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 - Practical Issues in... · 2018-01-08 · Pros of Open Source Software Cons of Open

Licenses: LGPL

GNU Lesser General Public License

Can be linked to by non-GPL compatible software.

Can be distributed with your software...

Page 12: Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 - Practical Issues in... · 2018-01-08 · Pros of Open Source Software Cons of Open

Licenses: LGPL

if( modify_lgpl_program ) {

distribute_changes_as_lgpl();

} else {

distribute_however_you_like();

}

Page 13: Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 - Practical Issues in... · 2018-01-08 · Pros of Open Source Software Cons of Open

Permissive

Licenses that aren't copyleft

Derivative works can be licensed however

Most useful to corporate entities

Page 14: Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 - Practical Issues in... · 2018-01-08 · Pros of Open Source Software Cons of Open

Licenses: MIT

MIT License

Only 20 lines!

Liberal terms.

Use this code however you like...

Page 15: Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 - Practical Issues in... · 2018-01-08 · Pros of Open Source Software Cons of Open

Licenses: MIT

if( modify_mit_program ) {

sublicense_however(); give_attribution();

} else {

distribute_with_mit_license(); }

Page 16: Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 - Practical Issues in... · 2018-01-08 · Pros of Open Source Software Cons of Open

Licenses: BSD

3-clause BSD license

Very similar in terms to MIT

Adds a 'no advertising clause'

Page 17: Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 - Practical Issues in... · 2018-01-08 · Pros of Open Source Software Cons of Open

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

Page 18: Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 - Practical Issues in... · 2018-01-08 · Pros of Open Source Software Cons of Open

Where are we?

What is Open Source?

Open Source Licenses

Pros of Open Source Software

Cons of Open Source Software

Scenarios

Page 19: Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 - Practical Issues in... · 2018-01-08 · Pros of Open Source Software Cons of Open

Pros: Footprint

People all over the world look at the same code.

Potentially huge development teams.

Broader testing base.

Page 20: Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 - Practical Issues in... · 2018-01-08 · Pros of Open Source Software Cons of Open

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

Page 21: Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 - Practical Issues in... · 2018-01-08 · Pros of Open Source Software Cons of Open

Pros: Documentation

Open source projects have many developers.

For them, documentation is a must.

Bad documentation indicates a bad project.

Page 22: Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 - Practical Issues in... · 2018-01-08 · Pros of Open Source Software Cons of Open

Where are we?

What is Open Source?

Open Source Licenses

Pros of Open Source Software

Cons of Open Source Software

Scenarios

Page 23: Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 - Practical Issues in... · 2018-01-08 · Pros of Open Source Software Cons of Open

Cons: Cost

OSS may not fit your system!

Large modifications -> Time Consuming

Testing is hard -> You introduced bugs!

People with expertise are expensive.

Page 24: Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 - Practical Issues in... · 2018-01-08 · Pros of Open Source Software Cons of Open

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!

Page 25: Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 - Practical Issues in... · 2018-01-08 · Pros of Open Source Software Cons of Open

Cons: Intellectual Propery

You can still infringe on someones patents.

Patent trolls are real.

Again, hire a lawyer!

Page 26: Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 - Practical Issues in... · 2018-01-08 · Pros of Open Source Software Cons of Open

Cons: Temperamental Community

Make sure you contribute back, at least a little

This community is full of 'early adopters'

They influence people's opinions

Page 27: Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 - Practical Issues in... · 2018-01-08 · Pros of Open Source Software Cons of Open

Where are we?

What is Open Source?

Open Source Licenses

Pros of Open Source Software

Cons of Open Source Software

Scenarios

Page 28: Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 - Practical Issues in... · 2018-01-08 · Pros of Open Source Software Cons of Open

Scenarios

The Project Ping Pong Deluxe

The Option Super Graphics Library 3

The License GPL

Documentation Function ListingForums

Project Status Stale

Page 29: Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 - Practical Issues in... · 2018-01-08 · Pros of Open Source Software Cons of Open

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

Page 30: Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 - Practical Issues in... · 2018-01-08 · Pros of Open Source Software Cons of Open

Scenarios

The Project SupaBrowserProprietaryPut ads on every page

The Option Superfox

The License MIT

Documentation ForumsUser GuidesTesting Guides

Project Status Active

Page 31: Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 - Practical Issues in... · 2018-01-08 · Pros of Open Source Software Cons of Open

Scenarios

The Project TCP/IP Router

The Option Linux Kernel

The License LGPL

Documentation ForumsUser GuidesTesting GuidesImplementation Details

Project Status Active

Page 32: Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 - Practical Issues in... · 2018-01-08 · Pros of Open Source Software Cons of Open

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

Page 33: Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 - Practical Issues in... · 2018-01-08 · Pros of Open Source Software Cons of Open

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

Page 34: Practical Uses of Open Source - Mississippi State Universityweb.cse.msstate.edu/~allen/CSE 4000 - Practical Issues in... · 2018-01-08 · Pros of Open Source Software Cons of Open

Questions?