Dark Mode

Ves al contingut

Programari de codi obert

De la Viquipedia, l'enciclopedia lliure
El logo de l'Open Source I nitiative.

El programari de codi obert (en angles open source software o OSS) es el programari el codi font i altres drets que normalment son exclusius per als que posseeixen els drets d'autor, son publicats sota una llicencia de codi obert o formen part del domini public. En les llicencies compatibles amb l'Open Source Definition el propietari dels drets d'autor permet als usuaris utilitzar, canviar i redistribuir el programari, a qualsevol, per a qualsevol proposit, sigui en la seva forma modificada o en la seva forma original.[1] Sovint, el programari de codi obert es desenvolupa de manera col*laborativa i els resultats es publiquen a internet.[2] El programari es el millor exemple del desenvolupament del codi obert i es compara amb l'anomenat contingut generat pels usuaris.[3] L'expressio programari de codi obert va sorgir a partir d'una campanya de marqueting per al programari lliure.[4] Un informe del Standish Group afirma que la incorporacio dels models de programari de codi obert ha resultat en estalvis d'aproximadament 60 000 milions de dolars per any als consumidors.[5]

El moviment del programari lliure va sorgir el 1983. El 1998, un grup d'individus van defensar la idea de canviar l'expressio free software (programari lliure) per open source software (programari de codi obert), a causa de l'ambiguitat del primer (en angles, free significa tant gratis com lliure) i a l'atractiu del segon respecte a les empreses. Els desenvolupadors de programari poden optar per publicar el seu treball sota una llicencia de codi obert, de manera que qualsevol pugui beneficiar-se'n. En general, aquest programari permet a les persones crear modificacions de programari, compatibilitzar-lo amb altres sistemes operatius o arquitectures de maquinari, compartir-lo amb altres persones i comercialitzar-lo.

L'Open Source Definition introdueix una filosofia pel que fa al codi obert, i a mes defineix els termes d'us, modificacio i redistribucio del programari de codi obert. Les llicencies de programari atorguen als usuaris drets que d'una altra manera estarien reservats, per la llei de drets d'autor, als propietaris dels drets d'autor del programari. Hi ha diverses llicencies de programari de codi obert compatibles amb l'Open Source Definition. La mes popular i destacada es la GNU General Public License (GPL). Si be la distribucio de codi obert permet que el codi font d'un producte sigui accessible al public, les llicencies de codi obert possibiliten als autors acomodar aquest acces a gust.[6]

Desenvolupament de programari de codi obert

[modifica]

Model de desenvolupament

[modifica]

En l'assaig de 1997 La catedral i el basar,[7] Eric S. Raymond un propulsor del codi obert suggereix un model per desenvolupar OSS conegut com el model 'basar'. Raymond compara el desenvolupament de programari mitjancant metodologies tradicionals amb la construccio d'una catedral, "curosament elaborada per artesans individuals o petits grups de mags que treballen en un esplendid aillament".[7] Suggereix que tot el programari s'hauria de desenvolupar utilitzant l'estil basar, que descriu com "un gran basar balbucejant de diferents agendes i enfocaments".[7]

En el model tradicional de desenvolupament, que ell va denominar model de catedral, el desenvolupament te lloc de forma centralitzada. Les funcions estan clarament definides. Els rols inclouen persones dedicades al disseny (els arquitectes), persones responsables de la gestio del projecte i persones responsables de la implementacio. L'enginyeria de programari tradicional segueix el model de catedral.

El model basar, pero, es diferent. En aquest model, els rols no estan clarament definits. Gregorio Robles[8] suggereix que el programari desenvolupat utilitzant el model basar hauria de mostrar els patrons seguents:

Els usuaris han de ser tractats com a co-desenvolupadors
Els usuaris son tractats com a co-desenvolupadors, per la qual cosa haurien de tenir acces al codi font del programari. A mes, s'anima els usuaris a enviar addicions al programari, correccions del codi del programari, informe d'errors, documentacio, etc. Tenir mes co-desenvolupadors augmenta la velocitat a que evoluciona el programari. La llei de Linus afirma: "Amb suficients ulls tots els bugs son superficials". Aixo vol dir que si molts usuaris veuen el codi font, acabaran trobant tots els errors i suggerint com solucionar-los. Tingueu en compte que alguns usuaris tenen coneixements avancats de programacio i, a mes, la maquina de cada usuari proporciona un entorn de proves addicional. Aquest nou entorn de proves ofereix la possibilitat de trobar i corregir una nova fallada.
Llancaments primerencs
La primera versio del programa s'ha de publicar com mes aviat millor per augmentar les possibilitats de trobar aviat col*laboradors.
Integracio frequent
Els canvis al codi han d'integrar-se (fusionar-se en una base de codi compartida) tan sovint com sigui possible per evitar la sobrecarrega de corregir un gran nombre d'errors al final del cicle de vida del projecte. Alguns projectes de codi obert tenen compilacions nocturnes en que la integracio es realitza automaticament diariament.
Diverses versions
Hi ha d'haver almenys dues versions del programari. Hi hauria d'haver una versio amb mes errors i mes caracteristiques i una versio mes estable amb menys caracteristiques. La versio amb mes errors (tambe anomenada versio de desenvolupament) es per als usuaris que volen utilitzar immediatament les ultimes funcions i estan disposats a acceptar el risc de fer servir un codi que encara no s'ha provat a fons. Els usuaris poden actuar com a codesenvolupadors, informant d'errors i proporcionant correccions.
Alta modularitzacio
L'estructura general del programari ha de ser modular i permetre el desenvolupament paral*lel de components independents.
Estructura dinamica de presa de decisions
Es necessaria una estructura de presa de decisions, formal o informal, que prengui decisions estrategiques en funcio dels requisits canviants dels usuaris i altres factors. Compareu-vos amb programacio extrema.

Tot i aixo, les dades suggereixen que l'OSS no es tan democratic com suggereix el model de basar. Una analisi de cinc mil milions de bytes de codi lliure feta per 31.999 desenvolupadors mostra que el 74% del codi va ser escrit pel 10% dels autors mes actius. El nombre mitja d'autors implicats en un projecte va ser de 5,1, amb una mitjana de 2,[9]

Avantatges

[modifica]

El programari de codi obert sol ser mes facil d'obtenir que el programari propietari, cosa que sovint es tradueix en un major us. A mes, la disponibilitat d'una implementacio de codi obert d'un estandard pot augmentar l'adopcio d'aquest estandard.[10] Tambe ha ajudat a fidelitzar els desenvolupadors, ja que aquests se senten capacitats i tenen un sentit de propietat del producte final.[11]

A mes, l'OSS requereix menys costos de marqueting i serveis logistics. Es una bona eina per promocionar la imatge d'una empresa, inclosos els seus productes comercials.[12] L'enfocament de desenvolupament OSS ha ajudat a produir programari fiable i d'alta qualitat de forma rapida i economica.[13]

El desenvolupament de codi obert ofereix la possibilitat d'accelerar la innovacio i la creacio d'innovacio i valor social. A Franca, per exemple, una politica que incentivava el govern a afavorir el programari lliure de codi obert va augmentar gairebe 600.000 contribucions d'OSS per any, generant valor social en augmentar la quantitat i qualitat del programari de codi obert. Aquesta politica tambe va conduir a un augment estimat de fins al 18% de les noves empreses tecnologiques i a un augment del 14% en el nombre de persones ocupades al sector de TI.[14]

Es diu que es mes fiable perque acostuma a comptar amb milers de programadors independents que proven i corregeixen els errors del programari. El codi obert no depen de l'empresa o autor que el va crear originalment. Fins i tot si l'empresa fracassa, el codi continua existint i es desenvolupat pels seus usuaris. A mes, utilitza estandards oberts accessibles a tothom, per la qual cosa no te el problema de la incompatibilitat de formats que pot existir al programari propietari.

Es flexible perque els sistemes modulars permeten als programadors construir interficies personalitzades o afegir noves capacitats, i es innovador perque els programes de codi obert son producte de la col*laboracio entre un gran nombre de programadors diferents. La barreja de perspectives divergents, objectius corporatius i metes personals accelera la innovacio.[15]

A mes, el programari lliure es pot desenvolupar segons requisits purament tecnics. No cal pensar en la pressio comercial, que sovint degrada la qualitat del programari. Les pressions comercials fan que els desenvolupadors de programari tradicionals parin mes atencio als requisits dels clients que als de seguretat, ja que aquestes caracteristiques son en certa manera invisibles per al client.[16]

Eines de desenvolupament

[modifica]

En el desenvolupament d'OSS, s'utilitzen eines per recolzar el desenvolupament del producte i el proces de desenvolupament propi.[17]

Els sistemes de control de revisio com a Concurrent Versions System (CVS) i mes tard Subversion (SVN) i Git son exemples d'eines, sovint elles mateixes de codi obert, que ajuden a gestionar els fitxers de codi font i els canvis en aquests fitxers per a un projecte de programari.[18] Els projectes solen emmagatzemar-se a "repositoris" que s'allotgen i publiquen a serveis d'allotjament de codi font com el Launchpad, GitHub, GitLab i SourceForge.[19]

Els projectes de codi obert sovint s'organitzen de manera informal amb "poc suport o modelatge de processos formalitzats", pero sovint s'utilitzen utilitats com els gestors d'incidencies per organitzar el desenvolupament de programari de codi obert.[17] Entre els gestors d'incidencies mes usats es troben Bugzilla i Redmine.[20]

Les eines com llistes de correu i IRC proporcionen mitjans de coordinacio entre desenvolupadors.[17] Els llocs centralitzats d'allotjament de codi tambe tenen caracteristiques socials que permeten als desenvolupadors comunicar-se.[19]

Organitzacions

[modifica]

Algunes de les "organitzacions mes prominents" involucrades en el desenvolupament d'OSS inclouen la Apache Software Foundation, creadors del servidor web Apache; la Linux Foundation, una organitzacio sense anim de lucre que va emprar a Linus Torvalds, el creador del kernel Linux; la Eclipse Foundation, seu de la plataforma de desenvolupament de programari Eclipse; el Projecte Debian, creadors de la influent distribucio Debian GNU/Linux; la Fundacio Mozilla, seu del navegador web Firefox; i OW2, comunitat d'origen europeu que desenvolupa middleware de codi obert. Les noves organitzacions tendeixen a tenir un model de governanca mes sofisticat i la seva composicio sol estar formada per membres amb personalitat juridica.[21]

L'Open Source Software Institute es una organitzacio sense anim de lucre (501 (c)(6)) fundada el 2001 que promou el desenvolupament i la implantacio de solucions de programari de codi obert a les agencies governamentals federals, estatals i locals dels Estats Units. Els esforcos d'OSSI s'han centrat a promoure l'adopcio de programes i politiques de programari de codi obert dins del govern federal i les comunitats de defensa i seguretat nacional.[22]

Open Source for America es un grup creat per conscienciar el Govern Federal dels Estats Units sobre els beneficis del programari de codi obert. Els objectius declarats son fomentar l'us de programari de codi obert per part del Govern, la participacio en projectes de programari de codi obert i la incorporacio de la dinamica de la comunitat de codi obert per augmentar la transparencia governamental.[23]

Mil-OSS es un grup dedicat a l'avenc de l'us i la creacio d'OSS a l'exercit.[24]

Referencies

[modifica]
  1. | St. Laurent, Andrew M.. Understanding Open Source and Free Software Licensing. O'Reilly Media, 2008, p. 4. ISBN 9780596553951.
  2. | Levine, Sheen S.; Prietula, Michael J. <<Open Collaboration for Innovation: Principles and Performance>>. Organization Science, 25, 5, 30-12-2013, pag. 1414-1433. DOI: 10.1287/orsc.2013.0872. ISSN: 1047-7039.
  3. | William T. Verts. <<Open source software>>. World Book Online Reference Center, 13-01-2008. Arxivat de l'original el 1 de gener de 2011.
  4. | <<Frequently Asked Questions>>. Open Source Initiative. Arxivat de l'original el 23 d'abril de 2006. [Consulta: 8 setembre 2008].
  5. | Richard Rothwell. <<Creating wealth with free software>>. Free Software Magazine, 05-08-2008. Arxivat de l'original el 8 de setembre de 2008. [Consulta: 8 setembre 2008].
  6. | <<Movimiento del software libre - Proyecto GNU - Free Software Foundation>>. www.gnu.org. [Consulta: 9 abril 2021].
  7. 1 2 3 Raymond, Eric S. <<La catedral y el bazar>>, 11-09-2000. [Consulta: 19 setembre 2004].
  8. | Robles, Gregorio. <>. A: Robert A. Gehring, Bernd Lutterbeck. Open Source Jahrbuch 2004 (PDF). Berlin: Universitat Tecnica de Berlin, 2004.
  9. | Ghosh, R.A. <>. Maastricht: International Institute of Infonomics., 2002.
  10. | US Department of Defense. <<Open Source Software FAQ>>. Chief Information Officer. [Consulta: 22 juliol 2016].
  11. | Sharma, Srinarayan <<cin.ufpe.br/~in953/lectures/papers/ISJAFrameworkForCreatingHybrid-OpenSourceSoftwareCommunities.pdf A framework for creating hybrid-open source software communities>>. Information Systems Journal, vol. 12, 2002, pag. 7-25. DOI: 10.1046/j.1365-2575.2002.00116.x.
  12. | Landry, John <>. Harvard Business Review, 9-2000. DOI: 10.1225/F00503.
  13. | Reynolds, Carl <>. Journal of Medical Internet Research, vol. 13, 1, 2-2011, pag. e24. DOI: 10.2196/jmir.1521. PMC: 3221346. PMID: 21447469.
  14. | Nagle, Frank <<Politica tecnologica gubernamental, valor social y competitividad nacional>> (en angles). [Rochester, NY], 03-03-2019.
  15. | Plotkin, Hal <>. Harvard Management Update, 12-1998, pag. 8-9.
  16. | Payne, Christian <>. Information Systems Journal, vol. 12, 1, 2-2002, pag. 61-78. DOI: 10.1046/j.1365-2575.2002.00118.x.
  17. 1 2 3 Boldyreff, Cornelia; Lavery, Janet; Nutter, David; Rank, Stephen. <<Procesos y herramientas de desarrollo de codigo abierto>>. Flosshub. Arxivat de l'original el 2016-10-07. [Consulta: 22 juliol 2016].
  18. | Stansberry, Glen. <<smashingmagazine. com/2008/09/the-top-7-open-source-version-control-systems/ 7 Version Control Systems Reviewed - Smashing Magazine>>. Smashing Magazine, 18-09-2008. [Consulta: 22 juliol 2016].
  19. 1 2 Frantzell, Lennart. <<GitHub, Launchpad y BitBucket, como los actuales sistemas de control de versiones distribuidos estan impulsando la revolucion global del codigo abierto sin precedentes>>. IBM developerworks, 18-07-2016. [Consulta: 22 juliol 2016].
  20. | Baker, Jason. <<Las 4 mejores herramientas de seguimiento de incidencias de codigo abierto>>. opensource.com. [Consulta: 22 juliol 2016].
  21. | Francois Letellier (2008), Open Source Software: the Role of Nonprofits in Federating Business and Innovation Ecosystems, AFME 2008.
  22. | Open Source Software Institute. <<Home>>. Open Source Software Institute. [Consulta: 22 juliol 2016].
  23. | Hellekson, Gunnar. <<Home>>. Open Source for America. Arxivat de l'original el 1 diciembre 2015. [Consulta: 25 marc 2012].
  24. | de EntandoSrl (Entando ). <<Mil-OSS>>. [Consulta: 25 marc 2012].

Vegeu tambe

[modifica]