Let's Do It Romania - 24 Septembrie 2011



   

Software liber

   

"Liber" nu e sinonim cu "gratuit"


   

Se vorbeşte tot mai mult despre "free software" şi "open source", dar se ştie încă prea puţin despre semnificaţia reală a acestor termeni. O scurtă introducere în problemă, câteva definiţii, câteva exemple şi câteva clarificări.

Mircea Sârbu


Nu doar că se vorbeşte din ce în ce mai mult în lumea informatică despre free software şi open source, dar programele de acest fel sunt tot mai des folosite în mediile academice, ştiinţifice, administrative şi comerciale. Cu toate acestea, domneşte încă o stare de confuzie în ceea ce priveşte termenii care definesc acest fenomen şi conceptele pe care acesta se bazează. Această confuzie este - într-un fel - normală, având în vedere că ne aflăm în faţa unui fenomen fără precedent în istorie, fenomen având rădăcini şi implicaţii în domenii diverse: tehnologie, economie, politică, morală, legislaţie.

Premise

Într-o primă etapă a istoriei informatice, calculatoarele erau livrate împreună cu softul de bază. Dezvoltarea aplicaţiilor se făcea "în casă" iar incompatibilitatea sistemelor de operare făcea aproape imposibil un comerţ propriu-zis cu programe.

Apariţia sistemului Unix a însemnat un moment epocal. Portabilitatea l-a făcut repede disponibil pe diverse platforme hardware iar superioritatea tehnică l-a impus ca un standard de facto. Universităţile l-a adoptat imediat iar programatori entuziaşti au început să dezvolte unelte software specializate. Apariţia primelor reţele de mare amploare şi apoi a Internetului (la vreme aceea apanajul aproape exclusiv al mediilor academice şi ştiinţifice) a adus şi posibilitatea schimbului liber de programe. Se distribuia de regulă codul sursă al programelor, pentru a putea fi compilate pe diverse platforme hardware şi pentru a putea fi studiate, verificate, adaptate şi eventual dezvoltate în continuare.

Răspândirea la scară largă a microcomputerelor şi relativa standardizare a acestora în jurul unui număr limitat de platforme hard/soft (PC-uri DOS/Windows, Apple Macintosh, staţii Unix) a creat condiţiile dezvoltării explozive a comerţului cu produse software.

Caracterul oarecum "imaterial" al produselor software precum şi statutul de "creaţie intelectuală" al acestora le plasează în mod firesc sub legislaţia drepturilor de autor (copyright). Totodată, reproducerea facilă impune o modalitate specială de comercializare: ceea ce se vinde este - în primul rând - dreptul de utilizare a programului, drept consemnat într-o licenţă nominală.

Printr-un concurs de împrejurări, în ultimii ani firma Microsoft a dobândit o dominaţie aproape totală pe piaţa sistemelor de operare şi a programelor de birotică, atacând foarte agresiv şi pieţe mai specializate. În aceste condiţii, mişcarea pentru "software open source" (OSS) devine tot mai clar o alternativă, motiv pentru care este adesea percepută ca o mişcare anti-Microsoft.

De fapt, mişcarea open source poate fi considerată unul dintre primele fenomene specifice epocii post-industriale, în care informaţia şi tot ceea ce implică utilizarea ei devine valoarea economică fundamentală. În esenţă, ea reflectă câteva evoluţii şi tendinţe în aparenţă contradictorii, dintre care merită amintite câteva:

Restructurarea organizaţională prin reducerea nivelelor ierarhice şi delegarea autorităţii preponderent pe orizontală (aşa-numitele ierarhii plate) a fost dusă până la extrem în metodologia de dezvoltare a programelor open source. Corolarul imediat al acestei organizări îl reprezintă scurtcircuitarea birocraţiei administrative, tradusă în termeni practici prin dinamica constituirii spontane a echipelor operative reunind competenţele necesare, ceea ce a dus la o viteză de reacţie aproape miraculoasă.

Mutarea accentului de pe producţie spre servicii este o tendinţă evidentă în toate economiile avansate, dar fenomenul open source este primul care o duce până aproape de consecinţele ei ultime: produsul în sine (software, în acest caz) tinde să-şi piardă caracterul de marfă (prin abrogarea preţului), devenind un soi de infrastructură care urmează să fie exploatată comercial prin servicii personalizate.

Free software

Termenul a fost popularizat în anii '80 de Richard Stallman, cercetător la MIT AI Labs. În 1984 acesta lansează proiectul GNU (acronim recursiv pentru GNU is Not Unix), cu scopul de a crea un sistem Unix liber. Stallman insistă asupra termenului free, accentuând asupra sensului liber (nu "gratis": Free speech, not free beer). Motivaţiile sale sunt în mare parte de ordin etic şi politic: cunoaşterea înglobată într-un program este similară cunoaşterii ştiinţifice, deci trebuie diseminată în mod liber. În caz contrar, consideră Stallman, această cunoaştere se va acumula în mâinile unui grup restrâns.

Pentru a fi considerat liber, un program software trebuie să-i acorde utilizatorului următoarele libertăţi:

  1. Să ruleze programul pentru orice scop doreşte;

  2. Să studieze modul în care acesta funcţionează şi să-l adapteze nevoilor sale.

  3. Să poată să re-distribuie copii ale acestuia.

  4. Să poată să îmbunătăţească programul şi să facă publice îmbunătăţirile aduse.

Libertăţile (2) şi (4) impun implicit publicarea surselor programului. Pentru a evita ca un program liber (cum sunt şi cele create de Stallman: editorul emacs şi compilatorul gcc) să devină proprietar, grupul constituit în Free Softare Foundation (FSF - 1985) a conceput o licenţă specială, numită GPL (General Public License), care conferă utilizatorilor toate libertăţile din definiţie, dar nu şi permisiunea de a restricţiona în vreun fel distribuirea copiilor programului original sau a programelor derivate, care trebuie să poarte de asemenea o licenţă GPL. Pentru a diferenţia această licenţă de cele bazate pe restricţiile impuse de copyright, Stallman a inventat termenul de copyleft.

Open source

În 1997, un grup de creatori de soft liber, dintre care se remarcă Eric Raymond şi Bruce Perens, a ajuns la concluzia că mesajul oarecum anti-business promovat de FSF împiedică de fapt penetrarea softului liber în mediile industriale. Pentru a atenua reţinerile acestor medii, grupul constituit ca Open Source Initiative (OSI) a popularizat termenul open source software şi a conceput un model de licenţiere mai liberal decât GPL în privinţa mixării de soft liber şi soft comercial (prin derivare sau agregare).

În principiu, definiţia softului open source include definiţia softului liber. În plus, definiţia prevede dreptul autorului de a proteja integritatea codului său, cu condiţia ca variantele modificate să poată fi distribuite sub formă de patch-uri. De asemenea, definiţia permite ca programele derivate să poată fi distribuite sub o altă licenţă şi tratează cazul distribuirii mai multor programe pe acelaşi mediu, specificând explicit faptul că modul de licenţiere a unui program nu trebuie să impună restricţii în privinţa licenţelor altor programe. Se evită astfel "efectul viral" (contaminarea unor programe cu licenţa altora) pe care-l induce licenţa GPL, se oferă o mai mare libertate în privinţa mixării de soft liber şi soft proprietar (prin derivare sau agregare) şi se permite încorporarea de produse open source în produse proprietare.

Din punct de vedere formal, un produs software este considerat open source atunci când licenţa sub care este distribuit este recunoscută de OSI ca fiind compatibilă cu definiţia.

Licenţe Open Source

Spre deosebire de licenţele comerciale - care au caracter individual (cel mai adesea nominativ) şi sunt netransmisibile, având scopul să limiteze drepturile licenţiatului în privinţa utilizării şi, mai ales, redistribuirii produsului - licenţele sub care se distribuie produsele open source sunt publice, adresându-se tuturor utilizatorilor efectivi sau potenţiali ai respectivului program, şi sunt transmisibile.

În principiu, aceste licenţe au ca scop garantarea unor libertăţi de utilizare şi distribuire, reversul acestora constituindu-l tocmai protejarea caracterului liber al produsului. De obicei, obligaţiile utilizatorului se referă la păstrarea licenţei în cazul redistribuirii şi la utilizarea numelui producătorului în reclame.

Alături de licenţele GPL şi LGPL (versiunea pentru biblioteci), mai multe tipuri de licenţe sunt considerate conforme definiţiei open source:

  • Licenţa X a fost concepută de X Consortium pentru distribuţia sistemului X Window şi este cea mai liberală dintre toate licenţele open source. Practic, utilizatorul poate face aproape orice cu produsul astfel licenţiat.

  • Înrudită cu licenţa X este licenţa BSD (Berkeley Software Distribution), care prevede în plus obligaţia ca materialele publicitare referitoare la produs să menţioneze: "This product includes software developed by the University of California, Berkeley and its contributors".

  • Apache Software License este similară cu BSD, dar interzice denumirea Apache în produsele derivate fără acordul Apache Software Foundation.

  • Artistic License este licenţa sub care se distribuie Perl. Licenţa prevede explicit interdicţia vânzării produsului în sine, dar permite vânzarea în formă agregată cu condiţia ca produsul agregat să nu fie promovat prin produsul astfel licenţiat.

  • Netscape Public License (NPL) şi Mozilla Public License (MPL) au fost ambele elaborate de firma Netscape când a publicat codul sursă al programului Navigator. Licenţele sunt similare, cu excepţia faptului că NPL prevede privilegiul firmei Netscape de a re-licenţia versiunile modificate.

  • Numeroase firme (Apple, IBM, Sun etc.) sau organizaţii (MIT, W3C, Python Software Foundation etc.) au dezvoltat diferite alte licenţe compatibile open source pe baza celor enumerate mai sus.

Modelul de dezvoltare

Noţiunea open source este asociată adesea şi cu un model de dezvoltare a produselor software, similar cu cel folosit de comunitatea Linux şi descris de Eric Raymond în eseul Catedrala şi bazarul. În principiu, această metodologie se bazează pe contribuţiile voluntare ale numeroşilor programatori şi utilizatori care iau parte la proiect. Aceste contribuţii se referă la dezvoltarea propriu-zisă, la testare, la corectarea erorilor, la propunerea unor noi facilităţi, la elaborarea documentaţiei, la asistenţa tehnică etc.

În contrast cu sobra metodologie clasică de dezvoltare a produselor software, bazată pe o ierarhie clară, pe delimitare netă a competenţelor şi pe o agendă clară (modelul Catedrală), comunitatea open source pare o veselă anarhie (bazarul), care pulverizează structurile ("deleagă tot ce poţi" spune Linus Torvalds) şi descătuşează creativitatea fiecărui participant la proiect. În această abordare, "utilizatorul" este partener la dezvoltare, fiind de fapt un beta-tester avizat şi intransigent. Cel puţin în primele faze, utilizatorii sunt chiar cei ce dezvoltă programele, interesul lor rezultând în mod firesc de rezolvarea unor probleme practice proprii (voluntariatul nu este în mod necesar dezinteresat).

Calitatea remarcabilă a produselor open source (în ciuda unei aparente "dezordini creatoare") se datorează nu doar faptului că adesea aceste proiecte reunesc programatori absolut remarcabili, ci şi unui principiu extrem de simplu, pe care Reymond îl numeşte Legea lui Linus: dacă sunt destui ochi, orice scamă (bug) va sări într-unul dintre ei. Totul este deschis, totul este public, oricine este primit. Echipele se coagulează spontan iar agenda se bazează pe principul "distribuie devreme, actualizează des". Se întâmplă uneori ca în aceeaşi zi să se distribuie mai multe versiuni ale unui produs şi, în mod paradoxal, absenţa termenelor de predare pare să accelereze dezvoltarea.

Nu toate produsele open source au fost dezvoltate astfel. În unele cazuri este vorba de proiecte pornite din mediul academic (de pildă PostgreSQL), în alte cazuri este vorba de proiecte comerciale devenite publice (de pildă Mozilla). Dar succesul Linux-ului a fost atât de spectaculos încât metoda sa de dezvoltare s-a impus în întreaga comunitate.

Modelul comercial

În aparenţă, open source software (OSS) este un nonsens comercial. Există două întrebări care, din perspectiva modelului comercial clasic, nu-şi găsesc răspuns:

  • Cum se pot câştiga bani de pe urma unui produs care se distribuie gratuit sau la preţuri modice?

  • Ce interes poate să aibă cineva să investească timp şi muncă într-o lucrare comună fără să fie plătit?

Aceste paradoxuri au întreţinut multă vreme o anumită reticenţă a mediului de afaceri, care a preferat să considere mişcarea open source o comunitate de visători, dacă nu chiar anarhişti sau chiar comunişti (s-au formulat chiar asemănări cu mişcarea hippy a anilor '60). În orice caz, nu un partener de afaceri...

În realitate, fenomenul OSS are rădăcini economice solide (chiar dacă nu evidente), iar faptul că firme mari şi clar orientate spre profit (cum sunt IBM, Sun sau Apple) susţin această mişcare este o probă irefutabilă.

Esenţa filozofiei comerciale a mişcării open source este simplă atunci când este exprimată potrivit: să oferi gratuit aparatul de bărbierit şi să vinzi lame. Pornind de la această metaforă, se pot identifica cu uşurinţă câteva strategii comerciale fundamentale:

  • Se furnizează gratuit produsul software, dar se vinde valoare adăugată. Aceasta poate consta în asamblarea unor piese OSS într-o distribuţie coerentă (eventual sub un brand propriu), furnizarea de suport tehnic, servicii post-vânzare, consultanţă etc. Exemplele sunt numeroase, de la Red Hat până la mici firme "de apartament".

  • Se furnizează gratuit un produs software pentru a creşte baza de clienţi pentru produsele software şi hardware proprietare. Câteva exemplele de notorietate la această categorie sunt Netscape (cu proiectul Mozilla), Borland (cu Firebird SQL Server), Sun (cu StarOffice, apoi OpenOffice) şi Apple (cu Darwin).

  • Vânzarea de diverse accesorii pentru OSS, cum ar fi cărţile de specialitate, hardware compatibil sau special proiectat, sisteme cu soft open source preinstalat etc. Printre firmele care practică această strategie se numără editura OÂÂÂÂÂÂ’Reilly, Dell Computer şi mulţi alţii.

  • Multe firme de hardware preferă să furnizeze în regim open source componentele software, în speranţa că astfel comunitatea va dezvolta mai repede şi mai bine drivere, interfeţe şi alte softuri compatibile. Apple a procedat de multe ori astfel.

Desigur, aici am enumerat doar posibilităţile comerciale oarecum "directe". Dar merită amintite şi firmele care dezvoltă versiuni specializate ale unor produse open source (succesul firmei Zope Corporation este remarcabil) şi, desigur, nenumăratele firme care dezvoltă soluţii informatice particularizate, folosind şi integrând produse open souce (adesea împreună cu produse comerciale).

În mod cert, OSS creează piaţă şi, în plus, contribuie indirect la creşterea concurenţei, obligând furnizorii de software comercial să amelioreze mereu calitatea propriilor produse şi să scadă preţurile. De asemenea, aderenţa programatica la standarde publice a produselor open source creează o presiune în lumea comercială pentru adoptarea acestora în defavoarea standardelor proprietare, care limitează libertatea de alegere a cumpărătorilor.


Clarificări

Public Domain - O confuzie destul de răspândită echivalează noţiunile de software liber şi software public domain. Un program este în domeniul public când autorul acestuia a renunţat în mod deliberat la orice drepturi asupra programului. Acesta este proprietatea personală a utilizatorului, care poate să facă ce doreşte cu el, inclusiv să-l re-licenţieze. Un program public domain nu este acoperit de nici o licenţă, spre deosebire de programele open source.

Freeware şi demo - Faptul că un program este gratuit nu înseamnă că este "liber". Viewer-ele de genul Acrobat Reader, versiunile limitate ale unor produse comerciale (de pildă WS_FTP), versiunile demo sau anumite versiuni educaţionale ale programelor comerciale sunt adesea gratuite dar nu sunt "libere", deoarece nu au surse publice, nu pot fi modificate şi nu pot fi liber distribuite.

Drepturi de autor - Programele free software şi open source sunt protejate prin copyright, deci sunt proprietatea deţinătorului drepturilor de autor. Un program poate fi distribuit sub licenţe diferite, indiferent dacă acestea sunt comerciale sau conforme definiţiei open source.

Caracterul gratuit - Nici o prevedere din definiţia programelor open source nu interzice vânzarea acestor programe. Mai mult chiar, dreptul de a vinde aceste programe este făcut public, indiferent dacă este vorba de programele în sine, de produse derivate sau produse agregate. (Notă: licenţa în sine nu este open source, deci nu poate fi modificată). Pe de altă parte, prin termenii licenţelor open source, autorul nu poate cere nici o taxă de la cei care redistribuie o versiune a programului distribuit sub o astfel de licenţă.

Patente software - În mod uzual, protecţia proprietăţii intelectuale în domeniul programelor pentru calculator este asigurată prin legislaţia drepturilor de autor (copyright). Copyright-ul nu se referă la ideile, conceptele şi metodele tehnice care stau la baza programelor, ci doar la expresia acestora în cadrul programului. Pentru protecţia ideilor şi conceptelor tehnice care au caracter de invenţie este aplicabilă legislaţia patentelor. În ultima vreme, în SUA se aplică şi aşa-numitele patente software, subiectul unei largi controverse.

Hacker şi cracker - Noţiunea de hacker este folosită de comunitatea open source pentru a desemna orice proiectant care contribuie la un proiect open source (acesta este şi sensul termenului în eseurile lui Raymond). Pentru a evita conotaţiile negative cu care presa a încărcat acest termen, termenul utilizat pentru "spărgători" este cracker.


 

(Publicat în Open Source Update - octombrie 2003)

 

Copyright © 2003 Mircea Sârbu

Creative Commons License
This work is licensed under a Creative Commons License.