Zßkladnφ principy free software


A manager went to the master programmer and showed him the requirements document for a new application. The manager asked the master:

"How long will it take to design this system if I assign five programmers to it?"
"It will take one year," said the master promptly.
"But we need this system immediately or even sooner! How long will it take it I assign ten programmers to it?"
The master programmer frowned. "In that case, it will take two years."
"And what if I assign a hundred programmers to it?"
The master programmer shrugged. "Then the design will never be completed," he said.

-- Geoffrey James, The Tao of Programming

Mnoho lidφ zkoumalo d∙vod, proΦ je free software ·sp∞╣nΘ a proΦ se najde tolik programßtor∙, kte°φ na programech pracujφ Φasto i ·pln∞ zdarma. Nßzory jsou r∙znΘ. Pro zajφmavost si m∙╛ete p°eΦφst dva Φlßnky od znßm²ch osobnostφ na poli free software - GNU Manifest Richarda Stallmana (1985) a The Cathedral and the Bazaar Erika S. Raymonda (1998). Mezi postupy specifickΘ pro free software pat°φ:

Otev°en² v²vojov² model

Ka╛d², kdo se podφlel na v∞t╣φm softwarovΘm projektu vφ, ╛e jeho koordinace nenφ nic snadnΘho. Jenom °φzenφ projektu na kterΘm pracuje 20 programßtor∙ je velmi nßroΦnΘ. Koordinace projektu, na kterΘm by pracovaly stovky programßtor∙ ve svΘm volnΘm Φase se zdß b²t tΘm∞° nemo╛nß. P°esto tak ale ·sp∞╣n∞ pracuje mnoho free softwarov²ch projekt∙. Nejznßm∞j╣φ je v²voj jßdra Linuxu, kde dnes snad tisφce programßtor∙ posφlajφ svΘ zm∞ny n∞kolika mßlo koordinßtor∙m, kte°φ je kontrolujφ a za°azujφ do oficißlnφch zdrojov²ch k≤d∙. V²vojovΘ verze se pak zve°ej≥ujφ velmi Φasto tak, aby v╣ichni m∞li ╣anci vid∞t v²sledky svΘ prßce a opravovat chyby. V²voj Linuxu postupuje nezvykle rychle a efektivn∞ p°esto, ╛e tato metoda poru╣uje snad v╣echna zab∞hlß pravidla. (Klasickß literatura o °φzenφ velk²ch projekt∙ nabßdß k vytvo°enφ malΘ dob°e organizovan²ch skupy, kterß program napφ╣e a zve°ejn∞nφ jej a╛ v dob∞, kdy je pln∞ funkΦnφ, aby se p°φpadnφ u╛ivatele neodradili.)

Na ojedin∞lost tohoto postupu poukßzal prßv∞ Erik Raymond ve v²╣e zmi≥ovanΘm Φlßnku. Jeho zve°ejn∞nφ znamenalo v²znamn² obrat ve v²voji ostatnφch projekt∙. Sprßvci projekt∙ zaΦali ·mysln∞ experimentovat s touto metodou v²voje. Doslova raketov²m tempem vznikly n∞kterΘ novΘ projekty, mezi kterΘ pat°φ nap°φklad GIMP (kreslφcφ program dnes srovnateln²ch mo╛nostφ s Photoshopem), GNOME a KDE (U╛ivatelsky p°φtulnΘ desktopy pro Linux).

ZajφmavΘ bylo sledovat v²voj udßlostφ u GNU p°ekladaΦe (GCC), kde vznikly tendence p°ejφt na tento model. Na╣lo se ale mnoho odp∙rc∙, kte°φ tvrdili, ╛e u tak komplikovanΘho projektu to je nemo╛nΘ. P°ekladaΦe pat°φ mezi nejslo╛it∞j╣φ programy v∙bec a nenφ jasn² ani jejich nßvrh a proto koordinace takovΘho mno╛stvφ v²vojß°∙ se zdßla b²t slo╛itß. Tak vznikla novß odno╛ v²voje (EGCS), kterß m∞la primßrn∞ za ·kol testovat slo╛it∞j╣φ zm∞ny do p°ekladaΦe, kterΘ by pak byly za°azovßny do oficißlnφ a stabilnφ verze. Tato od╣t∞penß verze ale brzy nabyla takovΘ rychlosti v²voje, ╛e za°azovßnφ zp∞t se stalo nemo╛nΘ. Navφc se tato experimentßlnφ verze stala stabiln∞j╣φ, proto╛e ji╛ p°i v²voji byla testovßna mnoha u╛ivateli a tak nakonec p°ed n∞kolika m∞sφci p∙vodnφ v²vojovou v∞tev pohltila. Dφky n∞kolika odvß╛n²m zßsah∙m do p°ekladaΦe se v²razn∞ zlep╣ila kvalita generovanΘho k≤du a podpora modernφch jazyk∙, jako je C++. Zatφmco do starΘ v²vojovΘ verze bylo za°azeno p°ibli╛n∞ 10 zm∞n m∞sφΦn∞, do novΘ jich p°ib²vß asi 150 a tempo se stßle zvy╣uje.

Otev°en² model v²voje se stal lßkadlem i pro komerΦnφ firmy. Prvnφ v²znamn² experiment provedla firma Mozilla, kterß uvolnila zdrojovΘ k≤dy svΘho browseru Netscape. P°esto, ╛e ani tento krok nepomohl zachrßnit firmu p°ed p°evßlcovßnφm firmou Microsoft, mnoho dal╣φch firem zaΦalo zva╛ovat podobn² krok. Na browseru se koneckonc∙ nynφ aktivn∞ pracuje a poslednφ v²vojovΘ verze vypadajφ opravdu slibn∞. Od startu projektu byl cel² prohlφ╛eΦ kompletn∞ p°epsßn a rozmodularizovßn. Zve°ejn∞nφ novΘ verze Netscape je tak po mnoha odkladech ohlß╣eno na konec roku 1999.

Pozd∞ji i n∞kte°φ dal╣φ velikßni (jako Sun, IBM, nebo SGI) zaΦali uvol≥ovat zdrojovΘ k≤dy sv²ch produkt∙. V²sledkem je, ╛e free software dostalo podporu velk²ch firem a ty stßle v²razn∞ji napomßhajφ p°i jeho v²voji.

Free softwarovΘ licence a copyleft

P∙vodn∞ vznikaly free softwarovΘ programy jako Public domain, kde program nem∞l copyright a ka╛d² jej mohl pou╛φvat naprosto bez omezenφ. ╚asem se ale ukßzala nutnost n∞jak prßvn∞ zast°e╣it jejich v²voj. Nap°ed vznikly licence typu BSD, kterΘ povolujφ pou╛φvßnφ a modifikace bez omezenφ ale zakazujφ z programu vymazat informace o p∙vodnφch autorech.

Se zajφmavou my╣lenkou p°i╣el Richard Stallman p°i zaklßdßnφ GNU projektu. Sßm v GNU manifestu pφ╣e:

GNU nenφ public domain. Ka╛d² bude mφt mo╛nost modifikovat a redistribuovat GNU, ale nikdo nem∙╛e omezit jeho dal╣φ roz╣i°ovßnφ. To znamenß, ╛e ╛ßdnΘ vlastnickΘ modifikace nebudou povoleny (nikdo si nesmφ p°ivlastnit GNU tφm, ╛e by ho modifikoval, a proto pova╛oval za vlastnφ majetek). Chci zajistit, aby v╣echny verze z∙staly free.
Proto licenci pou╛itou GNU projektem, GNU General Public Licence (GPL), koncipoval tak, aby chrßnila hlavn∞ program a jeho u╛ivatele. Licence zakazuje pozd∞j╣φ zm∞nu na jinou licenci a p°ikazuje ka╛dΘmu distributorovi programu dodßvat na po╛ßdßnφ i zdrojovΘ k≤dy. Navφc se automaticky p°enß╣φ na ve╣kerΘ ·pravy programu a proto i firma, kterß vyvine n∞jakΘ vylep╣enφ do GNU programu, nebo Φßst GNU programu pou╛ije ve svΘm dφle, mß povinnost svΘ zm∞ny zve°ejnit. Dφky tomu se GPL ╣φ°φ jako virus na dal╣φ a dal╣φ programy. (ne v╣ak na v²sledky prßce program∙, m∙╛ete tedy v GNU v²vojovΘm prost°edφ vyvφjet komerΦnφ program). Tuto my╣lenku nazval "copyleftem", jako opak copyrightu.

Prßv∞ dφky copyleftu n∞kterΘ firmy musely zve°ejnit zdrojovΘ k≤dy a takΘ napomohl omezit n∞kterΘ "pseudo-free" licence program∙ (programy distribuovanΘ bez zdrojov²ch k≤d∙, programy, kterΘ jsou zdarma pouze pro nekomerΦnφ pou╛itφ, programy s omezenφm na distribuci apod.). Kombinovat GNU programy s programy distribuovanΘ pod podobn²mi licencemi je nelegßlnφ a proto v∞t╣ina v²vojß°∙ nakonec p°istoupφ na pln∞ free softwarovou licenci. Dφky tomu se dnes stala GPL nejoblφben∞j╣φ free softwarovou licencφ v∙bec.

Ne v╣echny free softwarovΘ licence v╣ak musφ obsahovat copyleft. Existujφ i takovΘ, kterΘ pozd∞j╣φ komercializaci projektu nezakazujφ. Mezi nejznßm∞j╣φ pat°φ BSD licence pou╛itß nap°φklad v systΘmu FreeBSD, Artistic licence pou╛φvanß programem Perl, nebo licence pou╛itß p°i v²voji systΘmu X Window.

Zßla╛φ tak pouze na autorovi programu, kterou licenci si zvolφ.