0% found this document useful (0 votes)
75 views

Open-Source Software Project Development Instructor: Dr. T.Y. Wong Week

This document provides an introduction to open-source software development. It discusses what constitutes free software and how it differs from proprietary software. Free software is about free speech, not free beer, and comes with certain rights for users granted by a free software license. Open-source software development follows a different cycle than traditional software development, with programmers collaborating remotely over the internet. The document outlines some pros of open-source including innovation, reliability, and longevity, as well as a potential con around lack of support.

Uploaded by

api-12297134
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
75 views

Open-Source Software Project Development Instructor: Dr. T.Y. Wong Week

This document provides an introduction to open-source software development. It discusses what constitutes free software and how it differs from proprietary software. Free software is about free speech, not free beer, and comes with certain rights for users granted by a free software license. Open-source software development follows a different cycle than traditional software development, with programmers collaborating remotely over the internet. The document outlines some pros of open-source including innovation, reliability, and longevity, as well as a potential con around lack of support.

Uploaded by

api-12297134
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

Open-Source Software Project Development

Instructor: Dr. T.Y. Wong

Week 1, Part 1
Introduction to
Open-Source Development
What is a free software?
“Free software is
• Free software == free-of-charge? as in free speech,
not in free beer.”

• Not exactly…
– Every software should bear a
license.
– A free software bears a free
software license.
Richard Stallman -
the iconic spokesman of free software movement,
the father of GNU software suite.
Spring semester CSC4140 – Open-Source Page 2
2008-2009 Software Project Development
Why do we need a license?
• The fundamental purpose of a license,
e.g., license on a book, is to:
– protect the originality of the work;
– protect the inventor’s right;
– the deny anybody the right to exclusively
exploit the work.

• Free software license and Open-source


license do different things.
Spring semester CSC4140 – Open-Source Page 3
2008-2009 Software Project Development
What is a free software?
“Free software is
How to interpret the CODE?
as in free speech,
not in free beer.”

Speech itself does not carry Beer itself has monetary


any monetary value. But, the value. But, you may be
action may take value. able to get it for free.

E.g., Clinton’s speech takes


several millions HKD. But, the
speech itself may be …

Spring semester CSC4140 – Open-Source Page 4


2008-2009 Software Project Development
What is a free software?
“Free software is
Stallman’s Utopia as in free speech,
not in free beer.”

The price tag on the software should


be removed. Programmers should give
it out free-of-charge.

I make a living by giving out


free software. In return, I
receive donations. It is
great. Why not joining us?

Spring semester CSC4140 – Open-Source Page 5


Source: http://www.gnu.org/software/global/model.html
2008-2009 Software Project Development
A free software license?
“Free software is
• The license says: any as in free speech,
not in free beer.”
users can free to…
– use, study, copy, modify,
and redistribute the
computer software

GNU Public License - GPL

Spring semester CSC4140 – Open-Source Page 6


2008-2009 Software Project Development
A free software license?
• The license also says: “Free, but with
one and only one
– A user is free to modify the code. restriction…”

– When the user distributes the


modified software, the new
software is automatically carries
GPL.

GNU Public License - GPL

Spring semester CSC4140 – Open-Source Page 7


2008-2009 Software Project Development
A free software license?
• Stallman’s action was to initially oppose
UNIX… because “Software should
be free!! ”
– there is a price tag on UNIX.

• He was so sad about commercial


software: you own the physical copy of
the software, but you are bound…
– not to copy the work;
– not to make derivative works based on the
work; and
– not to authorize anyone else to do either of
the above two things.

• Have you ever heard of the EULA, end-


user license agreement?
Spring semester CSC4140 – Open-Source Page 8
2008-2009 Software Project Development
What is an open-source software?
• Open-source software == free software?

• Not exactly.
– Depends on which license the software bears.
Derived work carries the
GPL LGPL Mozilla
same license.

Derived work may be allowed


MIT BSD Apache to go close-source!

Derived work may not carry


Qt Artistic CC the same license, but have to
reflect originality of the work.

Spring semester CSC4140 – Open-Source Page 9


2008-2009 Software Project Development
Open-Source Software Development Cycle
• Traditional software
development cycle:
– Programmers work in the office.

– They have regular meetings to


brainstorm ideas, scolded by
bosses, etc.

– They have the manager to


check on their progress.

Spring semester CSC4140 – Open-Source Page 10


2008-2009 Software Project Development
Open-Source Software Development Cycle
• Open-source software
development cycle:
– Office? Yes, programmers usually
have a regular job. However, they
work on the open-source software
at home.

– Meeting? Yes, but on the Internet.

– Manager? Yes, instead, he/she is


called the lead programmer(s) or
the project founder(s).

Spring semester CSC4140 – Open-Source Page 11


2008-2009 Software Project Development
Open-Source Software Development Cycle
……
……
They need to communicate in order that
they all know the progress and have
Taiwan discussion.

Before the age of ICQ, they use IRC &


England mailing lists.

……

……

India
IRC, mailing list.

U.S. Programmers are usually located in


different geographical locations.

Spring semester CSC4140 – Open-Source Page 12


2008-2009 Software Project Development
Open-Source Software Development Cycle

They need tools to manage the source


Taiwan codes in a way that distributed
programmers can access and update.

England E.g., git and subversion (svn).

India
git, svn, cvs

U.S. Programmers are usually located in


different geographical locations.

Spring semester CSC4140 – Open-Source Page 13


2008-2009 Software Project Development
Pros and Cons of Open-Source
• Pros #1: innovation.
– There are great people who:
• Don’t ask for any reward;
• Just want to contribute to the world;
• Make the (computer) world a better place;

– E.g., Linus Torvalds wrote his Intel-based Minix-like


kernel just because he wanted to contribute to the
community.

Spring semester CSC4140 – Open-Source Page 14


2008-2009 Software Project Development
Pros and Cons of Open-Source
• Pros #2: reliability.
– There are large number of people who:
• are interested in existing open-source projects; and
• are willing to devote time to make the projects better;

– Such a number is too big comparing to commercial


software companies…
• because every (enabled) user can help to fix bugs since the
software is open-source.
• Close-source software cannot entertain from such a benefit.

Spring semester CSC4140 – Open-Source Page 15


2008-2009 Software Project Development
Pros and Cons of Open-Source
• Pros #3: longevity.
– A commercial software may be abandoned by
its publisher.
• E.g., Microsoft Corp. wants to discontinue the
Windows XP in order to boost the adoption rate of
Windows Vista.

– Not the case for open-source.


• RedHat VS Fedora.

Spring semester CSC4140 – Open-Source Page 16


2008-2009 Software Project Development
Pros and Cons of Open-Source
• Cons #1: lack of support
– Suppose you bought the MS Windows Server
2008 and its license.
• When you encounter any problems…
• a phone call to Microsoft can help you.

– Suppose you downloaded the Ubuntu 8.10.


• When you encounter any problems…
• “Ask the doc”, “Ask the expert”, or “Ask
google” are the only ways out (not a phone call to
Dr. Wong…).
Spring semester CSC4140 – Open-Source Page 17
2008-2009 Software Project Development
Pros and Cons of Open-Source
• Cons #2: Licensing problems
– Open-source software with GPL is problematic to
commercial companies.
• E.g., I think that software A, which is under GPL, is great,
but it is not great enough.
• Then, I modify it and it is perfect now.
• Can I sell the new software A’ and make a profit?

• Yes…but, you have to open the source…


• Then, everyone knows how you implement it.
• Then, why does someone need to pay?

Spring semester CSC4140 – Open-Source Page 18


2008-2009 Software Project Development
Brief open-source software history
• Pre-DotCom Era…
Start of free
software
movement.

GNU tool chain: Linux kernel


gcc, make, etc. using GPL

(close-source)

Dark age:
proprietary software
1983 1991 1993 1994
rules the world
(Not drawn to scale)

Spring semester CSC4140 – Open-Source Page 19


2008-2009 Software Project Development
Brief open-source software history
• The DotCom Era…
IBM adopted
open-source
software
PostgreSQL

JavaScript

Apache Netscape issued


GPL version

1995 1998 2000

(Not drawn to scale)

Spring semester CSC4140 – Open-Source Page 20


2008-2009 Software Project Development
Brief open-source software history
• The DotCom bubble bursted…
– Open-source software become more mature.
– Many companies started their business based
on open-source software.

targets on
enterprise users.

Release both proprietary


and open-source versions.
Spring semester CSC4140 – Open-Source Page 21
2008-2009 Software Project Development
Trends in Open-Source Software
• Most of the open-source software is to
make your life easier.
Category Examples

System-level software GNU toolchain, Linux kernel

Server software Apache (Web), MySQL (database), Samba


(Windows file sharing), etc.

Interface for CLI, non- GNOME vs Console, phpMyadmin vs mysql-client,


user-friendly software SWAT vs text editor, etc.

Proprietary OpenOffice vs MS Office, CodeBlocks vs Visual


counterparts Studio, GIMP vs Photoshop, etc.
Spring semester CSC4140 – Open-Source Page 22
2008-2009 Software Project Development
Trends in Open-Source Software
• Our course will focus on…
– how to develop robust and efficient server software.
– how to use the web browser as an ubiquitous,
versatile interface to ugly programs.

Server software Apache (Web), MySQL (database), Samba


(Windows file sharing), etc.

Interface for CLI, GNOME vs Console, phpMyadmin vs mysql-client,


non-user-friendly SWAT vs text editor, etc.
software

Spring semester CSC4140 – Open-Source Page 23


2008-2009 Software Project Development

You might also like