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

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

of 23

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

  • 8/14/2019 Open-Source Software Project Development Instructor: Dr. T.Y. Wong Week

    1/23

    Instructor: Dr. T.Y. Wong

    Open-Source Software Project Development

    Week 1, Part 1

    Introduction to

    Open-Source Development

  • 8/14/2019 Open-Source Software Project Development Instructor: Dr. T.Y. Wong Week

    2/23

  • 8/14/2019 Open-Source Software Project Development Instructor: Dr. T.Y. Wong Week

    3/23

    Spring semester2008-2009

    CSC4140 Open-SourceSoftware Project Development

    Page 3

    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 inventors right;

    the deny anybody the right to exclusivelyexploit the work.

    Free software license and Open-source

    license do different things.

  • 8/14/2019 Open-Source Software Project Development Instructor: Dr. T.Y. Wong Week

    4/23

    Spring semester2008-2009

    CSC4140 Open-SourceSoftware Project Development

    Page 4

    What is a free software?Free software isas in free speech,not in free beer.

    How to interpret the CODE?

    Speech itself does not carryany monetary value. But, theaction may take value.

    E.g., Clintons speech takesseveral millions HKD. But, the

    speech itself may be

    Beer itself has monetaryvalue. But, you may beable to get it for free.

  • 8/14/2019 Open-Source Software Project Development Instructor: Dr. T.Y. Wong Week

    5/23

    Spring semester2008-2009

    CSC4140 Open-SourceSoftware Project Development

    Page 5

    What is a free software?Free software isas in free speech,not in free beer.

    Stallmans Utopia

    The price tag on the software shouldbe removed. Programmers should giveit out free-of-charge.

    I make a living by giving outfree software. In return, Ireceive donations. It isgreat. Why not joining us?

    Source: http://www.gnu.org/software/global/model.html

  • 8/14/2019 Open-Source Software Project Development Instructor: Dr. T.Y. Wong Week

    6/23

    Spring semester2008-2009

    CSC4140 Open-SourceSoftware Project Development

    Page 6

    A free software license?Free software isas in free speech,not in free beer.

    The license says: any

    users can free touse, study, copy, modify,

    and redistribute the

    computer software

    GNU Public License - GPL

  • 8/14/2019 Open-Source Software Project Development Instructor: Dr. T.Y. Wong Week

    7/23

    Spring semester2008-2009

    CSC4140 Open-SourceSoftware Project Development

    Page 7

    A free software license?Free, but withone and only onerestriction

    The license also says: A user is free to modify the code.

    When the user distributes themodified software, the new

    software is automatically carriesGPL.

    GNU Public License - GPL

  • 8/14/2019 Open-Source Software Project Development Instructor: Dr. T.Y. Wong Week

    8/23

    Spring semester2008-2009

    CSC4140 Open-SourceSoftware Project Development

    Page 8

    A free software license?

    Stallmans action was to initially opposeUNIX because there is a price tag on UNIX.

    He was so sad about commercialsoftware: 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 ofthe above two things.

    Have you ever heard of the EULA, end-

    user license agreement?

    Software shouldbe free!!

  • 8/14/2019 Open-Source Software Project Development Instructor: Dr. T.Y. Wong Week

    9/23

    What is an open-source software?

    Spring semester2008-2009

    CSC4140 Open-SourceSoftware Project Development

    Page 9

    Open-source software == free software?

    Not exactly.

    Depends on which license the software bears.

    GPL LGPL MozillaDerived work carries thesame license.

    MIT BSD ApacheDerived work may be allowedto go close-source!

    Derived work may not carrythe same license, but have to

    reflect originality of the work.

    Qt Artistic CC

  • 8/14/2019 Open-Source Software Project Development Instructor: Dr. T.Y. Wong Week

    10/23

    Open-Source Software Development Cycle

    Spring semester2008-2009

    CSC4140 Open-SourceSoftware Project Development

    Page 10

    Traditional softwaredevelopment cycle:

    Programmers work in the office.

    They have regular meetings to

    brainstorm ideas, scolded bybosses, etc.

    They have the manager tocheck on their progress.

  • 8/14/2019 Open-Source Software Project Development Instructor: Dr. T.Y. Wong Week

    11/23

    Open-Source Software Development Cycle

    Spring semester2008-2009

    CSC4140 Open-SourceSoftware Project Development

    Page 11

    Open-source softwaredevelopment cycle:

    Office? Yes, programmers usuallyhave a regular job. However, theywork on the open-source software

    at home.

    Meeting? Yes, but on the Internet.

    Manager? Yes, instead, he/she iscalled the lead programmer(s) orthe project founder(s).

  • 8/14/2019 Open-Source Software Project Development Instructor: Dr. T.Y. Wong Week

    12/23

    Open-Source Software Development Cycle

    Spring semester2008-2009

    CSC4140 Open-SourceSoftware Project Development

    Page 12

    They need to communicate in order thatthey all know the progress and havediscussion.

    Before the age of ICQ, they use IRC &

    mailing lists.

    Taiwan

    England

    IndiaIRC, mailing list.

    Programmers are usually located in

    different geographical locations.

    U.S.

  • 8/14/2019 Open-Source Software Project Development Instructor: Dr. T.Y. Wong Week

    13/23

    Open-Source Software Development Cycle

    Spring semester2008-2009

    CSC4140 Open-SourceSoftware Project Development

    Page 13

    They need tools to manage the sourcecodes in a way that distributedprogrammers can access and update.

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

    Taiwan

    England

    Indiagit, svn, cvs

    Programmers are usually located in

    different geographical locations.

    U.S.

  • 8/14/2019 Open-Source Software Project Development Instructor: Dr. T.Y. Wong Week

    14/23

    Spring semester2008-2009

    CSC4140 Open-SourceSoftware Project Development

    Page 14

    Pros and Cons of Open-Source

    Pros #1: innovation.

    There are great people who:

    Dont 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-likekernel just because he wanted to contribute to the

    community.

  • 8/14/2019 Open-Source Software Project Development Instructor: Dr. T.Y. Wong Week

    15/23

    Spring semester2008-2009

    CSC4140 Open-SourceSoftware Project Development

    Page 15

    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 commercialsoftware 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.

  • 8/14/2019 Open-Source Software Project Development Instructor: Dr. T.Y. Wong Week

    16/23

    Spring semester2008-2009

    CSC4140 Open-SourceSoftware Project Development

    Page 16

    Pros and Cons of Open-Source

    Pros #3: longevity.

    A commercial software may be abandoned byits publisher.

    E.g., Microsoft Corp. wants to discontinue the

    Windows XP in order to boost the adoption rate ofWindows Vista.

    Not the case for open-source. RedHat VS Fedora.

  • 8/14/2019 Open-Source Software Project Development Instructor: Dr. T.Y. Wong Week

    17/23

    Spring semester2008-2009

    CSC4140 Open-SourceSoftware Project Development

    Page 17

    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 Askgoogle are the only ways out (not a phone call toDr. Wong).

  • 8/14/2019 Open-Source Software Project Development Instructor: Dr. T.Y. Wong Week

    18/23

    Spring semester2008-2009

    CSC4140 Open-SourceSoftware Project Development

    Page 18

    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?

    Yesbut, you have to open the source Then, everyone knows how you implement it.

    Then, why does someone need to pay?

  • 8/14/2019 Open-Source Software Project Development Instructor: Dr. T.Y. Wong Week

    19/23

  • 8/14/2019 Open-Source Software Project Development Instructor: Dr. T.Y. Wong Week

    20/23

    Brief open-source software history

    Spring semester2008-2009

    CSC4140 Open-SourceSoftware Project Development

    Page 20

    The DotCom Era

    Apache

    1995

    (Not drawn to scale)

    JavaScript

    PostgreSQL

    IBM adopted

    open-sourcesoftware

    Netscape issuedGPL version

    1998 2000

  • 8/14/2019 Open-Source Software Project Development Instructor: Dr. T.Y. Wong Week

    21/23

    Brief open-source software history

    Spring semester2008-2009

    CSC4140 Open-SourceSoftware Project Development

    Page 21

    The DotCom bubble bursted

    Open-source software become more mature. Many companies started their business based

    on open-source software.

    Release both proprietaryand open-source versions.

    targets onenterprise users.

  • 8/14/2019 Open-Source Software Project Development Instructor: Dr. T.Y. Wong Week

    22/23

  • 8/14/2019 Open-Source Software Project Development Instructor: Dr. T.Y. Wong Week

    23/23

    Trends in Open-Source Software

    Spring semester2008-2009

    CSC4140 Open-SourceSoftware Project Development

    Page 23

    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,non-user-friendlysoftware

    GNOME vs Console, phpMyadmin vs mysql-client,SWAT vs text editor, etc.