Tworzenie projektów Open Source

Transkrypt

Tworzenie projektów Open Source
Oprogramowanie
Free Software
Open Source
FLOSS
Wady i zalety
Znaczenie FLOSS
Więcej
Tworzenie projektów Open Source
cz. I: Teoria
Piotr Banasiak
Studenckie Centrum Informatyczne
Uniwersytet Łódzki
Łódź 2007
Piotr Banasiak
Tworzenie projektów Open Source
Oprogramowanie
Free Software
Open Source
FLOSS
Wady i zalety
Znaczenie FLOSS
Więcej
Plan prezentacji
1
Oprogramowanie
2
Free Software
3
Open Source
4
FLOSS
5
Wady i zalety
6
Znaczenie FLOSS
7
Więcej
Piotr Banasiak
Tworzenie projektów Open Source
Oprogramowanie
Free Software
Open Source
FLOSS
Wady i zalety
Znaczenie FLOSS
Więcej
Definicja
Własność intelektualna
Źródło a program
Licencje
Licencje
Oprogramowanie - definicja
Projekt = Oprogramowanie
Co to jest oprogramowanie?
Produkt wytworzony przez programistów.
Klasy oprogramowania:
Produkt gotowy
Produkt na zamówienie
Piotr Banasiak
Tworzenie projektów Open Source
Oprogramowanie
Free Software
Open Source
FLOSS
Wady i zalety
Znaczenie FLOSS
Więcej
Definicja
Własność intelektualna
Źródło a program
Licencje
Licencje
Oprogramowanie jako własność intelektualna
Oprogramowanie własnością intelektualną
Oprogramowanie jest tworzone, a nie produkowane w klasycznym
znaczeniu tego słowa.
Roger S. Pressman Software Engineering: A Practitioner’s Approach
Każdy program ma określony cykl życia, a proces tworzenia
oprogramowania odbywa się według określonych modeli życia
oprogramowania.
Piotr Banasiak
Tworzenie projektów Open Source
Oprogramowanie
Free Software
Open Source
FLOSS
Wady i zalety
Znaczenie FLOSS
Więcej
Definicja
Własność intelektualna
Źródło a program
Licencje
Licencje
Oprogramowanie - źródło a program
Oprogramowanie to kod źródłowy i skompilowane pliki binarne.
Ze względu na (nie)udostępnienie kodu źródłowego rozróżniamy:
Oprogramowanie wolne / otwarte (Free/Open Source)
Oprogramowanie własnościowe / zamknięte (Proprietary)
Piotr Banasiak
Tworzenie projektów Open Source
Oprogramowanie
Free Software
Open Source
FLOSS
Wady i zalety
Znaczenie FLOSS
Więcej
Definicja
Własność intelektualna
Źródło a program
Licencje
Licencje
Licencje - definicja
Licencja - co to jest?
Umowa na korzystanie z aplikacji.
Co regulują licencje?
zróżnicowany stopień uprawnień i zobowiązań
sposób zabezpieczenia inwestycji w projekty
Piotr Banasiak
Tworzenie projektów Open Source
Oprogramowanie
Free Software
Open Source
FLOSS
Wady i zalety
Znaczenie FLOSS
Więcej
Definicja
Własność intelektualna
Źródło a program
Licencje
Licencje
Licencje - przykłady
Przykłady licencji:
Otwarte / Wolne:
GNU GPL / GNU LGPL
BSD
Apache 2.0
Mozilla PL
X11 (Massachusetts Institute of Technology)
Pozostałe:
Freeware
Shareware
Shared Source
i wiele innych
Idea copyright a copyleft.
Piotr Banasiak
Tworzenie projektów Open Source
Oprogramowanie
Free Software
Open Source
FLOSS
Wady i zalety
Znaczenie FLOSS
Więcej
Definicja
Geneza
Free Software - definicja
Co oznacza termin ”free” software?
”wolny jak słowo”, a nie ”darmowy jak piwo”
Oprogramowanie jest wolne, jeśli gwarantuje:
1
wolność uruchamiania programu, w dowolnym celu
2
wolność analizowania, jak program działa, i dostosowywania
go do swoich potrzeb
3
wolność rozpowszechniania kopii
4
wolność udoskonalania programu i publicznego
rozpowszechniania własnych ulepszeń, dzięki czemu może z
nich skorzystać cała społeczność
Piotr Banasiak
Tworzenie projektów Open Source
Oprogramowanie
Free Software
Open Source
FLOSS
Wady i zalety
Znaczenie FLOSS
Więcej
Definicja
Geneza
Free Software - geneza
Organizacja promująca: Free Software Foundation
Typ: organizacja non-profit
Rok założenia: 1985
Założyciel: Richard Stallman
Przyczyny powstania: Ochrona przed przedsiębiorstwami, które
zaczęły wprowadzać ograniczenia dla użytkowników.
Piotr Banasiak
Tworzenie projektów Open Source
Oprogramowanie
Free Software
Open Source
FLOSS
Wady i zalety
Znaczenie FLOSS
Więcej
Definicja
Geneza
Free a Open
Open Source - definicja
Co oznacza termin ”open source” software?
”otwarte źródło”, czyli dostępny kod źródłowy
Oprogramowanie jest otwarte, jeśli jest udostępnione na licencji,
która spełnia warunki, m.in.:
1
swobodna redystrybucja programu
2
dostępność kodu źródłowego
3
dozwolona redystrybucja modyfikacji
4
niedyskryminowanie zastosowań programu
Piotr Banasiak
Tworzenie projektów Open Source
Oprogramowanie
Free Software
Open Source
FLOSS
Wady i zalety
Znaczenie FLOSS
Więcej
Definicja
Geneza
Free a Open
Open Source - geneza
Organizacja promująca: Open Source Initiative
Typ: organizacja non-profit
Rok założenia: 1998
Założyciele: Eric Raymond, Bruce Perens
Przyczyny powstania: Model przyjazny firmom i mniej
zaangażowany ideologicznie w procesie konkurencji z
oprogramowaniem własnościowym.
Piotr Banasiak
Tworzenie projektów Open Source
Oprogramowanie
Free Software
Open Source
FLOSS
Wady i zalety
Znaczenie FLOSS
Więcej
Definicja
Geneza
Free a Open
Free a Open
free =? open
Jeżeli oprogramowanie jest wolne, to w zasadzie jest otwarte, lecz
na odwrót już niekoniecznie.
Co to oznacza?
Open Source to pojęcie szersze.
Otwarte oprogramowanie ”kampanią marketingową na rzecz
wolnego oprogramowania”.
Piotr Banasiak
Tworzenie projektów Open Source
Oprogramowanie
Free Software
Open Source
FLOSS
Wady i zalety
Znaczenie FLOSS
Więcej
Definicja
Twórcy
Rozwój
Projekty
Open Source a komercja
Prawo Brooksa a Prawo Linusa
FLOSS
Free/Libre Open Source Software
Free Sotware + Open Source = FLOSS
Termin FLOSS obejmuje:
społeczność, czyli nurty ruchu FS/OS
prawo, czyli typy definicji licencji na oprogramowanie FS/OS
zbiór oprogramowania na powyższych licencjach
Piotr Banasiak
Tworzenie projektów Open Source
Oprogramowanie
Free Software
Open Source
FLOSS
Wady i zalety
Znaczenie FLOSS
Więcej
Definicja
Twórcy
Rozwój
Projekty
Open Source a komercja
Prawo Brooksa a Prawo Linusa
Twórcy
Kto tworzy FLOSS?
Społeczność, czyli ruch wolnego oprogramowania i ruch open
source.
Kto wchodzi w skład społeczności?
hakerzy (indywidualiści, fascynaci)
pracownicy firm
użytkownicy i pozostali ochotnicy
Piotr Banasiak
Tworzenie projektów Open Source
Oprogramowanie
Free Software
Open Source
FLOSS
Wady i zalety
Znaczenie FLOSS
Więcej
Definicja
Twórcy
Rozwój
Projekty
Open Source a komercja
Prawo Brooksa a Prawo Linusa
Rozwój
Kto finansuje FLOSS?
społeczność, np. Java Community Process
fundacje i organizacje non-profit, np. Apache, Mozilla, PSF
firmy i korporacje, np. Sun, IBM, Google
Co sprzyja i napędza rozwój FLOSS?
Rozpropagowanie powszechnego dostępu do Internetu.
Piotr Banasiak
Tworzenie projektów Open Source
Oprogramowanie
Free Software
Open Source
FLOSS
Wady i zalety
Znaczenie FLOSS
Więcej
Definicja
Twórcy
Rozwój
Projekty
Open Source a komercja
Prawo Brooksa a Prawo Linusa
Projekty - przykłady
Przykłady popularnych projektów FLOSS:
Apache
eMule
Firefox
Linux
Mozilla
OpenOffice
Piotr Banasiak
Tworzenie projektów Open Source
Oprogramowanie
Free Software
Open Source
FLOSS
Wady i zalety
Znaczenie FLOSS
Więcej
Definicja
Twórcy
Rozwój
Projekty
Open Source a komercja
Prawo Brooksa a Prawo Linusa
Projekty - rodzaje
Modele pracy w projektach FLOSS:
Open Source
np. Apache
Open Source + komercja
np. Mozilla
Piotr Banasiak
Tworzenie projektów Open Source
Oprogramowanie
Free Software
Open Source
FLOSS
Wady i zalety
Znaczenie FLOSS
Więcej
Definicja
Twórcy
Rozwój
Projekty
Open Source a komercja
Prawo Brooksa a Prawo Linusa
Open Source a komercja
Open Source nie stoi w sprzeczności z zarabianiem pieniędzy.
Możliwe źródła finansowania to m.in.:
sprzedaż usług (support, szkolenia)
rozwój nowej funkcjonalności
tworzenie całkowicie nowego oprogramowania na zamówienie
firmy, którym zależy na istnieniu pewnego oprogramowania
finansują jego rozwój
Piotr Banasiak
Tworzenie projektów Open Source
Oprogramowanie
Free Software
Open Source
FLOSS
Wady i zalety
Znaczenie FLOSS
Więcej
Definicja
Twórcy
Rozwój
Projekty
Open Source a komercja
Prawo Brooksa a Prawo Linusa
Open Source a komercja
Model biznesowy
Głównym źródłem dochodu usługi - wdrożenia, szkolenia,
administracja, dostosowywanie oprogramowania do określonych
potrzeb.
Oprogramowanie Open Source można także sprzedawać, np.
opakowane w pudełka, oferowane klientom wraz ze wsparciem
technicznym.
Piotr Banasiak
Tworzenie projektów Open Source
Oprogramowanie
Free Software
Open Source
FLOSS
Wady i zalety
Znaczenie FLOSS
Więcej
Definicja
Twórcy
Rozwój
Projekty
Open Source a komercja
Prawo Brooksa a Prawo Linusa
Prawo Brooksa
Prawo Brooksa
Adding manpower to a late software project makes it later.a
Fred Brooks The Mythical Man-Month
a
Dodawanie programistów do projektu sprawia, że prace trwają dłużej.
Co to oznacza?
Czas programistyczny nie jest skalowalny, a rozbudowa
zespołu programistycznego w trakcie projektu może sprawić,
że czas realizacji projektu wzrośnie.
Piotr Banasiak
Tworzenie projektów Open Source
Oprogramowanie
Free Software
Open Source
FLOSS
Wady i zalety
Znaczenie FLOSS
Więcej
Definicja
Twórcy
Rozwój
Projekty
Open Source a komercja
Prawo Brooksa a Prawo Linusa
Prawo Linusa
Prawo Linusa
Given enough eyeballs, all bugs are shallow.a
Eric S. Raymond The Cathedral and the Bazaar
a
Gdzie wiele oczu, tam łatwo ujrzeć pluskwy.
Co to oznacza?
Najkrótszą i najłatwiejszą drogą w kierunku szybkiego rozwoju
kodu i efektywnego jego odpluskwiania jest traktowanie
użytkowników jako osób uczestniczących w projekcie.
Piotr Banasiak
Tworzenie projektów Open Source
Oprogramowanie
Free Software
Open Source
FLOSS
Wady i zalety
Znaczenie FLOSS
Więcej
Zalety
Wady
Zalety
Zalety, czyli czemu OS zawdzięcza swój sukces:
użytkownicy uczestniczą w projekcie
deweloperzy piszą, to co chcą, a nie muszą
deweloperzy ”są doświadczonymi użytkownikami
oprogramowania, które tworzą”
W efekcie OS gwarantuje:
szybką identyfikację i korekcję błędów
dużą liczbę feature’ów i częste ich dodawanie
szybkie odpowiedzi na zgłaszane problemy
Piotr Banasiak
Tworzenie projektów Open Source
Oprogramowanie
Free Software
Open Source
FLOSS
Wady i zalety
Znaczenie FLOSS
Więcej
Zalety
Wady
Wady
Wady, czyli potencjalne zagrożenia OS:
OS nie jest modelem tworzenia oprogramowania
otwarcie oprogramowania może skutkować bankrutctwem
firmy, gdy nie ma ona dobrego pomysłu na zarabianie
pieniędzy
np. Open Sound System firmy 4Front Technologies
brak dostatecznej liczby zdolnych programistów
negatywne skutki koniecznej modułowości oprogramowania
(zwiększa skalę skomplikowania aplikacji, ryzyko spięcia pomiędzy modułami)
pokutujące na rynku przeświadczenie, że FLOSS to ”darmowe
piwo”
Piotr Banasiak
Tworzenie projektów Open Source
Oprogramowanie
Free Software
Open Source
FLOSS
Wady i zalety
Znaczenie FLOSS
Więcej
z punktu widzenia FS/OS
z punktu widzenia użytkowników
Wolna Kultura - definicja
Wolna Kultura - geneza
Znaczenie FLOSS
FLOSS - dlaczego to takie ważne?
Free Software
1
2
wolność, wspieranie prawa do tworzenia oprogramowania
ochrona przed prywatnym monopolem
Open Source
1
2
gwarantowana najwyższa jakość techniczna oprogramowania
zainteresowanie firm ideą, szansa na komercyjne wykorzystanie
Piotr Banasiak
Tworzenie projektów Open Source
Oprogramowanie
Free Software
Open Source
FLOSS
Wady i zalety
Znaczenie FLOSS
Więcej
z punktu widzenia FS/OS
z punktu widzenia użytkowników
Wolna Kultura - definicja
Wolna Kultura - geneza
Znaczenie FLOSS
FLOSS - dlaczego to takie ważne?
Użytkownicy
brak mechanizmów kontroli
oprogramowanie zamknięte (własnościowe), to zdanie się na nieznane
mechanizmy kontroli i ochrony (bezpieczeństwa) w systemach (np. Digital
Rights Management), niewiadome sposoby zbierania i przetwarzania
danych, niejasne sposoby działania aplikacji, niejawne wykorzystanie
technologii
w oprogramowaniu otwartym powyższe mechanizmy są jawne - znamy je i
możemy zmieniać
ucieczka od mechanizmu ”dozwolone jest to, na co pozwala
właściciel praw autorskich/patentu”
w OS nie musimy nikogo pytać o pozwolenie
Piotr Banasiak
Tworzenie projektów Open Source
Oprogramowanie
Free Software
Open Source
FLOSS
Wady i zalety
Znaczenie FLOSS
Więcej
z punktu widzenia FS/OS
z punktu widzenia użytkowników
Wolna Kultura - definicja
Wolna Kultura - geneza
Znaczenie FLOSS
FLOSS - dlaczego to takie ważne?
Użytkownicy
ochrona praw konsumenckich
w zamkniętym nie mamy źródeł i nie mamy możliwości legalnego
crackowania/odszyfrowania mechanizmów kontroli, jak np. algorytm
Content Scramble System (system kodowania zawartości płyt DVD)
Wolna Kultura
Piotr Banasiak
Tworzenie projektów Open Source
Oprogramowanie
Free Software
Open Source
FLOSS
Wady i zalety
Znaczenie FLOSS
Więcej
z punktu widzenia FS/OS
z punktu widzenia użytkowników
Wolna Kultura - definicja
Wolna Kultura - geneza
Wolna Kultura - definicja
W szerszym ujęciu...
Dzielenie się własnością intelektualną = Wolna Kultura
Wolna Kultura to:
rozszerzenie idei ruchu wolnego oprogramowania na obszar
całej kultury niematerialnej
ruch społeczny promujący wolność dystrybucji i modyfikacji
różnego rodzaju utworów
Piotr Banasiak
Tworzenie projektów Open Source
Oprogramowanie
Free Software
Open Source
FLOSS
Wady i zalety
Znaczenie FLOSS
Więcej
z punktu widzenia FS/OS
z punktu widzenia użytkowników
Wolna Kultura - definicja
Wolna Kultura - geneza
Wolna Kultura - geneza
Organizacja promująca: Creative Commons
Typ: organizacja non-profit
Rok założenia: 2001
Założyciel: Lawrence Lessig
Przykład projektu: Wikipedia
Piotr Banasiak
Tworzenie projektów Open Source
Oprogramowanie
Free Software
Open Source
FLOSS
Wady i zalety
Znaczenie FLOSS
Więcej
Więcej
Tworzenie projektów Open Source - cz. II: Praktyka
prelegent: Karol Nowak
Łódź, 14 grudnia 2007, godz. 14:00
http://sci.uni.lodz.pl/opensource/
Piotr Banasiak
Tworzenie projektów Open Source