Am scris mai multe articole despre open source; promovez conceptul open source şi prin viu grai, la o discuţie liberă. 🙂 Din această cauză, am fost întrebat: ce înseamnă, totuşi, open source-ul de care tot pomeneşti? Ce avantaje îmi aduce mie, utilizator final? Un răspuns la această întrebare îl poate reprezenta şi acest articol, tradus şi adaptat după această postare.
Ce este open source?
Este ca atunci când coci o prăjitură şi împarţi atât reţeta, cât şi rezultatul ei (prăjitura în sine) cu prietenii. Dacă, de exemplu, unul din prieteni este alergic la nuci iar reţeta cere nuci, acea persoană o poate modifica. Există şi posibilitatea de a lua reţeta şi de a o îmbunătăţi. Bineînţeles, mai este şi varianta mersului la magazin şi cumpărării acelei prăjitură, gata făcută, în loc s-o preparăm, dar nu vei şti niciodată toate ingredientele din această prăjitură cumpărată. Va fi greu s-o reproduci acasă, neştiind exact ce conţine. Iar dacă o vei face, vei risca să fii dat în judecată pentru că ai împărţit cu alţii reţeta acelei prăjituri, proprietate a altcuiva.
Sau un alt exemplu de ceea ce înseamnă open source: nu vei cumpăra niciodată o maşină care are capota sudată, aşa-i? Atunci de ce să cumperi software proprietar? Dacă nu vezi ce se află şi ce se întâmplă sub capotă, atunci vei rămâne cu maşina îngheţată, blocată exact în felul în care ai cumpărat-o, fără posibilitatea de a interveni asupra ei în cazul în care păţeşti ceva cu ea – şi nu e o idee prea plăcută. În timp ce unii oameni sunt de acord cu asta, utilizatorii avansaţi ai calculatoarelor nu ar trebui să fie. Unii vor să intre dedesubtul capotei, să vadă ce e acolo şi să se „joace” puţin, modificând şi îmbunătăţind.
Licenţiere
Este important să înţelegem copyright-ul. Să presupunem că cineva împarte printre cunoscuţii săi un desen cu o floare frumoasă, desen protejat automat de drepturile de autor; acel cineva poate schimba licenţa într-una Creative Commons - permite titularilor de drepturi de autor să ofere publicului o parte din drepturile pe care le au şi să-şi păstreze cealaltă parte, printr-o multitudine de mecanisme, printre care eliberarea lucrărilor în domeniul public sau sub licențe de conţinut deschis, evitându-se astfel barierele pe care le pun legile drepturilor de autor în calea liberei circulaţii a informațiilor.
Care este diferenţa dintre software-ul open source şi software-ul free şi open source? În esenţă, cele două ar trebui să fie sinonime, dar lucrurile nu stau chiar aşa. Diferenţa constă că licenţa liberă (free) - pentru a înţelege conceptul, trebuie gândit “free” ca în “free speech”, nu ca în “free beer” - impune distribuirea tot sub licenţă liberă (un program poate fi studiat, modificat, îmbunătăţit şi distribuit cu restricţii minime). Scopul restricţiilor este de a asigura continua răspândire a acestor programe, fără a limita drepturile altor utilizatori de a le utiliza, copia, distribui, studia, modifica și îmbunătăţi. Dacă sunteţi sub o licenţă cu sursă deschisă (open source) şi faceţi o modificare la program, puteţi modifica licenţa, puteţi chiar comercializa programul respectiv . Dar dacă sunteţi sub o licenţă liberă nu aveţi această opţiune – licenţa trebuie să rămână aceeaşi şi să fie transmisă mai departe tot aşa.
O altă comparaţie este aceea între termenii copyleft şi permisiv. Copyleft - practica de a folosi legea drepturilor de autor pentru a înlătura restricţiile privind distribuirea copiilor (exacte sau modificate) ale unei opere către alte persoane, asigurând totodată că aceste libertăţi vor fi transmise integral şi către utilizatorii versiunilor modificate ale operei (în cascadă). Termenul copyleft este un joc de cuvinte care porneşte de la cuvântul englezesc copyright. Licenţele permisive permit modificări fiind sub alte licenţe, mai restrictive.
Wikipedia spune:
Software-ul liber e caracterizat de libertatea acordată utilizatorilor săi de a-l utiliza, copia, redistribui, studia, modifica şi îmbunătăți. Mai exact, este vorba de următoarele patru forme de libertate pentru utilizatorii săi:
- Libertatea de a utiliza programul, în orice scop (se mai numeşte "libertatea 0").
- Libertatea de a studia modul de funcţionare al programului, şi de a-l adapta nevoilor proprii ("libertatea 1"). "Open source" asigură accesul la tot codul-sursă.
- Libertatea de a redistribui copii, în scopul ajutorării aproapelui tău ("libertatea 2").
- Libertatea de a îmbunătăţi programul, şi de a pune îmbunătăţirile la dispoziţia publicului, în folosul întregii societăţi ("libertatea 3"). Necesită accesul la codul-sursă.
Spre deosebire de cele de mai sus, software-ul proprietar nu pune la dispoziţie codul sursă, nepermiţând nici modificări asupra lui (vă amintiţi exemplul maşinii cu capota sudată?).
Avantaje ale folosirii software-ului open source
- libertăţile menţionate anterior
- foarte multe programe open source sunt gratuite
- actualizările şi remedierea erorilor vin mai repede decât în cazul software-ului proprietar, datorită colaborării comunităţii.
Istoricul open source
Este important să ştim de unde vine magia open source. În anii '50, software-ul şi hardware-ul veneau „la pachet”, împreună. În anii '60, acest lucru s-a schimbat, deoarece Departamentul de Justiţie din Statele Unite a considerat că reprezenta o atitudine monopolistă. În 1983, Richard Stallman a lansat proiectul GNU, care a fost începutul mişcării open source şi a software-ului liber. Apoi, în 1989, a fost lansată prima GPL (GNU General Public License).
Această mică pastilă de istorie este minimul pe care orice utilizator de calculator (nu mai vorbesc de programatori) ar trebui să-l cunoască! În special înţelegerea licenţei open source căci trebuie să ştim ce drepturi au oamenii care utilizează software-ul nostru.
Statistici amuzante
90% din companiile prezente în topul Fortune 500 folosesc software open source.
Administraţiile din toate cele 50 de state americane folosesc software open source.
76% dintre dezvoltatorii de azi folosesc instrumente open source.
Pentru studenţi
Cei care învaţă acum programare trebuie să ştie despre open source, astfel încât să fie bine pregătiţi atunci când vor căuta un loc de muncă în domeniu. Învăţând open source, un student învaţă să scrie cod de la alţii, lucrând şi colaborând cu o echipă virtuală. Lucrând la un proiect open source, studenţii învaţă cum să înveţe şi, deoarece nimeni nu este pus acolo să-l ţină şi să-l tragă de mânecă, trebuie să înveţe totul de unul singur. Acesta este modul în care cineva învaţă să rezolve o anumită problemă, punând întrebări inteligente şi citind documentaţie. Astfel, studenţii ajung să lucreze la cod real, modificând acest cod, colaborând şi discutând despre ideile bune sau rele; ei ştiu că ceea ce fac ei sub licenţă open source este cod real, utilizat de oameni reali, şi nu simulări în sala de curs.
Contribuirea la un proiect
Cine este în căutarea unui proiect, să arunce o privire la proiectele Humanitarian Free and Open Source (HFOSS), deoarece acestea atrag un public divers. Pentru un profesor, munca la un proiect reprezintă o modalitate foarte bună de a obţine abilitatea de a preda altceva studenţilor, pentru că niciodată, în lumea reală, nimeni nu lucrează singur; mai mult, probabilitatea de a scrie propriul cod este foarte mică. De obicei, programatorii sunt adăugaţi la un proiect existent şi ei trebuie să ştie deja cum să comunice cu ceilalţi dezvoltatori.
Lucrul la un proiect open source permite, de asemenea, realizarea conexiunilor cu colaboratorii din industria de profil; este un atu imens pentru cei care vor intra în jungla căutării unui job, fiind o modalitate pentru ei de a demonstra ceea ce ştiu.
Vestul sălbatic al open source
Cum putem diferenţia software-ul open source de cel proprietar? Deja am vorbit despre licenţe, dar sunt alte lucruri care trebuie ştiute, cum ar fi principiile open source şi comunitatea open source.
Principiile open source:
- schimb liber: comunicarea este transparentă;
- participarea: când suntem deschişi şi liberi să colaborăm, vom realiza şi ceva creativ;
- prototipuri rapide: pot duce la eşecuri la fel de rapide, dar în final se ajunge la soluţii mai bune;
- meritocraţie: cele mai bune idei câştigă;
- comunitate: împreună se va realiza mai mult.
Dar toate sunt chiar aşa de bune precum par? Ei bine, sunt şi câteva capcane.
În primul rând, dacă eşti profesor, eşti folosit pentru că se presupune că ştii totul despre ceea ce predai. Proiectele open source sunt înfricoşătoare, căci nimeni nu ajunge să le cunoască în totalitate şi în amănunţime, din interior şi din exterior. Este o oportunitate pentru profesori să-şi înveţe studenţii că e în regulă să nu cunoşti totul, dar trebuie să ştii cum să pui întrebările corecte şi să înveţi cum să înveţi. Acesta este modul potrivit de dezvoltare: chiar dacă liniile de cod scrise de învăţăcei nu sunt acceptate, ei tot vor creşte profesional. Făcând astfel, un student poate învăţa orice despre orice.
În al doilea rând, contribuţia la open source te poate face să te simţi ca un străin într-o ţară străină. De cele mai multe ori, nu există un singur conducător sau o singură persoană responsabilă pentru întregul proiect, ceea ce poate fi un pic frustrant. Nu este un mediu care poate fi controlat. Cel care contribuie la open source este un oaspete. Nu va fi ca atunci când intri într-o sală de clasă şi spui: aceasta este ceea ce vom studia astăzi. De asemenea, ocazional, cineva din cadrul comunităţii open source poate deveni agresiv – toţi suntem oameni şi supuşi greşelilor. Datorită libertăţii şi transparenţei apar opiniile diferite, iar aceastea nu sunt întotdeauna politicoase. Dacă ar exista un departament de Resurse Umane în cadrul unei comunităţi open source, aceste lucruri nu s-ar mai putea întâmpla – cel puţin nu foarte des. Dar nu aşa funcţionează comunitatea open source. Este la fel ca Internetul – comunitatea este deschisă şi oricine poate spune orice. Partea frumoasă este că un profesor îşi poate învăţa studenţii cum să se descurce în astfel de cazuri, spunându-le care este modul corect de abordare în diferite situaţii.
„Este minunat cât de înfricoşătoare pot deveni, uneori, lucrurile”, spun bătrânii din open source.
[…] se vor împăca cele două filosofii software? Cum vor putea fi îmbinate filosofia open source și software-ul proprietar, fără de care anumite componente nu funcționează? Rămâne să vedem […]