Introducció al programari lliure/Introducció

Salta a la navegació Salta a la cerca
"Qualquier ome que lo oyga, sy bien trobar supiere, puede más añadir e enmendar si quisiere. Ande de mano en mano: qualquier que lo pidiere. Como pelota las dueñas, tómelo quien pudiere.
Pues es de 'Buen Amor', prestadlo de buen grado: no le neguéis su nombre ni le deis rechazado, no le deis por dinero vendido nin alquilado; porque non tiene valor nin graçia el 'Buen Amor' conprado."
Juan Ruiz, Arcipreste de Hita. Libro de Buen Amor (segle XIV)


La primera versió d'aquests apunts va ser escrita per Jesús M. González Barahona, Joaquín Seoane Pascual i Gregorio Robles entre els mesos d'abril i setembre de 2003. Encara que feia temps que parlàvem de preparar un material com aquest per a l'assignatura Programari lliure que Joaquín i Jesús impartim en els programes de doctorat dels nostres respectius departaments, va ser la iniciativa de la Universitat Oberta de Catalunya (UOC) d'encargar-nos un material per a l'assignatura d'introducció al seu màster de programari lliure el que ens va decidir finalment posar-hi fil a l'agulla. En aquest encàrrec va ser fonamental la tasca de Jordi Mas, coordinador acadèmic del màster, que no solament ens va proposar per a aquest treball i ens va posar en contacte amb la UOC, sinó que ens va acompanyar en les relacions amb ells durant tota la durada del projecte.

Poc després que es lliurés la primera edició, els autors van començar a retocar el material, com a part d'un procés que no va deixar de funcionar, encara que amb molts diferents nivells d'activitat, fins a l'acabament d'aquesta segona edició, el maig de 2007. Durant aquest temps, la primera edició ha estat utilitzada àmpliament en el màster de Programari lliure de la UOC i en diverses assignatures de postgrau més, a Espanya i Amèrica. L'experiència de la UOC ha estat seguida amb especial interès per Gregorio Robles, que hi ha participat, i ha obtingut d'aquesta forma una realimentació que ha estat de gran valor per a la millora dels continguts. Tots tres (Joaquín, Jesús, i des de 2006, Gregorio) hem continuat també amb l'assignatura de doctorat sobre programari a la UPM i la URJC, aprofitant també per a provar-hi el material.

De nou, la UOC ha estat el catalitzador d'aquesta segona edició, en fer-nos un encàrrec que hem trigat massa a acabar. La tasca de Jordi Mas i de David Megías (de la UOC) ha estat fonamental, en donar el suport crític imprescindible per tirar endavant aquesta nova edició. També ha estat fonamental el treball de José Ignacio Fernández Villamor i Boni García Gutiérrez, alumnes de Joaquín Seoane, que han col·laborat en la revisió de materials per a aquesta segona edició.

Materials previs[modifica]

Alguns textos d'aquests apunts s'han basat en materials previs, normalment dels mateixos autors, en alguns casos de terceres persones (utilitzats amb permís, quan no han estat completament reelaborats). Entre aquests podem esmentar els següents (a risc d'oblidar-ne algun d'important):

  • Hi ha alguns fragments (sobretot en els capítols d'història i economia) inspirats en el document "Free Software / Open Source: Information Society Opportunities for Europe?" [132], que Jesús González Barahona va coeditar per a la Comissió Europea. Tanmateix, els fragments en qüestió han estat ampliats, retocats i actualitzats, tant que en molts casos poden ser difícils de reconèixer.
  • L'apartat sobre els monopolis i el programari lliure (secció 5.4) s'ha reelaborat sobre l'article "Software libre, monopolios y otras yerbas" [84], de Jesús M. González Barahona.
  • Els apartats sobre iniciatives legislatives i iniciatives d'administracions públiques en relació amb el programari lliure estan en part basats en "Iniciativa de las administraciones públicas en relació Software Free" [103] (gràcies a Pedro de las Heras per haver-nos permès utilitzar aquest material, del qual és coautor).
  • Part de l'apartat sobre els motius per a usar programari lliure en les administracions públiques (apartat 6.2) està basat en l'article [85], de Jesús M. González Barahona.
  • La traducció de la Llicència de Documentació Lliure de GNU és una actualització adaptada de la realitzada per Igor Támara i Pablo Reyes per a la versió 1.1, als quals agraïm haver-la realitzat i el seu permís per modificar-la.
  • El capítol d'enginyeria del programari lliure és una adaptació d'un article sobre l'estat de l'art de l'enginyeria del programari aplicada al programari lliure de Jesús M. González Barahona i Gregorio Robles per a la revista Novática.
  • Al capítol d'estudis de casos, la part dedicada al desenvolupament de Linux es basa en una presentació que va realitzar Juan-Mariano de Goyeneche en el curs de doctorat "Programas Libres" de la Universitat Politècnica de Madrid durant el curs 2002-03.
  • La part històrica de l'estudi detallat de GNOME s'ha tret de la introducció històrica inclosa al llibre sobre "Desenvolupament d'aplicacions en GNOME2" elaborat per GNOME Hispano i realitzada per un dels autors d'aquest llibre.
  • El cas d'estudi de FreeBSD es basa en part en la ponència presentada per Jesús Rodríguez en el III Congrés HispaLinux celebrat a Madrid l'any 2000.
  • Els casos d'estudi de Debian i Red Hat parteixen del treball previ de González Barahona et al., que han plasmat en diversos articles els resultats de l'anàlisi quantitativa d'aquestes dues distribucions.
  • Diversos materials, sobretot actualitzacions i nou material en el capítol de casos d'estudi, van ser realitzats per José Ignacio Fernández Villamor i Boni García Gutiérrez a començaments de 2007 en una branca específica per a modificacions realitzades en el marc de l'edició d'aquell any de l'assignatura de doctorat de Joaquín Seoane en l'UPM. Gran part d'aquests materials van ser inclosos a temps per a la segona edició.

Introducció[modifica]

"If you have an apple and I have an apple and we exchange apples, then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these idees, then each of us will have two idees."
"Si tu tens una poma i jo tinc una poma i les intercanviem, seguirem tenint una poma cada un. Però si tu tens una idea i jo tinc una idea i les intercanviem, cada un de nosaltres tindrà dues idees. "
Atribuït a Bernard Shaw


Què és el programari lliure? Què és i quines implicacions té la llicència d'un programa lliure? Com s'està desenvolupant el programari lliure? Com es financen els projectes de programari lliure i quins models de negoci que s'hi relacionen s'estan experimentant? Què motiva els desenvolupadors, especialment els que són voluntaris, a involucrar-se en projectes de programari lliure? Com són aquests desenvolupadors? Com es coordinen en els seus projectes i com és el programari que produeixen? En resum, quin és el panorama general del programari lliure? Aquest és el tipus de preguntes que tractarem de respondre en aquest text. Perquè encara que el programari lliure és cada vegada més present en els mitjans de comunicació i en les converses dels professionals de la informàtica, i encara que fins i tot comença a estar en boca dels ciutadans en general, encara és un desconegut per a molts. I els que el coneixen moltes vegades no en saben més que d'alguns dels seus aspectes, i en desconeixen completament d'altres.

Per començar, en aquest capítol presentarem els aspectes específics del programari lliure, centrant-nos fonamentalment a explicar les seves bases per als que s'aproximin al tema per primera vegada i a motivar la seva importància. Entre aquestes bases ens detindrem en la definició del terme (per saber de què parlarem) i en les conseqüències principals de l'ús (i de la mera existència) del programari lliure.

El concepte de llibertat de programari[modifica]

Citació

"If you have an apple and I have an apple and we exchange apples, then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these idees, then each of us will have two idees."


"Si tu tens una poma i jo tinc una poma i les intercanviem, seguirem tenint una poma cada un. Però si tu tens una idea i jo tinc una idea i les intercanviem, cada un de nosaltres tindrà dues idees. "


Atribuït a Bernard Shaw


Què és el programari lliure? Què és i quines implicacions té la llicència d'un programa lliure? Com s'està desenvolupant el programari lliure? Com es financen els projectes de programari lliure i quins models de negoci que s'hi relacionen s'estan experimentant? Què motiva els desenvolupadors, especialment els que són voluntaris, a involucrar-se en projectes de programari lliure? Com són aquests desenvolupadors? Com es coordinen en els seus projectes i com és el programari que produeixen? En resum, quin és el panorama general del programari lliure? Aquest és el tipus de preguntes que tractarem de respondre en aquest text. Perquè encara que el programari lliure és cada vegada més present en els mitjans de comunicació i en les converses dels professionals de la informàtica, i encara que fins i tot comença a estar en boca dels ciutadans en general, encara és un desconegut per a molts. I els que el coneixen moltes vegades no en saben més que d'alguns dels seus aspectes, i en desconeixen completament d'altres.

Per començar, en aquest capítol presentarem els aspectes específics del programari lliure, centrant-nos fonamentalment a explicar les seves bases per als que s'aproximin al tema per primera vegada i a motivar la seva importància. Entre aquestes bases ens detindrem en la definició del terme (per saber de què parlarem) i en les conseqüències principals de l'ús (i de la mera existència) del programari lliure.

Definició[modifica]

Així doncs, el terme programari lliure (o programes lliures), tal com va ser concebut per Richard Stallman en la seva definició (Free Software Foundation, "Free software definition" –http://www.gnu.org/philosophy/free-sw.html– [120]), fa referència a les llibertats que pot exercir qui el rep, concretament quatre:

  1. Llibertat per a executar el programa en qualsevol lloc, amb qualsevol propòsit i per sempre.
  2. Llibertat per a estudiar-lo i adaptar-lo a les nostres necessitats. Això exigeix l'accés al codi font.
  3. Llibertat de redistribució, de manera que se'ns permeti col·laborar amb veïns i amics.
  4. Llibertat per a millorar el programa i publicar-ne les millores. Això també exigeix el codi font.

El mecanisme que s'utilitza per garantir aquestes llibertats, d'acord amb la legalitat vigent, és la distribució mitjançant una llicència determinada, com veurem més endavant (capítol 3). En aquesta l'autor plasma el seu permís perquè el receptor del programa pugui exercir aquestes llibertats, i també les restriccions que pugui voler aplicar (com donar crèdit als autors originals en cas de redistribució). Perquè la llicència sigui considerada lliure, aquestes restriccions no poden anar en contra de les llibertats esmentades.

Exemple L'ambigüitat de free

El terme original en anglès per a programes lliures és free software. Tanmateix, free, a més de 'lliure', significa 'gratis', la qual cosa genera gran confusió. És per això que sovint en anglès s'agafen paraules manllevades espanyoles i es parla de libre software, en contraposició amb gratis software, igual com nosaltres prenem prestada la paraula software.


Així doncs, les definicions de programari lliure no fan cap referència al fet que pugui aconseguir-se gratuïtament: el programari lliure i el programari gratuït són coses ben diferents. Tanmateix, dit això, cal explicar també que a causa de la tercera llibertat, qualsevol pot redistribuir un programa sense demanar contraprestació econòmica ni permís, la qual cosa fa pràcticament impossible obtenir grans guanys simplement per la distribució de programari lliure: qualsevol que l'hagi obtingut pot redistribuir-lo al seu torn a preu més baix, o fins i tot gratis.

Exemple Nota

Malgrat que qualsevol pot comercialitzar un programa donat a qualsevol preu, i això fa que teòricament el preu de redistribució tendeixi cap al cost marginal de còpia, hi ha models de negoci basats precisament a vendre programari, perquè hi ha moltes circumstàncies en les quals el consumidor està disposat a pagar si rep certes contraprestacions, com per exemple una certa garantia, encara que sigui subjectiva, sobre el programari que adquireix o un valor afegit en forma de selecció, actualització i organització d'un conjunt de programes.


Des d'un punt de vista pràctic, hi ha diversos textos que defineixen més precisament quines condicions ha de complir una llicència per ser considerada de programari lliure. Entre ells, destaquen per la seva importància històrica la definició de programari lliure de la Free Software Foundation (http://www.gnu.org/philosophy/free-sw.html) [120], les directrius de Debian per a decidir si un programa és lliure (http://www.debian.org/social_contract.html#guidelines) [104] i la definició del terme open source per l'Open Source Initiative (http://www.opensource.org/docs/definition_plain.html) [215], molt similar a les anteriors.

Exemple Nota

Per exemple, les directrius de Debian entren en el detall de permetre que l'autor exigeixi que els codis font distribuïts no siguin modificats directament, sinó que els originals s'acompanyin de pedaços separats, i que els programes binaris es generin amb noms diferents de l'original. A més, exigeixen que les llicències no contaminin altres programes distribuïts en el mateix mitjà.

Termes relacionats[modifica]

Equivalent de programari lliure és el terme open source software ('programes de font oberta'), promogut per Eric Raymond i l'Open Source Initiative. Filosòficament, el terme és molt diferent, ja que fa èmfasi en la disponibilitat de codi font, no en la llibertat, però la seva definició és pràcticament la mateixa que la de Debian ("The open source definition", 1998 –http://www.opensource.org/docs/definition_plain.html–) [183]. Aquest nom és més políticament asèptic i recalca un aspecte tècnic que pot donar lloc a avantatges tècnics, com ara millors models de desenvolupament i negoci, major seguretat, etc. Durament criticat per Richard Stallman ("Why free programari is better than open source") [204] i la Free Software Foundation (http://www.fsf.org) [27], ha trobat molt més ressò en la literatura comercial i en les estratègies de les empreses que d'una manera o una altra donen suport al model.

Altres termes relacionats d'alguna manera amb el programari lliure són els següents:

Freeware


Són programes gratuïts. Normalment es distribueixen només en binari, i es poden obtenir sense cost. De vegades s'aconsegueix també permís de redistribució, però d'altres no, de manera que llavors només es poden obtenir del lloc "oficial" mantingut a aquest efecte. És habitual que es facin servir per a promocionar altres programes (típicament amb funcionalitat més completa) o serveis. Exemples d'aquest tipus de programes són Skype, Google Earth o Microsoft Messenger.

Shareware


No és ni tan sols programari gratis, sinó un mètode de distribució, ja que els programes, generalment sense codis font, es poden copiar lliurement, però no utilitzar continuadament sense pagar-los. L'exigència de pagament pot estar incentivada per funcionalitat limitada, missatges molestos o una simple apel·lació a la moral de l'usuari. A més, les estipulacions legals de la llicència podrien utilitzar-se en contra de l'infractor.

Charityware, careware


Es tracta generalment de shareware el pagament del qual es demana per a una organització caritativa patrocinada. En molts casos, el pagament no s'exigeix, però se sol·licita una contribució voluntària. Algun programari lliure, com Vim, sol·licita contribucions voluntàries d'aquest tipus (Brian Molenaar, "What is the context of charityware? ") [173].

Domini públic


L'autor renuncia absolutament a tots els seus drets en favor del comú, la qual cosa ha de quedar explícitament declarat en el programa, ja que si no es diu res, el programa és propietari i no es pot fer res amb aquest. En aquest cas, i si a més es proporcionen els codis font, el programa és lliure.

Copyleft


Es tracta d'un cas particular de programari lliure la llicència del qual obliga que les modificacions que es distribueixin siguin també lliures.

Propietari, tancat, no lliure


Es tracta de termes usats per a denominar el programari que no és lliure ni de font oberta.