El software de código abierto ( OSS ) es un software informático que se publica bajo una licencia en la que el titular de los derechos de autor otorga a los usuarios los derechos de usar, estudiar, cambiar y distribuir el software y su código fuente a cualquier persona y para cualquier propósito. [1] [2] El software de código abierto puede desarrollarse de manera pública y colaborativa. El software de código abierto es un ejemplo destacado de colaboración abierta , lo que significa que cualquier usuario capaz puede participar en línea en el desarrollo, lo que hace que el número de posibles contribuyentes sea indefinido. La capacidad de examinar el código facilita la confianza del público en el software. [3]
El desarrollo de software de código abierto puede aportar diversas perspectivas más allá de las de una sola empresa. Un informe de 2008 del Grupo Standish afirmó que la adopción de modelos de software de código abierto ha resultado en ahorros de alrededor de 60 mil millones de dólares por año para los consumidores. [4] [5]
El código fuente abierto se puede utilizar para estudiar y permite a los usuarios finales capaces adaptar el software a sus necesidades personales de la misma manera que los scripts de usuario y las hojas de estilo personalizadas permiten a los sitios web y, finalmente, publicar la modificación como una bifurcación para usuarios con preferencias similares. y enviar directamente posibles mejoras como solicitudes de extracción .
La definición de la Iniciativa de Código Abierto (OSI) es reconocida internacionalmente por varios gobiernos [6] como la definición estándar o de facto . OSI utiliza la definición de código abierto para determinar si considera una licencia de software de código abierto. La definición se basó en las Directrices de software libre de Debian , escritas y adaptadas principalmente por Perens. [7] [8] [9] Perens no basó sus escritos en las "cuatro libertades" de la Free Software Foundation (FSF), que sólo estuvieron ampliamente disponibles más tarde. [10]
Según la definición de Perens, el código abierto es una licencia de software amplia que pone el código fuente a disposición del público en general con restricciones relajadas o inexistentes sobre el uso y modificación del código. Es una "característica" explícita del código abierto que impone muy pocas restricciones al uso o distribución por parte de cualquier organización o usuario, para permitir la rápida evolución del software. [11]
Según Feller et al. (2005), los términos "software libre" y "software de código abierto" deben aplicarse a cualquier "producto de software distribuido bajo términos que permitan a los usuarios" usar, modificar y redistribuir el software "de cualquier manera que consideren adecuada, sin requerir que paguen a los autores del software una regalía o tarifa por participar en las actividades enumeradas". [12]
A pesar de aceptarlo inicialmente, [13] Richard Stallman de la FSF ahora se opone rotundamente a que se aplique el término "Código Abierto" a lo que ellos llaman "software libre". Aunque está de acuerdo en que los dos términos describen "casi la misma categoría de software", Stallman considera que equiparar los términos es incorrecto y engañoso. [14] Stallman también se opone al pragmatismo profesado de la Open Source Initiative , ya que teme que los ideales de libertad y comunidad del software libre se vean amenazados al comprometer los estándares idealistas de la FSF para la libertad del software. [15] La FSF considera que el software libre es un subconjunto del software de código abierto, y Richard Stallman explicó que el software DRM , por ejemplo, puede desarrollarse como código abierto, a pesar de que no da libertad a sus usuarios (los restringe). , y por lo tanto no califica como software libre. [dieciséis]
Cuando un autor contribuye con código a un proyecto de código abierto (por ejemplo, Apache.org), lo hace bajo una licencia explícita (por ejemplo, el Acuerdo de licencia de colaborador de Apache) o una licencia implícita (por ejemplo, la licencia de código abierto bajo la cual se desarrolla el proyecto). ya código de licencia). Algunos proyectos de código abierto no aceptan el código contribuido bajo una licencia, sino que en realidad requieren la asignación conjunta de los derechos de autor del autor para poder aceptar contribuciones de código al proyecto. [17]
Ejemplos de licencia de software libre /licencias de código abierto incluyen la licencia Apache , la licencia BSD , la licencia pública general GNU , la licencia pública general reducida GNU , la licencia MIT , la licencia pública Eclipse y la licencia pública Mozilla .
La proliferación de licencias de código abierto es un aspecto negativo del movimiento de código abierto porque a menudo es difícil comprender las implicaciones legales de las diferencias entre licencias. Con más de 180.000 proyectos de código abierto disponibles y más de 1.400 licencias únicas, la complejidad de decidir cómo gestionar el uso del código abierto dentro de empresas comerciales de "código cerrado" ha aumentado dramáticamente. Algunas son de cosecha propia, mientras que otras siguen el modelo de licencias FOSS convencionales , como Berkeley Software Distribution ("BSD"), Apache, estilo MIT (Instituto de Tecnología de Massachusetts) o GNU General Public License ("GPL"). En vista de esto, los profesionales del código abierto están comenzando a utilizar esquemas de clasificación en los que se agrupan las licencias de software libre (normalmente basándose en la existencia y las obligaciones impuestas por la disposición copyleft ; la solidez de la disposición copyleft). [18]
En 2008 se alcanzó un hito legal importante para el movimiento de código abierto/software libre, cuando el tribunal federal de apelaciones de EE. UU. dictaminó que las licencias de software libre definitivamente establecen condiciones legalmente vinculantes sobre el uso de trabajos protegidos por derechos de autor y, por lo tanto, son exigibles bajo la ley de derechos de autor existente. . Como resultado, si los usuarios finales violan las condiciones de la licencia, su licencia desaparece, lo que significa que están infringiendo los derechos de autor. [19] A pesar de este riesgo de licencia, la mayoría de los proveedores de software comercial utilizan software de código abierto en productos comerciales mientras cumplen con los términos de la licencia, por ejemplo, aprovechando la licencia Apache. [20]
En su ensayo de 1997 The Cathedral and the Bazaar , el influyente colaborador de código abierto Eric S. Raymond sugiere un modelo para desarrollar OSS conocido como modelo bazar . [21] Raymond compara el desarrollo de software mediante metodologías tradicionales con la construcción de una catedral, con un cuidadoso trabajo aislado por parte de individuos o pequeños grupos. [21] Sugiere que todo el software debería desarrollarse utilizando el estilo bazar, con diferentes agendas y enfoques. [21]
En el modelo tradicional de desarrollo, al que llamó modelo catedralicio , el desarrollo se produce de forma centralizada. [21] Las funciones están claramente definidas. [21] Los roles incluyen personas dedicadas al diseño (los arquitectos), personas responsables de gestionar el proyecto y personas responsables de la implementación. [21] La ingeniería de software tradicional sigue el modelo catedralicio. [21]
El modelo de bazar, sin embargo, es diferente. [21] En este modelo, los roles no están claramente definidos. [21] Algunas características propuestas del software desarrollado utilizando el modelo bazar deberían exhibir los siguientes patrones: [22]
Los usuarios deben ser tratados como codesarrolladores: los usuarios son tratados como codesarrolladores y, por lo tanto, deben tener acceso al código fuente del software. [22] Además, se anima a los usuarios a enviar adiciones al software, correcciones de código para el software, informes de errores , documentación, etc. Tener más codesarrolladores aumenta el ritmo al que evoluciona el software. [22] La ley de Linus establece que, con suficientes ojos, todos los insectos son superficiales. [22] Esto significa que si muchos usuarios ven el código fuente, eventualmente encontrarán todos los errores y sugerirán cómo solucionarlos. [22] Algunos usuarios tienen habilidades avanzadas de programación y, además, la máquina de cada usuario proporciona un entorno de prueba adicional. [22] Este nuevo entorno de prueba ofrece la posibilidad de encontrar y corregir un nuevo error. [22]
Lanzamientos anticipados : la primera versión del software debe publicarse lo antes posible para aumentar las posibilidades de encontrar codesarrolladores lo antes posible. [22]
Integración frecuente: los cambios de código deben integrarse (fusionarse en una base de código compartida) con la mayor frecuencia posible para evitar la sobrecarga de corregir una gran cantidad de errores al final del ciclo de vida del proyecto. [22] [23] Algunos proyectos de código abierto tienen compilaciones nocturnas donde la integración se realiza automáticamente . [22]
Varias versiones: Debe haber al menos dos versiones del software. [22] Debería haber una versión con más errores y más funciones y una versión más estable con menos funciones. [22] La versión con errores (también llamada versión de desarrollo) es para usuarios que desean el uso inmediato de las últimas funciones y están dispuestos a aceptar el riesgo de utilizar código que aún no se ha probado exhaustivamente. [22] Los usuarios pueden actuar como co-desarrolladores, reportando errores y proporcionando correcciones de errores. [22] [23]
Alta modularización: la estructura general del software debe ser modular permitiendo el desarrollo paralelo en componentes independientes. [22]
Estructura dinámica de toma de decisiones: existe la necesidad de una estructura de toma de decisiones, ya sea formal o informal, que tome decisiones estratégicas en función de los requisitos cambiantes de los usuarios y otros factores. [22] Compárese con la programación extrema . [22]
El proceso de desarrollo de código abierto comienza con una obtención de requisitos en la que los desarrolladores consideran si deben agregar nuevas funciones o si es necesario corregir un error en su proyecto. [23] Esto se establece comunicándose con la comunidad OSS a través de vías tales como informes y seguimiento de errores o listas de correo y páginas de proyectos. [23] A continuación, los desarrolladores de OSS seleccionan o se les asigna una tarea e identifican una solución. Debido a que a menudo hay muchas rutas posibles diferentes para encontrar soluciones en OSS, la mejor solución debe elegirse con una cuidadosa consideración y, a veces, incluso con comentarios de pares . [23] Luego, el desarrollador comienza a desarrollar y confirmar el código. [23] Luego, el código es probado y revisado por pares. [23] Los desarrolladores pueden editar y evolucionar su código a través de comentarios de la integración continua . [23] Una vez que el liderazgo y la comunidad estén satisfechos con todo el proyecto, se puede publicar parcialmente y se pueden documentar las instrucciones del usuario. [23] Si el proyecto está listo para ser lanzado, se congela y solo se realizan correcciones de errores graves o reparaciones de seguridad. [23] Finalmente, el proyecto se lanzó por completo y solo se modificó mediante correcciones de errores menores. [23]
El software de código abierto suele ser más fácil de obtener que el software propietario, lo que a menudo resulta en un mayor uso. Además, la disponibilidad de una implementación de código abierto de un estándar puede aumentar la adopción de ese estándar. [24] También ha ayudado a generar lealtad de los desarrolladores, ya que los desarrolladores se sienten empoderados y tienen un sentido de propiedad del producto final. [25]
Además, se necesitan menores costos de marketing y servicios logísticos para el OSS. Es una buena herramienta para promocionar la imagen de una empresa, incluidos sus productos comerciales. [26] El enfoque de desarrollo de OSS ha ayudado a producir software confiable y de alta calidad de manera rápida y económica. [27]
El desarrollo de código abierto ofrece el potencial de acelerar la innovación y la creación de innovación y valor social. En Francia, por ejemplo, una política que incentivaba al gobierno a favorecer el software gratuito de código abierto aumentó a casi 600.000 contribuciones de OSS por año, generando valor social al aumentar la cantidad y calidad del software de código abierto. Esta política también condujo a un aumento estimado de hasta el 18% de las nuevas empresas tecnológicas y un aumento del 14% en el número de personas empleadas en el sector de TI. [28]
Se dice que es más confiable ya que normalmente cuenta con miles de programadores independientes que prueban y corrigen errores del software. El código abierto no depende de la empresa o del autor que lo creó originalmente. Incluso si la empresa fracasa, el código sigue existiendo y siendo desarrollado por sus usuarios. Además, utiliza estándares abiertos accesibles para todos; así, no tiene el problema de los formatos incompatibles que puedan existir en el software propietario.
Es flexible porque los sistemas modulares permiten a los programadores construir interfaces personalizadas o agregarles nuevas habilidades y es innovador ya que los programas de código abierto son producto de la colaboración entre una gran cantidad de programadores diferentes. La combinación de perspectivas divergentes, objetivos corporativos y metas personales acelera la innovación. [29]
Además, el software libre puede desarrollarse de acuerdo con requisitos puramente técnicos. No requiere pensar en presiones comerciales que muchas veces degradan la calidad del software. Las presiones comerciales hacen que los desarrolladores de software tradicionales presten más atención a los requisitos de los clientes que a los requisitos de seguridad, ya que dichas características son algo invisibles para el cliente. [30]
En el desarrollo de OSS, se utilizan herramientas para respaldar el desarrollo del producto y el proceso de desarrollo en sí. [31]
Los sistemas de control de revisiones como el Sistema de Versiones Concurrentes (CVS) y posteriormente Subversion (SVN) y Git son ejemplos de herramientas, a menudo de código abierto, que ayudan a administrar los archivos de código fuente y los cambios en esos archivos para un proyecto de software. [32] Los proyectos se almacenan frecuentemente en " repositorios " que se alojan y publican en instalaciones de alojamiento de código fuente como Launchpad , GitHub , GitLab y SourceForge . [33]
Los proyectos de código abierto suelen estar organizados de forma flexible con "poco soporte o modelado de procesos formalizados", pero a menudo se utilizan utilidades como los rastreadores de problemas para organizar el desarrollo de software de código abierto. [31] Los rastreadores de errores más utilizados incluyen Bugzilla y Redmine . [34]
Herramientas como las listas de correo y el IRC proporcionan medios de coordinación entre los desarrolladores. [31] Los sitios de alojamiento de código centralizado también tienen características sociales que permiten a los desarrolladores comunicarse. [33]
Algunas de las "organizaciones más destacadas" involucradas en el desarrollo de OSS incluyen la Apache Software Foundation , creadores del servidor web Apache; la Fundación Linux , una organización sin fines de lucro que a partir de 2012 [actualizar]empleaba a Linus Torvalds, el creador del kernel del sistema operativo Linux ; la Fundación Eclipse , sede de la plataforma de desarrollo de software Eclipse ; el Proyecto Debian, creadores de la influyente distribución Debian GNU/Linux; la Fundación Mozilla , sede del navegador web Firefox; y OW2 , comunidad nacida en Europa que desarrolla middleware de código abierto. Las nuevas organizaciones tienden a tener un modelo de gobernanza más sofisticado y su membresía suele estar formada por miembros personas jurídicas. [35]
Open Source Software Institute es una organización sin fines de lucro (501 (c)(6)) establecida en 2001 que promueve el desarrollo y la implementación de soluciones de software de código abierto dentro de las agencias gubernamentales locales, estatales y federales de EE. UU. Los esfuerzos de OSSI se han centrado en promover la adopción de programas y políticas de software de código abierto dentro de las comunidades del Gobierno Federal y de Defensa y Seguridad Nacional. [36]
Open Source for America es un grupo creado para crear conciencia en el Gobierno Federal de los Estados Unidos sobre los beneficios del software de código abierto. Sus objetivos declarados son fomentar el uso de software de código abierto por parte del gobierno, la participación en proyectos de software de código abierto y la incorporación de dinámicas comunitarias de código abierto para aumentar la transparencia del gobierno. [37]
Mil-OSS es un grupo dedicado al avance del uso y creación de OSS en el ejército. [38]
Las empresas cuyo negocio se centra en el desarrollo de software de código abierto emplean una variedad de modelos de negocio para resolver el desafío de cómo ganar dinero proporcionando software que, por definición, tiene licencia gratuita. Cada una de estas estrategias comerciales se basa en la premisa de que los usuarios de tecnologías de código abierto están dispuestos a comprar funciones de software adicionales bajo licencias patentadas, o comprar otros servicios o elementos de valor que complementen el software de código abierto que es fundamental para el negocio. Este valor adicional puede ser, entre otros, funciones de nivel empresarial y garantías de tiempo de actividad (a menudo a través de un acuerdo de nivel de servicio ) para satisfacer los requisitos comerciales o de cumplimiento, así como ganancias de rendimiento y eficiencia mediante funciones que aún no están disponibles en la versión de código abierto. , protección legal (por ejemplo, indemnización por infracción de derechos de autor o patentes) o soporte/formación/consultoría profesional que son típicos de las aplicaciones de software patentadas.
Una cuestión de frecuente interés entre los investigadores es qué motiva a los creadores de software de código abierto, un comportamiento que puede ser " aparentemente irracional". [39] Mientras que algunos sociólogos teorizaron que las motivaciones externas, como "mejores trabajos" y "avance profesional", eran los principales impulsores de los desarrolladores de software de código abierto, Lakhani y Wolf descubrieron que la "motivación intrínseca basada en el disfrute" ("cuán creativo una persona siente cuando trabaja en el proyecto" fue el factor más importante. [40]
En un estudio de 2005, Ghosh postuló que la gran mayoría de los desarrolladores de software de código abierto se identificaban como hombres, y consideró "poco probable" que la proporción de desarrolladoras en el comité fuera "mucho superior al 5-7 por ciento". [41] Además, Ghosh descubrió que más del 60% de los desarrolladores tenían entre 16 y 25 años.
Más información: Historia del software gratuito y de código abierto
En los primeros días de la informática , como en las décadas de 1950 y 1960, los programadores y desarrolladores compartían software para aprender unos de otros y hacer evolucionar el campo de la informática. [42] Por ejemplo, Unix incluía el código fuente del sistema operativo para los usuarios. [42] Con el tiempo, la comercialización de software en los años 1970-1980 comenzó a impedir esta práctica. [42] Sin embargo, los académicos todavía a menudo desarrollaban software de forma colaborativa. [42]
En respuesta, el movimiento de código abierto nació del trabajo de entusiastas programadores expertos, ampliamente conocidos como hackers o cultura hacker . [43] Uno de estos entusiastas, Richard Stallman , fue una fuerza impulsora detrás del movimiento del software libre , que más tarde permitiría el movimiento de código abierto . [43] En 1984, renunció al MIT para crear un sistema operativo libre, GNU , después de que la cultura del programador en su laboratorio fuera sofocada por el software propietario que impedía que el código fuente fuera compartido y mejorado. [43] GNU era compatible con UNIX, lo que significa que los entusiastas de los programadores aún estarían familiarizados con su funcionamiento. [43] Sin embargo, rápidamente se hizo evidente que había cierta confusión con la etiqueta que Stallman había elegido para el software libre , que describió como libre como en libertad de expresión, no como cerveza gratis, refiriéndose al significado de libre como libertad en lugar de precio. [43] Más tarde amplió este concepto de libertad a las cuatro libertades esenciales. [43] A través de GNU, aparecieron normas de código abierto para incorporar el código fuente de otros, correcciones de errores de la comunidad y sugerencias de código para nuevas funciones. [43] En 1985, Stallman fundó la Free Software Foundation (FSF) para promover cambios en el software y ayudar a escribir GNU. [43] Para evitar que su obra fuera utilizada en software propietario, Stallman creó el concepto de copyleft , que permitía el uso de su obra por cualquier persona, pero bajo términos específicos. [43] Para ello, creó la Licencia Pública General GNU (GNU GPL) en 1989, que fue actualizada en 1991. [43] En 1991, GNU se combinó con el kernel de Linux escrito por Linus Torvalds , ya que faltaba un kernel. en GNU. [44] El sistema operativo ahora se suele denominar Linux . [43] A lo largo de todo este período, hubo muchos otros proyectos y licencias de software libre en ese momento, todos con ideas diferentes de lo que era y debería ser el concepto de software libre, así como la moralidad del software propietario, como Berkeley. Distribución de software , TeX y el sistema X Windows . [45]
A medida que se desarrolló el software libre, la Free Software Foundation comenzó a buscar cómo llevar ideas de software libre y beneficios percibidos a la industria del software comercial . [45] Se concluyó que el activismo social de la FSF no era atractivo para las empresas y necesitaban una forma de cambiar el nombre del movimiento de software libre para enfatizar el potencial comercial de compartir y colaborar en el código fuente de software. [45] El término código abierto fue sugerido por Christine Peterson en 1998 en una reunión de partidarios del software libre. [43] Muchos en el grupo sintieron que el nombre software libre era confuso para los recién llegados y frenaba el interés de la industria y aceptaron fácilmente la nueva designación de código abierto, creando la Iniciativa de Código Abierto (OSI) y la definición OSI de lo que es software de código abierto. . [43] La definición de la Iniciativa de Código Abierto (OSI) ahora es reconocida internacionalmente por varios gobiernos como la definición estándar o de facto . [44] La definición se basó en las Directrices de software libre de Debian , escritas y adaptadas principalmente por Bruce Perens. [46] La definición de OSI se diferencia de la definición de software libre en que permite la inclusión de software propietario y permite más libertades en su concesión de licencias. [43] Algunos, como Stallman, están más de acuerdo con el concepto original de software libre porque adopta una postura moral fuerte contra el software propietario, ya que hay mucha superposición entre los dos movimientos en términos de la operación del software. [43]
Mientras que la Iniciativa de Código Abierto buscaba fomentar el uso del nuevo término y evangelizar los principios a los que se adhería, los proveedores de software comercial se vieron cada vez más amenazados por el concepto de software distribuido libremente y el acceso universal al código fuente de una aplicación , con un ejecutivo de Microsoft. llamando al código abierto un destructor de la propiedad intelectual en 2001. [47] Sin embargo, si bien el software libre y de código abierto (FOSS) históricamente ha desempeñado un papel fuera del desarrollo de software privado convencional, empresas tan grandes como Microsoft han comenzado a desarrollar presencias oficiales de código abierto. En Internet. [47] IBM, Oracle y State Farm son sólo algunas de las empresas con un interés público importante en el competitivo mercado de código abierto actual, lo que marca un cambio significativo en la filosofía corporativa respecto al desarrollo de software libre. [47]
El futuro de la comunidad del software de código abierto, y por extensión de la comunidad del software libre, se ha vuelto exitoso, si no confuso acerca de lo que representa. [48] Por ejemplo, Android y Ubuntu son ejemplos de hitos de éxito en el ascenso del software de código abierto a la prominencia desde los márgenes de la innovación tecnológica tal como existía a principios de la década de 2000. [48] Sin embargo, algunos en la comunidad los consideran fallas en su representación del OSS debido a cuestiones como la restación de importancia al centro OSS de Android por parte de Google y sus socios, el uso de una licencia Apache que permitió la bifurcación y resultó en una pérdida. de oportunidades de colaboración dentro de Android, la priorización de la convivencia sobre la libertad en Ubuntu y características dentro de Ubuntu que rastrean a los usuarios con fines de marketing. [48]
El uso de OSS se ha vuelto más común en los negocios: el 78% de las empresas informan que ejecutan todas o parte de sus operaciones en FOSS. [48] La popularidad del OSS ha aumentado hasta el punto de que Microsoft , que alguna vez fue detractor del OSS, ha incluido su uso en sus sistemas. [48] Sin embargo, este éxito ha generado preocupaciones que determinarán el futuro del OSS, ya que la comunidad debe responder preguntas como qué es el OSS, qué debería ser y qué se debe hacer para protegerlo, si es que necesita protección. [48] Con todo, si bien la revolución del código libre y abierto se ha desacelerado hasta alcanzar un equilibrio percibido en el mercado, eso no significa que haya terminado, ya que deben llevarse a cabo muchas discusiones teóricas para determinar su futuro. [48]
Artículo principal: Comparación de software de código abierto y de código cerrado
El software de código abierto se diferencia del software propietario en que está disponible públicamente, la licencia no requiere tarifas y se permiten modificaciones y distribuciones según las especificaciones de la licencia. [49] Todo esto sirve para evitar un monopolio sobre cualquier producto OSS, que es el objetivo del software propietario. [49] El software propietario limita las opciones de sus clientes a comprometerse a utilizar ese software, actualizarlo o cambiar a otro software, lo que obliga a los clientes a que sus preferencias de software se vean afectadas por su costo monetario. [49] El escenario ideal para el proveedor de software propietario sería un lock-in , donde el cliente no cambia o no puede cambiar de software debido a estos costos y continúa comprando productos de ese proveedor. [49]
Dentro del software propietario, las correcciones de errores solo pueden ser proporcionadas por el proveedor, mover plataformas requiere otra compra y la existencia del producto depende del proveedor, quien puede discontinuarlo en cualquier momento. [43] Además, el software propietario no proporciona su código fuente y los usuarios no pueden modificarlo. [43] Para las empresas, esto puede representar un riesgo de seguridad y una fuente de frustración, ya que no pueden especializar el producto según sus necesidades y puede haber amenazas ocultas o fugas de información dentro del software a las que no pueden acceder ni cambiar. [43]
Artículo principal: Términos alternativos para software libre
Ver también: Comparación de licencias de software gratuitas y de código abierto
Según la definición de OSI, el código abierto es una licencia de software amplia que pone el código fuente a disposición del público en general con restricciones relajadas o inexistentes sobre el uso y modificación del código. [50] Es una característica explícita del código abierto que impone muy pocas restricciones al uso o distribución por parte de cualquier organización o usuario, con el fin de permitir la rápida evolución del software. [50]
Richard Stallman, líder del movimiento de software libre y miembro de la fundación de software libre, se opone a que se aplique el término código abierto a lo que ellos llaman software libre. [51] Aunque está de acuerdo en que los dos términos describen casi la misma categoría de software, Stallman considera que equiparar los términos es incorrecto y engañoso. [51] Él cree que la principal diferencia es que al elegir un término sobre el otro, los demás pueden saber cuáles son los objetivos de uno: desarrollo (código abierto) o una postura social (software libre). [52] Sin embargo, existe una superposición significativa entre el software de código abierto y el software libre. [51] Stallman también se opone al pragmatismo profesado de la Open Source Initiative , ya que teme que los ideales de libertad y comunidad del software libre se vean amenazados al comprometer los estándares idealistas de la FSF para la libertad del software. [52] La FSF considera que el software libre es un subconjunto del software de código abierto, y Richard Stallman explicó que el software DRM , por ejemplo, puede desarrollarse como código abierto, a pesar de que restringe a sus usuarios y, por lo tanto, no califica como libre. software. [51]
La FSF dijo que el término fuente abierta fomenta una ambigüedad de otro tipo, tal que confunde la mera disponibilidad de la fuente con la libertad de usarla, modificarla y redistribuirla. [51] Por otro lado, el término software libre fue criticado por la ambigüedad de la palabra libre, que se consideraba desalentadora para la adopción empresarial, y por el uso histórico ambiguo del término. [52]
En consecuencia , los desarrolladores han utilizado los términos alternativos Software libre y de código abierto ( FOSS ), o Software libre/libre y de código abierto (FLOSS), para describir el software de código abierto que también es software libre . [53]
Artículo principal: software de origen disponible
El software se puede distribuir con código fuente , que es un código legible. [54] El software está disponible cuando este código fuente está disponible para ser visto. [54] Sin embargo, para que el código fuente esté disponible o sea FOSS , no es necesario que sea accesible para todos, solo para los usuarios de ese software. [54] Si bien todo el software FOSS está disponible porque este es un requisito establecido por la Definición de código abierto , no todo el software disponible es FOSS. [54] Por ejemplo, si el software no cumple con otros aspectos de la Definición de Código Abierto, como la modificación o redistribución permitida, incluso si el código fuente está disponible, el software no es software libre. [54]
Una tendencia reciente dentro de las empresas de software es el código abierto, o la transición de su software propietario anterior a software de código abierto mediante su lanzamiento bajo una licencia de código abierto . [55] [56] Ejemplos de empresas que han hecho esto son Google, Microsoft y Apple. [55] Además, el código abierto puede referirse a la programación de software de código abierto o la instalación de software de código abierto. [56] El abastecimiento abierto puede ser beneficioso de múltiples maneras, como atraer más contribuyentes externos que aporten nuevas perspectivas y capacidades de resolución de problemas. [55] Las desventajas del código abierto incluyen el trabajo que se debe hacer para mantener la nueva comunidad, como hacer que el código base sea fácilmente comprensible, establecer canales de comunicación para nuevos desarrolladores y crear documentación para permitir que los nuevos desarrolladores se unan fácilmente. [55] Sin embargo, una revisión de varios proyectos de código abierto encontró que, aunque un nuevo proyecto de código abierto atrae a muchos recién llegados, es probable que una gran cantidad abandone pronto el proyecto y es probable que sus bifurcaciones tampoco tengan impacto. [55]
Otros conceptos que pueden compartir algunas similitudes con el código abierto son shareware , software de dominio público , software gratuito y visores/lectores de software que están disponibles gratuitamente pero que no proporcionan código fuente. [43] Sin embargo, estos difieren del software de código abierto en el acceso al código fuente , las licencias, los derechos de autor y las tarifas. [43]
"Migramos funciones clave de Windows a Linux porque necesitábamos un sistema operativo que fuera estable y confiable, uno que nos diera control interno. Así que si necesitábamos parchear, ajustar o adaptar, podíamos".
Declaración oficial de United Space Alliance , que gestiona los sistemas informáticos de la Estación Espacial Internacional (ISS), sobre por qué decidieron cambiar de Windows a Debian GNU/Linux en la ISS [57] [58]
Los proyectos de software de código abierto son creados y mantenidos por una red de programadores, que a menudo pueden ser voluntarios, y se utilizan ampliamente tanto en productos gratuitos como comerciales. [20] Los principales ejemplos de productos de código abierto son el servidor HTTP Apache , la plataforma de comercio electrónico osCommerce , los navegadores de Internet Mozilla Firefox y Chromium (el proyecto donde se realiza la gran mayoría del desarrollo del software gratuito Google Chrome ) y la oficina completa. suite LibreOffice . Uno de los productos de código abierto de mayor éxito es el sistema operativo Linux , un sistema operativo de código abierto similar a Unix , y su derivado Android , un sistema operativo para dispositivos móviles. [59] [60] En algunas industrias, el software de código abierto es común. [61]
Varias bibliotecas de Python ampliamente utilizadas son software gratuito y de código abierto. Estos incluyen TensorFlow , PyTorch , scikit-learn , NLTK , OpenCV .
Debido a que el software de código abierto generalmente permite que la tecnología sea más asequible, las soluciones digitales se vuelven accesibles incluso en campos imprevistos como la agricultura de precisión. [62]
Si bien el término "código abierto" se aplicaba originalmente sólo al código fuente del software, [63] ahora se está aplicando a muchas otras áreas [64] como la ecología del código abierto , [65] un movimiento para descentralizar las tecnologías de modo que cualquier ser humano puede usarlos. Sin embargo, a menudo se aplica erróneamente a otras áreas que tienen principios diferentes y contrapuestos, que se superponen sólo parcialmente.
Los mismos principios que subyacen al software de código abierto se pueden encontrar en muchas otras iniciativas, como el hardware de código abierto , Wikipedia y las publicaciones de acceso abierto . En conjunto, estos principios se conocen como código abierto, contenido abierto y colaboración abierta : [66] "cualquier sistema de innovación o producción que se base en participantes orientados a objetivos pero poco coordinados, que interactúan para crear un producto (o servicio) de interés económico". valor, que ponen a disposición tanto de los contribuyentes como de los no contribuyentes". [3]
Esta "cultura" o ideología considera que los principios se aplican de manera más general para facilitar la entrada simultánea de diferentes agendas, enfoques y prioridades, en contraste con modelos de desarrollo más centralizados, como los que se utilizan típicamente en las empresas comerciales. [67]
Mientras los defensores del código abierto atraen nuevos usuarios a nuestra comunidad, nosotros, los activistas del software libre, tenemos que trabajar aún más para llamar la atención de esos nuevos usuarios sobre el tema de la libertad.
Tenemos que decir: '¡Es software libre y te da libertad!', más y más fuerte que nunca.
Cada vez que dices "software libre" en lugar de "código abierto", ayudas a nuestra campaña.
Tarde o temprano, estos usuarios serán invitados a volver al software propietario para obtener alguna ventaja práctica.
Innumerables empresas buscan ofrecer esa tentación y ¿por qué los usuarios la rechazarían?
Sólo si han aprendido a valorar la libertad que les brinda el software libre, por sí mismo.
Depende de nosotros difundir esta idea y, para hacerlo, tenemos que hablar de libertad.
Una cierta actitud de "guardar silencio" en los negocios puede ser útil para la comunidad, pero también debemos tener mucha libertad para hablar.
Bajo la presión de las compañías cinematográficas y discográficas, el software para uso individual está cada vez más diseñado específicamente para restringirlos.
Esta característica maliciosa se conoce como DRM o Gestión de Restricciones Digitales (ver
DefectiveByDesign.org
), y es la antítesis en espíritu de la libertad que el software libre pretende proporcionar.
[...] Sin embargo, algunos partidarios del código abierto han propuesto software 'DRM de código abierto'.
Su idea es que al publicar el código fuente de programas diseñados para restringir su acceso a medios cifrados y permitir que otros lo cambien, producirán software más potente y confiable para restringir a usuarios como usted.
Luego te será entregado en dispositivos que no te permiten cambiarlo.
Este software podría ser de "código abierto" y utilizar el modelo de desarrollo de código abierto;
pero no será software libre ya que no respetará la libertad de los usuarios que realmente lo ejecutan.
Si el modelo de desarrollo de código abierto logra hacer que este software sea más potente y confiable para restringirlo, eso lo empeorará aún más.
{{cite journal}}
: Mantenimiento CS1: DOI inactivo a partir de enero de 2024 ( enlace )Sin embargo, no todos los usuarios y desarrolladores de software libre estaban de acuerdo con los objetivos del movimiento del software libre.
En 1998, una parte de la comunidad del software libre se separó y comenzó a hacer campaña en nombre del "código abierto".
El término se propuso originalmente para evitar un posible malentendido del término "software libre", pero pronto se asoció con puntos de vista filosóficos bastante diferentes a los del movimiento del software libre.
...construyendo la primera ecoaldea de permacultura de permacultura de alta tecnología apropiada, descentralizada, autosuficiente y de código abierto replicable del mundo...