F Software Open Source Termín “free software” nebo “volně šiřitelný software” jste již zajisté slyšeli, bez uvedení toho, že se jedná o software, který můžete získat zadarmo, bez nutnosti platby (tj. zmínky o ceně), nebo že se jedná o software, u kterého máte absolutní volnost při provozování, kopírování, distribuci, studiu, změnách a vylepšování (Free Software Foundation, http://www.fsf.org/). Jak uvedl Richard Stallman: “Free Software je podstatou svobody, ne ceny. Pro pochopení konceptu byste měli přemýšlet o společném jazyce, nikoliv pivu”. Na výše uvedeném webovém sídle lze nalézt nejlepší krátkou definici “free software”: [Free software] je software, u kterého má kdokoliv právo používání, kopírování a distribuce, bu8 ve stejné nebo změněné podobě, bu8 zdarma nebo proti platbě. Konkrétně to znamená, že musí být k dispozici zdrojový kód. “Pokud není zdrojový kód, není ani software” (naše poznámka) Nyní, za účelem obchodování a distribuce našeho “free software”, potřebujeme schéma licencování, které ochrání naše práva jako autora a dá svobodu vašim uživatelům. Definice Open Source (OSD) poskytuje vodítko pro vytvoření takové licence. K OSD se vrátíme na konci této přílohy, nebo se můžete podívat na nejnovější informace na jejich webovém sídle na adrese http://www.opensource.org/osd.html. Od této chvíle budeme software Open Source považovat za “free software” s licencováním podle OSD. Aplikace distribuovaná a vyvinutá jako Open Source by měla být dostupná v binárním kódu nebo v nějakém mezikódu dokud je šířena se zdrojovým kódem. Licence by měla také umožňovat: ■
Volnost při distribuci a redistribuci. Uživatel nebude muset provádět žádné další kroky, když bude chtít předávat dále tento software, a^ už v původní, nezměněné, nebo odvozené podobě nebo jako součást něčeho jiného. Měla by být explicitně přiložena původní licence Open Source.
■
Plný, neomezený přístup ke zdrojovému kódu, bez diskriminace osob, skupin nebo organizací. Nesmí být také vytvářena žádná omezení pro (potenciální nebo skutečné) použití software v oblastech nebo případech, kde to jako autor nemůžete připustit. Takže, pokud
1
PHP Programujeme profesionálně autor zakáže použití svého programu lidem narozeným 29. února, i když je k dispozici zdrojový kód a kdokoliv jiný jej může distribuovat, nebude to považováno za software Open Source. ■
Uživatelé by také měli mít právo produkt upravovat, zlepšovat nebo do něj přidávat funkce. Pokud chce autor označit části, které vytvořil, a které vytvořil někdo jiný, může vytvořit opatření pro oddělení staré distribuce, může úpravy vydat (např.) jako soubory oprav původního zdrojového kódu.
■
Konečně, licence nesmí být závislá na programu, jehož je součástí, tj. licence nesmí říkat, že “tato knihovna může být distribuována pouze jako součást programu”. Pak to není Open Source. Také si nesmí vynucovat, aby program, pokud je součástí sady, byl instalován společně s podobně licencovanými programy, jinými slovy, licence nesmí omezovat distribuci jiných programů z této sady. Jedna věc musí být jasná, a to, že předávání Open Source je pro volnost používání a úprav programů a ne proti vlastnictví intelektuálních práv a patentů nebo vlastnictví komerčního software. Toto není morální nebo ideologické tažení, a nejde ani o filozofickou nebo náboženskou válku (náboženství ve smyslu použitém v “náboženské války/religious-wars” komunitou programátorů v hackerském slovníku). Je rovněž odsuzováno racionálně nebo ekonomicky těžit z vývoje Open Source a postupovat pragmaticky a zaměstnávat vaše zákazníky jako spoluautory a testery.
Výhody software Open Source Dovolte mi uvést příklad, který bude ilustrovat výhody používání software Open Source při vývoji vašich aplikací. Jste součástí malé společnosti, která potřebuje používat web jako prostředek prodeje svých produktů. Je rozhodnuto, že společnost bude mít svůj vlastní webový server pro provádění řízení transakcí a pro bezpečný přístup k důležitým datům. Budeme předpokládat, že vaše sí^ je příslušně zabezpečena použitím firewallů a podobných řešení a bude se zaměřovat na webový server a na nástroje pro vytváření vaší webové aplikace. Budeme předpokládat, že vyvíjíte webové sídlo, které bude obsahovat internetový obchod a službu vašim obchodním partnerům pro sdílení informací s vaší firmou. Je rozhodnuto, že použijete počítač s příslušným operačním systémem (Windows 95/98, Windows NT, MacOS - vyberte si) a pro zjednodušení to nákupní oddělení koupí vše jako celek. Pokud máte příslušný operační systém, webový server a vývojové nástroje, např. IIS na počítači s Windows NT, s použitím ASP a serveru MS SQL pro waši webovou aplikaci nebo iPlanet Enterprise Server (Netscape) na počítači SGI na kterém bude Irix a Oracle a příslušné API pro vaše programy CGI napsané v C/C++. Po velké námaze a dlouhém vývoji vytvoříte software webového serveru a aplikací. Jeden z vašich obchodních partnerů bude chtít mít přístup k nějakým informacím uloženým ve vaší databázi. Připojí se k vašemu webovému serveru, přihlásí se a pak provede vyhledávání. Toto je vyhledávání, které generuje velké tabulky a zablokuje váš webový server. Když po dlouhých hodinách ladění pracně najdete chybu, zjistíte, že je v programu interpretu, který používáte pro vaše skripty: je děravý a má náhodně dlouhé odezvy před uvolněním prostředků.
2
Příloha F
◆
Software Open Source
Kontaktujete dodavatele softwaru a oni navrhnou nějaké řešení, ale v podtextu je doporučení: čekejte na další verzi, která bude “už brzy” k dispozici. Do té doby si kupte více paměti do serveru a doufejte, že to trochu pomůže. Aby se problém nezkomplikoval, někdo prolomil zabezpečení serveru a získal informace, ke kterým by neměl mít přístup. Je zapotřebí komplexnější metody ověřování, vy však zjistíte, že příslušný server nepodporuje nic jiného než jednoduché ověřování. Samozřejmě, podle Murphyho zákonů, se vaše společnost rozhodne, že informace o trojrozměrném modelování musí být prohledavatelné, ale k vašemu zoufalství tato databáze typ pole, který potřebujete, nezná, což vede ke schématu. které je uměle překomplikované. Pokud musíte používat pouze příslušný komerční software, pak můžete udělat pouze jednu ze dvou věcí: 1.
SeNte a netrpělivě očekávejte opravy chyb v příštích vydáních od dodavatelů a rezignujte na časté restartování serveru a doufejte, že vaše zabezpečení nebude znovu porušeno.
2.
Podívejte se po příslušném alternativním softwaru, o kterém váš šéf četl v nějakém časopise, že “je spolehlivější” a “má nové funkce”. To si může vynutit předělání většiny infrastruktury vašeho serveru a mohlo by to přinést nové chyby a nová omezení.
A nyní, co by se stalo, když jsme se setkali se softwarem Open Source? Řekněme, že jste si vybrali hardware, ale v tomto okamžiku jste si vybrali jako svůj operační systém Linux nebo FreeBSD, Apache jako webový server, PHP, Perl nebo Python pro vytváření skriptů a databázi MySQL nebo PostgreSQL. Zaprvé, nyní máte operační systém, který se pravděpodobně nerozpadne z důvodu díry v paměti, kterou způsobí program, a i když by se to stalo, vy nebo jiný z mnoha uživatelů/vývojářů přijde s opravou. Přístup ke zdrojovým souborům patří k věci. Oprava děravého programu bude otázkou spuštění vašeho oblíbeného ladícího programu, nalezení rutiny, která to způsobila, a úpravy kódu, která vyřeší daný problém. Pro odstranění problému není třeba čekat na další verzi a hlavně z toho budou mít prospěch i ostatní lidé. I když opravu neprovedete vy, je šance, že problém objevil a opravil někdo jiný. Jak uvedl E. S. Raymond (v “The Cathedral and the Bazaar”): “Když je sleduje dostatečný počet lidí, je dopad všech chyb méně závažný”. Co se týká flexibility webového serveru, je jedničkou Apache. Přibližně 60 % webových serverů používá Apache (http://www.netcraft.com/survey/). Podporuje více různých metod ověřování a pokud má jedna z nich díru, prohledání zdrojového kódu vám ji umožní opravit. Samozřejmě můžete také zvolit řešení ověřování týkající se vrstvy CGI, např. pomocí tříd v PHPLib (http://phplib.shonline.de/). Pro speciální typy polí dat vašeho prostorového modelu byste prostě přidali příslušné funkce do stromu zdrojových textů vaší databáze, znovu vše zkompilovali a voila! – máte přizpůsobené databázové jádro. A pamatujte si, že v softwarovém projektu Open Source nemusíte vždy dělat všechnu práci spojenou s vytvářením nových rutin a modulů pro daný program. Většinou měl ještě někdo jiný stejný problém nebo potřebu jako vy a pak už může celkové nebo dílčí řešení již existovat. Obvykle bude existovat více než jedno řešení a vy je můžete převzít tak, jak jsou, nebo si upravit to nejlepší pro vaše konkrétní účely.
3
PHP Programujeme profesionálně Z obchodního i uživatelského hlediska výhodami použití software Open Source budou: ■
Vzhledem k dostupnosti zdrojového kódu, pokud je nalezena chyba, nemusíte čekat, až ji autor opraví, protože to většinou provede někdo z komunity uživatelů/vývojářů. Ne vždy ten, kdo chybu objeví, ji také opraví; záleží na možnostech a zájmu lidí v komunitě.
■
Pokud máte starosti ohledně zabezpečení, můžete se vždy podívat do zdrojového kódu a zjistit, zda možnosti nabízené programem odpovídají vašim potřebám a pokud ne, můžete jej upravit, aby odpovídal vašemu očekávání. Už se nemusíte spoléhat na autora nebo dodavatele a na to, co napíše do příručky (“Naše šifrovací metoda oblicual-gaussian založená na twister-fractalovém fázovém posunu nemá žádné známé díry nebo tajná dvířka”).
■
Vývoj a testování softwaru je extenzivní, protože každý uživatel je potenciálním přispěvatelem ve snaze o vytvoření stabilnějšího a užitečnějšího programu. Je to, jako byste měli rozsáhlý tým vývojářů.
■
Podpora je distribuovaná, buN ji můžete získat od společností, které se na ni specializují (v případě Linuxu např. RedHat nebo Caldera) nebo od vašich kolegů uživatelů/vývojářů skrze webové diskusní skupiny nebo (a to je častější) skrze e-mailové diskusní skupiny. Někdy existují oddělené diskusní skupiny pro chyby, pro vývojáře a pro uživatele, díky čemuž dostáváte pouze informace, které potřebujete.
■
V případě, že se autor nebo firma rozhodnou, že ukončí vedení projektu Open Source, vždycky se najde někdo jiný, kdo to po nich převezme. Tímto způsobem nebudete na suchu, jako je tomu v případě, že se firma prodávající příslušný software rozhodne ukončit daný program nebo celý operační systém.
Nyní se podíváme na obchodní nebo individuální výhody zahájení softwarového projektu Open Source: ■
Shromáždění skupiny jednotlivců, kteří nemají zájem pouze o používání softwaru, ale chtějí jej také vylepšovat a budou se o něj starat. Vaši uživatelé se stanou také spoluautory a získáte pracovní sílu, kterou byste si jinak nemohli dovolit.
■
Opravování a testování může být prováděno v mnohem větším měřítku, než kdybyste měli své testery ve firmě nebo byste uvolnili nějakou betaverzi.
■
Portování softwaru na systémy, ke kterým nemáte přístup je prováděno lidmi, kteří tento přístup a odbornost mají. Nepotřebujete mít vlastní platformu, abyste na ní mohli spouštět program. To umožňuje širší pokrytí a distribuci vašich programů.
■
Zabezpečení a spolehlivost softwaru se může hodně a rychleji zvýšit. Rozsáhlé testování a nabourávání kódu se projeví ve vytváření stabilnějších a flexibilnějších programů.
■
Hodně se zvyšuje také kvalita kódu. Pamatujte si, že je otevřený nejen původní kód, ale také ty, které jsou z něj odvozeny lidmi v komunitě, takže je předmětem intenzivního zkoumání a dalších generací změn, které jej destilují do vyrovnanější soudržné jednotky.
■
Přístup do většího fondu nápadů. Nepotřebujete být nejlepším a nejchytřejším v daném oboru, ve kterém se váš program používá, ale musíte být připraveni rozpoznávat nové nápady a jejich význam. Často to může vést k zcela nové oblasti aplikace softwaru, o které jste nikdy neuvažovali.
Projekty, ve kterých je nepružná struktura vedení, často diktují, které úlohy má kdo udělat, nařizují komunikační cesty mezi vývojáři a pokouší se (doufejme) udělat zajímavými pro návrháře
4
Příloha F
◆
Software Open Source
a programátory a generují komplexnost vývoje, která byla jasně ukázána v knize Freda Brookse “The Mythical Man-Month”. V projektu Open Source lidé doplňují celek podle svých zájmů a kvalifikací, takže je cena prostředků na jejich motivaci nízká, komunikace mezi vývojáři je plynnější stejně jako sestava lidí pracujících na určité části celku. To neznamená, že není potřeba určitý stupeň koordinace, ale že vedení může být prováděno v jednodušším měřítku a na víceúrovňovém hřišti. Uvidíte, že většina softwarových projektů Open Source má standardy jako např. styl psaní programů a organizaci, mechanismy přispívání do projektu a také mají jednoho člověka nebo více lidí, jež sou benevolentními vedoucími, kteří vybírají cestu, kterou se dají. Toto není pevná struktura a vyplývá z dynamiky kultury hackerů (viz TCB, HTN a TMC). Mnoho zajímavých věcí je uvedeno na www.tuxedo.org, včetně “The Magic Cauldron” a “Homesteading the Noosphere”
http://www.tuxedo.org/~esr/writings/magic-couldron/ http://www.tuxedo.org/~esr/writings/homesteading/
V projektu Open Source existuje něco pro každého. Firma, která jej používá, provádí rychlejší vývoj a širší distribuci programu, uživatelé mají kontinuálně se rozvíjející program a programátoři mají stimulaci v tom, že dělají nejen něco, co je užitečné, ale i zábavné a stávají se známými ve své komunitě tím, že dokáží svou šikovnost a inteligenci při psaní kódu. Kdybych měl jednou větou říci, proč je Open Source tou pravou volbou pro projekty, použil bych jednu větu z FAQ (často kladených dotazů) na webovém sídle iniciativy Open Source http://www.opensource.org/: Open Source zvyšuje spolehlivost a kvalitu softwaru tím, že podporuje kontrolu nezávislými osobami a rychlý vývoj zdrojového kódu. Kontrola různými osobami je extrémně úspěšná v akademických kruzích a zdá se být přirozeným šířením nápadů, které zapadají do filozofie volně šiřitelného softwaru a struktury Open Source, která původně začala volnou výměnou mezi lidmi v akademických centrech po celém světě.
Příklady projektů Open Source Seznam projektů Open Source bude vždy neaktuální, protože se většinou mění ze dne na den. Spouští se nové projekty, proto se zmíním pouze o několika z nich. Větší seznam naleznete na webovém sídle iniciativy Open Source.
Apache (http://www.apache.org/) Apache je jedním z nejúspěšnějších webových serverů, používaný více než 60 procenty serverů (jak bylo uvedeno v odhadech Netcraft, http://www.netcraft.com/). Organizace tohoto projektu je podobná nejvíce “benevolentní aristokracii” (nebo “feudálním baronům” - záleží na úhlu pohledu). Existuje základní skupina programátorů, kteří se střídají ve vedení projektu a mají na starosti vývoj částí softwaru, ale jednají na základě použitých základních standardů. Každý člen základní skupiny má také svou základní skupinu programátorů, kteří pracují na modulu celého systému. A nakonec je tu velký počet lidí, kteří jim v jejich úsilí různou měrou pomáhají (programování, dokumentace, hledání chyb, atd.).
5
PHP Programujeme profesionálně
Linux (http://www.li.org/) Toto je nejlepším známým příkladem projektu Open Source. Jádro Linuxu vzniklo na základě iniciativy Linuse Torvaldse o vývoj operačního systému typu UNIX pro levné počítače. Nezačal narychlo a byl ochcoten spolupracovat s jinými lidmi tím, že jim postoupil zdrojový kód. To bylo klíčovým rozhodnutím, které určilo způsob práce linuxové komunity. Je zde jeden “benevolentní diktátor” organizující a starající se o vývoj projektu a spousta samostatně organizovaných skupin lidí snažících se o vylepšování nejen samotného jádra operačního systému (podle všeho to není jednoduchá úloha), ale také o zbytek podpůrného softwaru pro chod operačního systému.
PHP (http://www.php.net/) V tomto případě je “benevolentním diktátorem” Rasmus Lerdorf. Způsob, jakým vývoj pracuje, je podobný Linuxu, ale také má svou “aristokracii” lidí, kteří tento software vyvíjejí. Rozdílem oproti Apache je to, že je zde pouze jediná osoba, která rozhoduje: Rasmus. Zajímavým aspektem tohoto projektu je to, že vyvíjený objekt je aktivně používán při vývoji softwaru. Např. se PHP používá pro většinu webové interakce s hlavním sídlem PHP a také se používá na sídle pro sledování chyb (http://bugs.php.net/) a na sídle vývoje. Je zajímavé si říct, že vedení projektu Open Source obvykle nezávisí na množství jednotlivců nebo skupin zařazených do projektu. Není slavné samo od sebe, ale je založeno na mnoha bezesných nocích programování, kvalitě kódu a na množství kávy. To je velmi odlišné od projektů, ve kterých je vedení dáno externí entitou (například managementem) a mohou a nemusí korespondovat s optimální volbou lidí. Mezi další úspěšné programy patří jazyky Perl a Python, webový systém Zope (napsaný v Pythonu), některé projekty na webovém sídle IBM AplhaWorks, projekt Mozilla pro webový prohlížeč Open Source (to mi připomíná časy starého dobrého Mosaic), operační systém Darwin (nyní se nazývá MacOS X Server) od společnosti Apple, projekty GLX a SAMBA sponzorované SGI a mnoho a mnoho dalších.
Shrnutí Nezáleží na tom, zda je projekt malý, střední nebo velký, i když se mohou v jejich interní dynamice trochu lišit, sdílí společnou myšlenku generování užitečného softwaru, který se může rozvíjet a zlepšovat na trhu volných nápadů. Tato otevřenost pomáhá udržovat kohokoliv otevřeného a zaměřeného na technické aspekty problému. Také musíme vzít v úvahu, že internet vlastně pracuje na bázi volného softwaru (BIND, Sendmail, atd.). Toto demonstruje, že volně šiřitelný software a projekty Open Source mohou být a jsou používány ve velmi důležitých aplikacích a ukazují robustnost, o které se může některým programům jen zdát. Bez úsilí všech těchto programátorů pracujících na vylepšování toho, co je páteří Internetu, a bez vývoje, který nyní považujeme za samozřejmý, by k tomu nikdy nedošlo. Představte si, že kdyby TCP/IP bylo, místo otevřeným standardem, vlastnictvím, pak bychom možná neměli takový informační tok, jaký máme nyní. Ačkoliv, pravděpodobně by se objevila nějaká alternativa, protože přístup Open Source se projevuje více způsoby: prostředky jsou lépe rozvrženy, je zajiš^ován neustálý vývoj programů, ze širší základny lidí přicházejí nové směry a nápady, programátoři to nechápou tak, že přispívají a vlastní část softwaru, ale také z toho mají nějaký profit, protože je poptávka po lidech se správnou odborností ve zralém a populárním softwaru Open Source.
6
Příloha F
◆
Software Open Source
Citát z webového sídla iniciativy Open Source: Základní myšlenka na pozadí Open Source je velmi jednoduchá. Když může programátor na internetu číst, dále distribuovat a upravovat zdrojový kód části softwaru, rozvíjí se. Lidé toho využívají, lidé si to přizpůsobují a lidé opravují chyby. A to může nastat tak rychle, že pokud někdo používal pomalý způsob konvenčního vývoje softwaru, je z toho v úžasu. Komunita Open Source se naučila, že tento rychlý evoluční proces produkuje lepší software, než tradiční uzavřený model, ve kterém má přístup ke zdrojovým kódům pouze několik programátorů a kdokoliv jiný musí slepě používat neprůhlednou sadu prvků.
Další informace Definice software Open Source, verze 1.7 (http://www.opensource.org/osd.html, 7. 9. 1999) Open Source neznamená jenom přístup ke zdrojovým kódům. Podmínky distribuce softwaru Open Source musí odpovídat následujícím kritériím: 1.
Volná redistribuce Licence nesmí omezovat prodej nebo odstranění nějaké součásti jako komponentu celkové distribuce softwaru obsahující programy z více různých zdrojů. Licence nesmí vyžadovat žádný honorář nebo jiné poplatky.
2.
Zdrojový kód Program musí obsahovat zdrojový kód a musí umožňovat distribuci ve zdrojovém kódu stejně jako ve zkompilovaném tvaru. Pokud některé formy produktu nejsou distribuovány se zdrojovým kódem, musí zde být dobře viditelná zmínka o získání zdrojového kódu za přiměřené reprodukční poplatky - nejlépe bezplatné stažení z Internetu. Zdrojový kód musí být v podobě, ve které bude mít programátor možnost jej měnit. Záměrné matení zdrojového kódu je zakázáno. Jsou zakázány také meziformy, jako např. výstup nějakého preprocesoru nebo překladače.
3.
Odvozená práce Licence musí umožňovat modifikace a odvozené práce, a musí umožňovat jejich distribuci za stejných podmínek jaké byly v licenci k původnímu softwaru.
4.
Integrita zdrojového kódu programu Licence může vyžadovat distribuci zdrojového kódu v nezměněné podobě pouze pokud umožňuje distribuci opravných programů (záplat) se zdrojovým kódem pro účely úprav programu pro sestavování programu. Licence musí explicitně povolit distribuci softwaru sestaveného z upraveného zdrojového kódu. Licence může vyžadovat odlišení odvozených prací jiným názvem nebo číslem verze.
5.
Žádná diskriminace osob nebo skupin Licence nesmí diskriminovat žádnou osobu nebo skupinu osob.
7
PHP Programujeme profesionálně 6.
Žádná diskriminace oblastí využití Licence nesmí omezovat nikoho v užívání programu v daných oblastech využití. Například nesmí omezovat využití na pouze nekomerční účely nebo využití pro účely genetického výzkumu.
7.
Distribuce licence Práva spojená s programem musí platit pro všechny, komu je program restribuován bez potřeby další licence nových nebo upravených částí.
8.
Licence nesmí být specifická pro daný produkt Práva spojená s programem nesmí záviset na tom, aby byl částí nějaké distribuce software. Pokud je program oddělen z distribuce a použit nebo distribuován podle podmínek licence programu, měly by mít všechny strany, kterým je program redistribuován, stejná práva, jaká byla dána ve spojení s původní distribucí softwaru.
9.
Licence nesmí kontaminovat další software Licence nesmí ukládat omezení jiného software, který je distribuován spolu s licencovaným software. Např. licence nesmí vyžadovat, aby všechny ostatní programy na stejném programu byly softwarem Open Source.
Shoda (Tato část není součástí definice Open Source) Myslíme si, že definice Open Source vyjadřuje to, co si většina softwarové komunity představovala a stále představuje pod pojmem Open Source. Termín se stal široce používaným a ztratil určitou přesnost. Značka OSI Certified je způsobem, jak OSI (Open Source Initiative) certifikuje, že licence, pod kterou je program šířen odpovídá definici Open Source; původní termín Open Source toto nemůže zajistit, ale budeme stále předpokládat, že Open Source znamená shodu s definicí Open Source. Více informací o značce OSI Certified a seznam licencí, které OSI vydala jako potvrzení shody s definicí Open Source najdete na adrese http://www.opensource.org/certification-mark.html.
Licence, které odpovídají definici Open Source Seznam licencí, které odpovídají definici Open Source, a které jsou uvedeny dole jsou převzaty z webového sídla iniciativy Open Source (http://www.opensource.org/licences/): ■
GNU General Public License (GPL), http://www.fsf.org/copyleft/gpl.html
■
GNU Lesser General Public License (LGPL), http://www.fsf.org/copyleft/lesser.html
■
licence BSD, http://www.opensource.org/licenses/bsd-license.html
■
licence MIT (někdy bývá nazývána “X Consortium license”), http://www.opensource.org/licenses/mit-license.html
■
licence Artistic, http://www.opensource.org/licenses/artistic-license.html
■
Mozilla Public License (MPL), http://www.mozilla.org/NPL/MPL-1.0.html
8
Příloha F ■
◆
Software Open Source
Qt Public License (QPL), http://www.troll.no/qpl/
■
IBM Public License , http://www.research.ibm.com/jikes/license/license3.htm
■
MITRE Colaborative Virtual Workspace License (CVW License), http://cvw.mitre.org/cvw/licenses/source/license.html
■
Ricoh Source Code Public License, http://www.risource.org/RPL/RPL-1.0A.shtml
■
licence Python, http://www.python.org/doc/Copyright.html
■
licence zlib/libpng, http://www.opensource.org/licenses/zlib-license.html
Druhy softwaru Toto v žádném případě není kompletní seznam druhů softwaru. Detailnější seznam naleznete na webovém sídle FSF (Free Soft Foundation).
Public Domain Software, který byl vydán bez nějakých omezení, tj. neexistuje žádný copyright. Autor si nezajiš^uje žádná explicitní ani implicitní práva. Tento termín byste měli používat pouze pro software, u kterého se neuplatňují žádná autorská práva, tj. neobsahuje copyrigth.
Freeware Obvykle se tak označuje software, který smí být volně šířen obecně ve zkompilovaném tvaru, často neobsahuje zdrojový kód a neumožňuje uživateli provádět v něm žádné změny. Autor za program nežádá žádné peníze a ponechává si všechna práva ke zdrojovému kódu a může explicitně vyžadovat, aby uživatel program zaregistroval. Neple^te si jej s “free software”.
Semi-Freeware (nebo něco-mi-pošli-ware nebo udělej-něco-ware) “semi-freeware” používám z důvodu nedostatku vhodnějšího termínu pro druh softwaru, který je někde mezi termíny “freeware” a “shareware”. Tento software nevyžaduje žádné peníze, ale místo toho autor chce, abyste něco provedli nebo abyste mu něco poslali. Například autor může požadovat, abyste poslali nějaký dárek jemu nebo nějaké charitě. Také může chtít, abyste něco udělali, jako např. “buNte milí na své okolí”. Také často chce, abyste mu něco poslali: pohled-ware (“pošli mi pohled”), čokoláda-ware (“pošli mi nějakou čokoládu”), e-mail-ware (“pošli mi nějaký e-mail s tvým názorem”) atd.
Shareware Je to software, který smí být dále distribuován komu budete chtít, ale vyžaduje nějaký poplatek, pokud chcete software používat po delší dobu, než je dána autorem. Také bývá označován “trybefore-you-buy-ware” (před-zakoupením-si-jej-vyzkoušejte-ware), protože můžete nějakou dobu používat plnou verzi programu a pokud jej chcete používat déle, musíte zaplatit licenční poplatek, který se liší podle systému plateb, aby se zajistilo, že autor platbu dostane (tj. uživatel se musí rozhodnout podle svého svědomí). Veškerý shareware se distribuuje v podstatě jen ve zkompi-
9
PHP Programujeme profesionálně lované podobě, není k němu přiložen zdrojový kód, takže uživatel nemůže v takovém programu provádět změny. Něktré z těchto programů mají velmi nepříjemná upozornění, která uživatele upozorňují, aby program zaregistroval a zaplatil a v takovém případě se takovému programu mezi lidmi říká “nagware” (otravný-ware). Ačkoliv v některých extrémních případech tato upozornění mohou rušit nebo způsobit to, že program bude nepoužitelný a tak brání záměru jeho distribuování jako shareware.
Demoware/Crippleware Obvykle jde o software s omezeným použitím nebo omezenými funkcemi, který je pro uživatele jakýmsi vzorkem plné verze programu. Jeho distribuční práva mohou být omezena na autora (tj. pokud jej chcete, stáhněte si jej z webové stránky autora). Například to může být kreslící program, který ma zablokovanou funkci ukládání nebo komunikační program, který vám umožňuje se připojit na chat 100krát nebo pracuje pouze měsíc a pak se odmítne spustit nebo se spustí a nic nedělá. V některých extrémních případech není software nic jiného, než prezentace, která popisuje plnou verzi a nelze její běh nijak ovlivnit. V případě “cripple-ware” obvykle musíte zaplatit registrační poplatek a potvrdit licenci odpovídající příslušnému softwaru, abyste měli přístup ke všem funkcím programu. Samozřejmě, k žádnému softwaru z této kategorie není dodáván zdrojový kód.
Software na zakázku Je to software, který musíte zaregistrovat a zaplatit, abyste dostali licenci k jeho použití a nemůžete jej vůbec redistribuovat nebo (ve velmi málo případech) je zapotřebí explicitní právo a speciální licenční podmínky sjednané s autorem, které vám to umožní. Ve všech případech nesmíte program žádným způsobem upravovat, ačkoliv v některých případech můžete mít právo dělat úpravy, když zaplatíte (vysokou) odměnu za zdrojové kódy a podepíšete smlouvu o zachování obchodního tajemství s dodavatelem software. Ne všechen příslušný software je prodán, ve skutečnosti jsou některé omezeny pouze na používání (např.) za podpory nebo obchodního partnerství s firmou, která tento program napsala, a nikdo další nesmí mít přístup k programu (nebo vědět o jeho existenci). Příkladem toho budou programy, které řídí fungování senzorů počasí pro letadla nebo programy z oblasti komunikací.
Komerční software Tento software je vyvíjen softwarovou firmou za účelem jeho prodeje a přínosu zisku, buN prodejem jako takovým, licenčním schématem nebo podporou kontraktů, případně všemi těmito způsoby. “Software na zakázku” a “komerční software” nejsou synonyma, přestože by některé obchodní magazíny byly rády, kdybyste tomu věřili. Existuje software Open Source, který je komerční (například Zope), stejně jako komerční software na zakázku (například Microsoft Word). Jak již bylo uvedeno, některý software na zakázku není vytvořen pro peníze, ale pro jiné účely, které mohou být důležité pro fungování byznysu.
Doporučená četba Základním místem pro získávání informací o vývoji Open Source je webové sídlo iniciativy Open Source (http://www.opensource.org/). Zde naleznete hlubší analýzy výhod softwaru Open Source, stejně jako série dobrých článků o výhodách pro lidi ze sféry byznysu stejně jako pro koncové
10
Příloha F
◆
Software Open Source
uživatele. Pokud chcete navštívit pouze jediný webový server s informacemi o Open Source, je to tento. Zajímavé eseje, které napsal Eric S. Raymond, můžete najít na URL: http://www.tuxeDetailní analýzy dopadu sociálně-dynamických, psychologických, kulturních a ekonomických aspektů vývoje Open Source (a obecně hackerské kultury) jsou vyzývavé myšlenky a otevřou oči nejednomu člověku. do.org/~esr/writings/.
Pokud budete číst Raymondovy články, měli byste se také podívat na webové sídlo FSF (Free Software Foundation) a přečíst si eseje Richarda Stallmana (o fámách o FSF, GNU a Emacs) s tématikou “free software” z ideologičtějšího a političtějšího úhlu pohledu. Také to bude dobré čtení pro získání lepšího přehledu o vývoji, zejména pokud je toto všechno pro vás novinkou. A samozřejmě je to místo pro získání informací o všech těchto aplikacích, které máme tolik rádi, a některých dalších mimořádně skvělých věcech. Další dokumenty dostupné na webu (v žádném zvláštním pořadí): ■
„Business Decision. How We Reached The Open Source Decision” od P. Everitta (http://www.zope.org/information/businessdecision)
■
„Cooking pot markets: an economical model of the Internet” od R. A. Ghoshe (http://www.dxm.org/fm/cookingpot/)
■
„Microsoft Windows NT Server 4.0 versus UNIX” od J. Kirche (http://www.penguin.cz/~had/unix-nt/)
■
„Mission Critical Experiences with Linux” od J. H. Terpstry (http://samba.anu.edu.au/~dan/lmc.html)
■
„The Hackers Anti-Defamation League” (http://members.xoom.com/jcenters/HADL.html)
■
„Information Wants to be Valuable: A Report from the First O’Reilly Perl Conference” od Keitha W. Porterfielda (http://www.netaction.org/articles/freesoft.html)
11