ABONAMENTE VIDEO REDACȚIA
RO
EN
×
▼ LISTĂ EDIȚII ▼
Numărul 24
Abonament PDF

Avantajele programelor libere

Attila-Mihaly Balazs
Software Panther @ Synapp.io
DIVERSE

Folosirea programelor libere (Free/Libre Software) conferă multe avantaje persoanelor și organizațiilor care fac acest lucru, mai ales dacă acești utilizatori sunt tehnici . Acest articol prezintă aceste avantaje și va încerca să alunge câteva dintre miturile format în jurul programelor libere.

Ce este un program liber?

Un program liber este un program (software) care respectă libertățile tale1 (ale utilizatorului). În engleză de obicei se folosește formula "Free/Libre" pentru a sublinia faptul că nu vorbim despre preț ci despre drepturile utilizatorului. Din fericire în română avem cuvinte distincte pentru cele două concepte. Programele libere pot fi vândute comercial - cea ce o să menționăm și mai încolo în articol.

Există patru libertăți esențiale pentru programe, așa cum ele sunt definite de către Free Software Foundation. În ceea ce urmează vom analiza fiecare dintre libertăți și vom vedea de ce sunt ele importante pentru noi ca oameni tehnici.

Libertatea 0

Libertatea de rula programul, în orice scop. Programele libere nu judecă. Programul este doar o unealtă și modul de utilizare este decizia / responsabilitatea persoanei care o folosește. Comparativ, programele proprietare (ne-libere) limitează frecvent cum / când / unde pot fi rulate și nu există o modalitate ușoară de a obține o licență care să permită folosirea lor în orice scop.

Restricțiile care apar frecvent în licențele programelor proprietare includ:

  • restricționarea numărului de instanțe ale programului care pot rula la un moment dat;
  • numărul de echipamente pe care se poate instala programul (chiar dacă acestea nu sunt folosite în același timp);
  • de câte ori aveți posibilitatea să reinstalați programul (după reinstalarea sistemului de operare de exemplu);
  • restricționarea numărului de CPU / cantității de memorie pe care le poate folosi programul;
  • interzicerea rulării a testelor de performanță.

Aceste restricții nu au motive tehnice întemeiate și există doar ca o practică monopolistă care extrage cât mai mulți bani de la utilizatori. Acest lucru distorsionează peisajul de piață. De exemplu: cum poți judeca calitatea unui program de bază de date dacă nimeni nu are voie să publice teste de performanță?

Evident nu există astfel de restricții în cazul programelor libere.

Libertatea 1

Libertatea de a studia modul în care funcționează programul, și libertatea de a schimba ca să funcționeze cum dorește utilizatorul. Accesul la codul sursă este o precondiție pentru aceasta. Codul sursă este "sursa supremă a adevărului" în cazul întrebărilor despre programe. Având codul sursă înseamnă că putem răspunde cu ușurință cele mai frecvente întrebări care apar în timpul utilizării sau integrării programelor:

  • este programul capabil să facă X?
  • cum pot convinge programul ca să facă X?
  • de ce nu funcționează pașii pe care le fac?
  • Dacă contrastăm cu programele proprietare, opțiunile oferite sunt slabe:
  • putem citi documentația - dar documentațiile au diferite niveluri de corectitudine și prospețime. Codul sursă este documentația adevărată.
  • putem să ne folosim de contractul de suport (dacă avem așa ceva). Pe lângă faptul că este costisitor, există un timp minim de răspuns de o zi. Codul sursă este acolo când ai nevoie de el
  • putem studia programul final (prin reverse engineering) - dacă avem instrumentele și expertiza necesară. De asemenea, acest lucru poate dura un timp lung și este potențial ilegal în multe jurisdicții.

Mențiune: unii furnizori de programe proprietare oferă acces la (o parte din) codul lor sursă, de obicei sub condiții foarte stricte. Aceasta lucru satisface doar una dintre cerințele pentru un program liber (și probabil și acela doar parțial - furnizorii rareori dau acces la codul sursă complet și instrumentele necesare pentru a recompila sistemul). Aceste programe sunt în continuare ne-libere/proprietare.

Libertatea 2

Libertatea de a distribui copii ca să ajuți pe vecinul tău. Schimbul de programe este benefic pentru toată lumea pe termen lung:

  • mai mulți oameni învață cum să folosească programul (devenind astfel mai valoroși ca angajați).
  • barierele sunt îndepărtate din calea inovatorilor.

Această prevedere garantează că programele (libere) nu formează un cartel monopolist unde trebuie să plătești mereu taxe (și probabil, cu cât afacerea este mai de succes cu atât vor cere din ce în ce mai mulți bani). O indicație clară a faptului că folosirea programelor proprietare nu este sustenabilă pe termen lung este faptul că Internetul rulează pe programe libere.

Libertatea 3

Libertatea de a distribui copii ale versiunilor modificate de alții. Făcând acest lucru întreaga comunitate poate să beneficieze de modificările tale (la fel cum beneficiezi și tu de modificările altora). Accesul la codul sursă este o precondiție pentru aceasta.

Această libertate asigură că alții pot interveni atunci când există o oportunitate de piață. În cazul în care un program proprietar nu mai este dezvoltat, nu poți face altceva decât să-l abandonezi (sau să-l utilizezi în continuare și să speri că nu se strică). În cazul în care dezvoltatorul original al unui program liber nu mai poate sau nu vrea să continue dezvoltarea, pot interveni alții pentru a oferi sprijin în continuare. Sau chiar mai multe persoane / organizații pot concura în a oferi servicii de asistență și/sau de dezvoltare.

În contrast: în cazul programelor proprietare producătorii încearcă să descurajeze pe alții de la acordarea de sprijin.

Avantaje

După ce am caracterizat cele patru libertăți care definesc programele libere, să discutăm puțin despre avantajele pe care le oferă.

Transparența

Programele libere sunt transparente. Putem verifica fiecare afirmație care se face despre ei. Comparativ, în cazul programelor proprietare suntem nevoiți să ne bazăm pe materialele de marketing și alte surse create sau aprobate de către furnizor.

Programele libere sunt de asemenea transparente cu privire la planurile de viitor, creându-se posibilitatea de a judeca cu ușurință nivelul de activitate și viteza cu care problemele sunt rezolvate sau trăsături noi sunt implementate. În cazul în care proiectul nu mai este menținut, vom putea vedea ușor acest lucru și avem o multitudine de opțiuni pentru a rezolva problema. Comparați acest lucru cu programe proprietare unde producătorul poate elimina un produs din motive (aparent) arbitrare, în mod brusc și fără alte opțiuni decât migrarea pe alte platforme.

Nivel potrivit de sprijin

Cu programele libere există multe opțiuni pentru sprijin (support) în funcție de suma pe care vrem să investim. Posibilitățile obișnuite pentru a obține sprijin pentru programe libere sunt:

  • căutarea pe Internet - programele libere tind să aibă utilizatori mai tehnici care documentează soluțiile pentru problemele întâlnite frecvent. Există o șansă mult mai mare de a găsi soluția prin căutarea pe Internet atunci când se folosesc programe libere.
  • solicitările de ajutor pe listele de discuții / forumuri - programele libere sunt creații ale unor oameni dedicați și entuziaști care vă pot ajuta mult mai bine decât sprijinul elementar (first level support) oferit de furnizorii de software. Ei fac acest lucru în mod gratuit, dar timpul de răspuns poate să varieze.
  • puteți angaja unul din dezvoltatorii în mod part-time sau full-time - în cazul în care există mai mulți dezvoltatori, puteți să alegeți pe cel mai convenabil.
  • puteți angaja o companie care oferă suport pentru produs. Din nou, licența permite concurență în acest spațiu, astfel că în cazul proiectelor populare vor exista mai multe opțiuni.

Ușor de găsit oameni cu cunoștințe despre proiectul respectiv

Pentru că dezvoltarea se face în public, putem găsi cu ușurință contribuitorii care ar putea să fie interesați de a lucra pentru noi. De asemenea, putem judeca competența lor direct (pe baza contribuțiilor la proiect / comunitate), fără să folosim proxy-uri nesigure, cum ar fi certificările.

Este un efort cu adevărat capitalist

Piețele produc cele mai bune rezultate când informația este disponibilă în mod egal tuturor participanților. Programele libere creează un astfel de mediu. Cuplat cu costul aproape zero de a transporta informația în ziua de azi, avem o evoluție foarte rapidă a proiectelor libere.

Poate să ne scape de întreținere

Este posibil că veți găsi un program (liber) care are 99% din ceea ce ai nevoie, dar cel 1% final lipsește. Fiind un program liber, putem lua codul sursă și să adăugăm acel 1%. Ba chiar mai mult, dacă dai contribuțiile înapoi la proiectul original, ei le vor încorpora și le vor menține. Acest lucru înseamnă că, dacă există schimbări majore (cum ar fi schimbările de API în versiunea 2 al unor biblioteci de exemplu), nu trebuie să-ți petreci timpul cu recrearea modificărilor - probabil altcineva din comunitatea se va ocupa de acest lucru.

Managementul licențelor

Menținerea la curent a licențelor software este greu de făcut. Eșecul în a face acest lucru poate duce la pierdere de productivitate: de ce nu pot folosi software-ul? Ah, Ion îl folosește și avem doar o singură licență! Dar Ion este într-o pauză de cafea și trebuie să-l aștept! De asemenea, poate cauza probleme juridice:sunteți sigur că aveți o licență valabilă pentru fiecare copie a programelor de pe cele 100+ dispozitive din compania dumneavoastră?

Programele libere în schimb înseamnă "termeni de licențiere simpli și siguranța că ești în conformitate cu ele".

Comunitate

Folosind și contribuind la programele libere, devii parte din comunitate. Interacționezi cu oameni interesanți. Colaborezi cu persoane din toată lumea. Ai posibilitatea de a învăța de la cei mai buni.

Alte informații

După ce am prezentat avantajele programelor libere, mai doresc să menționez câteva informații mai puțin cunoscute despre ele:

Nu te obligă să dai codul sursă tuturor

Programul liber cere numai să oferi opțiunea de a accesa codul sursă utilizatorilor (într-un format care poate fi utilizat pentru a reproduce produsul final). Acest lucru înseamnă că nu ești obligat să dai codul sursă oricărei persoane care cere, doar pentru utilizatorilor programului.

De asemenea:

  • dacă utilizați cod sub licența LGPL și este inclus într-un sistem mai mare (de exemplu, utilizați o bibliotecă licențiată sub LGPL), trebuie doar să furnizați codul sursă pentru modificările efectuate la bibliotecă, nu de la întreg sistem.
  • dacă utilizați cod sub licența GPL, dar acesta nu este vital pentru funcționarea sistemului (este un plugin de exemplu), trebuie doar oferit sursa pentru modificările efectuate la ea, nu de la întregul sistem.
  • dacă utilizați cod sub licența GPL pentru a crea produsul dar partea GPL nu se livrează sub formă binară cu produsul final (de exemplu utilizați GCC pentru a compila codul sursă), nu este nevoie să furnizați codul sursă pentru produsul complet.
  • dacă utilizați cod sub licența GPL intern și expuneți rezultatul prin rețea (aveți un produs SaaS de exemplu), nu este nevoie să furnizați codul sursă. Trebuie doar să oferiți codul sursă persoanelor care execută binarul, care, în acest caz, este chiar compania.

Deși nu este nevoie să furnizați codul sursă în niciunul dintre cazurile de mai sus, totuși este o idee bună de a face acest lucru. Cele mai multe companii nu sunt în afacerea de "software" - folosesc software-ul doar pentru a accelera lucrurile (de exemplu: valoarea principală a unui broker financiar nu este platforma software, ci mai degrabă conexiunile pe care le are cu mulți jucători de pe piață). Furnizarea codului sursă clienților companiei în astfel de cazuri le asigură că nivelul de risc al este redus și ei vor veni în continuare la companie, deoarece l-au ales în primul rând datorită conexiunilor.

Programele libere pot fi vândute

"Free" înseamnă liber, nu gratuit în acest context. Nimic în licențele programelor libere nu vă împiedică să vindeți produsul final.

În aceeaşi ediţie ... (24)

▼ TOATE ARTICOLELE ▼

Sponsori

  • comply advantage
  • ntt data
  • 3PillarGlobal
  • Betfair
  • Telenav
  • Accenture
  • Siemens
  • Bosch
  • FlowTraders
  • MHP
  • Connatix
  • UIPatj
  • MetroSystems
  • Globant
  • Colors in projects