Software de código abierto -Open-source software

Una captura de pantalla de Manjaro ejecutando el entorno de escritorio Cinnamon , Firefox accediendo a Wikipedia que usa MediaWiki , LibreOffice Writer , Vim , GNOME Calculator , VLC y el administrador de archivos Nemo , todos los cuales son software de código abierto.

El software de código abierto ( OSS ) es software de computadora 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 fin. El software de código abierto puede desarrollarse de manera pública 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 pública en el software.

El desarrollo de software de código abierto puede traer diversas perspectivas más allá de las de una sola empresa. Un informe de 2008 de Standish Group indicó que la adopción de modelos de software de fuente abierta ha resultado en ahorros de alrededor de $60 mil millones por año para los consumidores.

El código fuente abierto se puede usar para estudiar y permite a los usuarios finales capaces adaptar el software a sus necesidades personales de manera similar . Los scripts de usuario y las hojas de estilo personalizadas permiten sitios web y, finalmente, publicar la modificación como una bifurcación para usuarios con preferencias similares, y envíe directamente posibles mejoras como solicitudes de incorporación de cambios .

Historia

Finales de la década de 1990: Fundación de la Iniciativa de Código Abierto

En los primeros días de la informática, los programadores y los desarrolladores compartían software para aprender unos de otros y hacer evolucionar el campo de la informática. Por ejemplo, Unix incluía el código fuente del sistema operativo para los usuarios. Eventualmente, la noción de código abierto se desplazó al borde del camino de la comercialización de software en los años 1970-1980. Sin embargo, los académicos aún desarrollan software en colaboración. Los ejemplos son Donald Knuth en 1979 con el sistema de composición tipográfica TeX y Richard Stallman en 1983 con el sistema operativo GNU . En 1997, Eric Raymond publicó The Cathedral and the Bazaar , un análisis reflexivo de la comunidad hacker y los principios del software libre. El documento recibió mucha atención a principios de 1998 y fue uno de los factores que motivaron a Netscape Communications Corporation a lanzar su popular paquete de Internet Netscape Communicator como software libre . Este código fuente se convirtió posteriormente en la base detrás de SeaMonkey , Mozilla Firefox , Thunderbird y KompoZer .

El acto de Netscape llevó a Raymond y otros a investigar cómo llevar las ideas de software libre de la Free Software Foundation y los beneficios percibidos a la industria del software comercial. Llegaron a la conclusión de que el activismo social de la FSF no era atractivo para empresas como Netscape y buscaron una manera de cambiar la marca del movimiento del software libre para enfatizar el potencial comercial de compartir y colaborar en el código fuente del software. El nuevo término que eligieron fue "código abierto", que pronto fue adoptado por Bruce Perens , el editor Tim O'Reilly , Linus Torvalds y otros. La Iniciativa de código abierto se fundó en febrero de 1998 para fomentar el uso del nuevo término y evangelizar los principios de código abierto.

Si bien la Iniciativa de código abierto buscó alentar el uso del nuevo término y evangelizar los principios a los que se adhirió, los proveedores de software comercial se vieron cada vez más amenazados por el concepto de software de distribución gratuita y acceso universal al código fuente de una aplicación . El ejecutivo de Microsoft , Jim Allchin , declaró públicamente en 2001 que "el código abierto es un destructor de la propiedad intelectual. No puedo imaginar algo que pueda ser peor que esto para el negocio del software y el negocio de la propiedad intelectual". Sin embargo, aunque históricamente el software libre y de código abierto ha desempeñado un papel fuera de la corriente principal del desarrollo de software privado, empresas tan grandes como Microsoft han comenzado a desarrollar presencias oficiales de código abierto en Internet. IBM, Oracle, Google y State Farm son solo algunas de las empresas con una participación pública importante en el competitivo mercado de código abierto actual. Ha habido un cambio significativo en la filosofía corporativa con respecto al desarrollo de FOSS .

El movimiento del software libre se lanzó en 1983. En 1998, un grupo de personas defendió que el término software libre debería ser reemplazado por software de código abierto (OSS) como una expresión menos ambigua y más cómoda para el mundo corporativo. Los desarrolladores de software pueden querer publicar su software con una licencia de código abierto , para que cualquiera pueda desarrollar el mismo software o comprender su funcionamiento interno. Con el software de código abierto, por lo general, cualquier persona puede crear modificaciones del mismo, trasladarlo a nuevos sistemas operativos y arquitecturas de conjunto de instrucciones , compartirlo con otros o, en algunos casos, comercializarlo. Los académicos Casson y Ryan han señalado varias razones basadas en políticas para la adopción del código abierto, en particular, la propuesta de mayor valor del código abierto (en comparación con la mayoría de los formatos propietarios) en las siguientes categorías:

  • Seguridad
  • asequibilidad
  • Transparencia
  • Perpetuidad
  • interoperabilidad
  • Flexibilidad
  • Localización, particularmente en el contexto de los gobiernos locales (quienes toman las decisiones de software). Casson y Ryan argumentan que "los gobiernos tienen una responsabilidad inherente y un deber fiduciario con los contribuyentes", lo que incluye el análisis cuidadoso de estos factores al decidir comprar software propietario o implementar una opción de código abierto.

La definición de código abierto presenta una filosofía de código abierto y define además los términos de uso, modificación y redistribución del software de código abierto. Las licencias de software otorgan derechos a los usuarios que, de otro modo, estarían reservados por la ley de derechos de autor al titular de los derechos de autor. Varias licencias de software de código abierto se han clasificado dentro de los límites de la definición de código abierto . El ejemplo más destacado y popular es la Licencia Pública General GNU (GPL), que "permite la distribución gratuita con la condición de que los desarrollos y aplicaciones posteriores se sometan a la misma licencia", por lo que también son gratuitos.

La etiqueta de código abierto surgió de una sesión de estrategia celebrada el 7 de abril de 1998 en Palo Alto en reacción al anuncio de enero de 1998 de Netscape sobre el lanzamiento del código fuente para Navigator (como Mozilla ). Un grupo de personas en la sesión incluyó a Tim O'Reilly , Linus Torvalds , Tom Paquin, Jamie Zawinski , Larry Wall , Brian Behlendorf , Sameer Parekh , Eric Allman , Greg Olson, Paul Vixie , John Ousterhout , Guido van Rossum , Philip Zimmermann , John Gilmore y Eric S. Raymond . Aprovecharon la oportunidad antes del lanzamiento del código fuente de Navigator para aclarar una posible confusión causada por la ambigüedad de la palabra "gratis" en inglés .

Mucha gente afirmó que el nacimiento de Internet , a partir de 1969, inició el movimiento de código abierto, mientras que otros no distinguen entre los movimientos de código abierto y software libre.

La Free Software Foundation (FSF), iniciada en 1985, pretendía que la palabra "gratis" significara libertad de distribución (o "libre como en libertad de expresión") y no libertad de costo (o "gratis como en cerveza gratis"). Dado que una gran cantidad de software libre ya era (y sigue siendo) gratuito, dicho software libre se asoció con un coste cero, lo que parecía anticomercial.

La Iniciativa de Código Abierto (OSI) fue formada en febrero de 1998 por Eric Raymond y Bruce Perens. Con al menos 20 años de evidencia de historias de casos de desarrollo de software cerrado versus desarrollo abierto ya proporcionadas por la comunidad de desarrolladores de Internet, la OSI presentó el caso del "código abierto" a empresas comerciales, como Netscape. La OSI esperaba que el uso de la etiqueta "código abierto", un término sugerido por Christine Peterson del Foresight Institute en la sesión de estrategia, eliminaría la ambigüedad, particularmente para las personas que perciben el "software libre" como anticomercial. Buscaban dar un perfil más alto a los beneficios prácticos del código fuente disponible gratuitamente, y querían llevar a las principales empresas de software y otras industrias de alta tecnología al código abierto. Perens intentó registrar "código abierto" como una marca de servicio para OSI, pero ese intento no fue práctico según los estándares de marcas registradas . Mientras tanto, debido a la presentación del artículo de Raymond a la alta gerencia de Netscape (Raymond solo descubrió cuando leyó el comunicado de prensa y fue llamado por el PA del CEO de Netscape , Jim Barksdale , más tarde ese mismo día), Netscape lanzó su código fuente de Navigator como abierto. fuente, con resultados favorables.

Definiciones

El logotipo de la Iniciativa de código abierto

La definición de Open Source Initiative (OSI) es reconocida por varios gobiernos a nivel internacional como la definición estándar o de facto . Además, muchos de los proyectos y colaboradores de software de código abierto más grandes del mundo, incluidos Debian, Drupal Association, FreeBSD Foundation, Linux Foundation, OpenSUSE Foundation, Mozilla Foundation, Wikimedia Foundation, Wordpress Foundation, se han comprometido a defender la misión de OSI y Open Source. Definición a través del Acuerdo de Afiliación de OSI.

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. Perens no basó su escritura en las "cuatro libertades" de la Free Software Foundation (FSF), que solo estuvieron ampliamente disponibles más tarde.

Según la definición de Perens, el código abierto es una amplia licencia de software que pone el código fuente a disposición del público en general con restricciones relajadas o inexistentes sobre el uso y la modificación del código. Es una "característica" explícita del código abierto que pone muy pocas restricciones en el uso o distribución por parte de cualquier organización o usuario, para permitir la rápida evolución del software.

A pesar de aceptarlo inicialmente, 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. Stallman también se opone al pragmatismo declarado de la Iniciativa de código abierto , 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. 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.

Licencias de software de código abierto

Cuando un autor aporta código a un proyecto de código abierto (p. ej., Apache.org), lo hace bajo una licencia explícita (p. ej., el Acuerdo de licencia de colaborador de Apache) o una licencia implícita (p. ej., la licencia de código abierto bajo la cual se crea el proyecto). ya código de licencia). Algunos proyectos de código abierto no aceptan el código contribuido bajo una licencia, pero en realidad requieren la asignación conjunta de los derechos de autor del autor para aceptar contribuciones de código en el proyecto.

Ejemplos de licencias 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 1400 licencias únicas, la complejidad de decidir cómo administrar el uso de código abierto dentro de empresas comerciales de "código cerrado" ha aumentado drásticamente. Algunos son de cosecha propia, mientras que otros se basan en las principales licencias FOSS 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 practicantes de código abierto están comenzando a utilizar esquemas de clasificación en los que se agrupan las licencias FOSS (típicamente en función de la existencia y las obligaciones impuestas por la disposición de copyleft ; la fuerza de la disposición de copyleft).

Un hito legal importante para el movimiento de código abierto/software libre se aprobó en 2008, cuando la corte federal de apelaciones de los EE. UU. dictaminó que las licencias de software libre definitivamente establecen condiciones legalmente vinculantes sobre el uso de obras protegidas 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. 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 de Apache.

Certificaciones

La certificación puede ayudar a generar confianza en el usuario. La certificación podría aplicarse al componente más simple, a un sistema de software completo. El Instituto Internacional de Tecnología de Software de la Universidad de las Naciones Unidas , inició un proyecto conocido como "El Proyecto de Escritorio Global". Este proyecto tiene como objetivo construir una interfaz de escritorio que cada usuario final pueda entender e interactuar, cruzando así las barreras culturales y de idioma. El proyecto mejoraría el acceso de los países en desarrollo a los sistemas de información. UNU/IIST espera lograr esto sin comprometer la calidad del software mediante la introducción de certificaciones.

Desarrollo de software de código abierto

modelo de desarrollo

En su ensayo de 1997 La catedral y el bazar , el evangelista de código abierto Eric S. Raymond sugiere un modelo para desarrollar OSS conocido como modelo de bazar . Raymond compara el desarrollo de software mediante metodologías tradicionales con la construcción de una catedral, "cuidadosamente elaborada por magos individuales o pequeños grupos de magos que trabajan en un espléndido aislamiento". Sugiere que todo el software debe desarrollarse utilizando el estilo de bazar, que describió como "un gran bazar balbuceante de agendas y enfoques diferentes".

En el modelo tradicional de desarrollo, al que llamó modelo de catedral , el desarrollo tiene lugar de forma centralizada. Los roles están claramente definidos. Los roles incluyen personas dedicadas al diseño (los arquitectos), personas responsables de administrar el proyecto y personas responsables de la implementación. La ingeniería de software tradicional sigue el modelo de la catedral.

El modelo de bazar, sin embargo, es diferente. En este modelo, los roles no están claramente definidos. Gregorio Robles sugiere que el software desarrollado usando el modelo de bazar debe exhibir los siguientes patrones:

Los usuarios deben ser tratados como co-desarrolladores
Los usuarios son tratados como co-desarrolladores, por lo que deben tener acceso al código fuente del software. Además, se alienta a los usuarios a enviar adiciones al software, correcciones de código para el software, informes de errores , documentación, etc. Tener más co-desarrolladores aumenta la velocidad a la que evoluciona el software. La ley de Linus establece: "Con suficientes ojos, todos los errores son superficiales". Esto significa que si muchos usuarios ven el código fuente, eventualmente encontrarán todos los errores y sugerirán cómo corregirlos. Tenga en cuenta que algunos usuarios tienen habilidades de programación avanzadas y, además, la máquina de cada usuario proporciona un entorno de prueba adicional. Este nuevo entorno de prueba ofrece la posibilidad de encontrar y corregir un nuevo error.
Primeros lanzamientos
La primera versión del software debe lanzarse lo antes posible para aumentar las posibilidades de encontrar co-desarrolladores antes.
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. Algunos proyectos de código abierto tienen compilaciones nocturnas en las que la integración se realiza automáticamente todos los días.
Varias versiones
Debe haber al menos dos versiones del software. Debería haber una versión con más errores con más funciones y una versión más estable con menos funciones. 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 usar código que aún no se ha probado a fondo. Luego, los usuarios pueden actuar como co-desarrolladores, informando errores y proporcionando correcciones de errores.
Alta modularización
La estructura general del software debe ser modular, permitiendo el desarrollo paralelo en componentes independientes.
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 según los requisitos cambiantes del usuario y otros factores. Comparar con la programación extrema .

Sin embargo, los datos sugieren que el OSS no es tan democrático como sugiere el modelo de bazar. Un análisis de cinco mil millones de bytes de código libre/de código abierto realizado por 31 999 desarrolladores muestra que el 74 % del código fue escrito por el 10 % de los autores más activos. El promedio de autores involucrados en un proyecto fue de 5,1, con una mediana de 2.

Ventajas y desventajas

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. También ha ayudado a desarrollar la lealtad de los desarrolladores, ya que estos se sienten empoderados y tienen un sentido de propiedad del producto final.

Además, se necesitan costos más bajos de marketing y servicios logísticos para OSS. Es una buena herramienta para promover la imagen de una empresa, incluidos sus productos comerciales. El enfoque de desarrollo de OSS ha ayudado a producir software confiable y de alta calidad de manera rápida y económica.

El desarrollo de código abierto ofrece el potencial para una innovación más rápida 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 libre de código abierto aumentó a casi 600 000 contribuciones de OSS por año, generando valor social al aumentar la cantidad y la 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 la cantidad de personas empleadas en el sector de TI.

Se dice que es más confiable ya que normalmente tiene miles de programadores independientes que prueban y corrigen errores del software. El código abierto no depende de la empresa o el 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; por lo tanto, no tiene el problema de los formatos incompatibles que pueden existir en el software propietario.

Es flexible porque los sistemas modulares permiten a los programadores construir interfaces personalizadas o agregarle nuevas habilidades y es innovador porque los programas de código abierto son el 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.

Además, el software libre puede desarrollarse de acuerdo con requisitos puramente técnicos. No requiere pensar en la presión comercial que muchas veces degrada 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 tales características son algo invisibles para el cliente.

A veces se dice que el proceso de desarrollo de código abierto puede no estar bien definido y que las etapas del proceso de desarrollo, como las pruebas del sistema y la documentación, pueden ignorarse. Sin embargo, esto solo es cierto para proyectos pequeños (en su mayoría de un solo programador). Los proyectos más grandes y exitosos definen y hacen cumplir al menos algunas reglas, ya que las necesitan para hacer posible el trabajo en equipo. En los proyectos más complejos, estas reglas pueden ser tan estrictas como revisar incluso cambios menores por parte de dos desarrolladores independientes.

No todas las iniciativas de OSS han tenido éxito; por ejemplo, SourceXchange y Eazel . Los expertos en software y los investigadores que no están convencidos de la capacidad del código abierto para producir sistemas de calidad identifican el proceso poco claro, el descubrimiento tardío de defectos y la falta de evidencia empírica como los problemas más importantes (datos recopilados sobre productividad y calidad). También es difícil diseñar un modelo comercial comercialmente sólido en torno al paradigma de código abierto. En consecuencia, sólo podrán satisfacerse los requisitos técnicos y no los del mercado. En términos de seguridad, el código abierto puede permitir que los piratas informáticos conozcan las debilidades o lagunas del software más fácilmente que el software de código cerrado. Depende de los mecanismos de control para crear un desempeño efectivo de los agentes autónomos que participan en las organizaciones virtuales.

Herramientas de desarrollo

En el desarrollo de OSS, las herramientas se utilizan para apoyar el desarrollo del producto y el proceso de desarrollo en sí.

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. Los proyectos se almacenan con frecuencia en " repositorios " que se alojan y publican en instalaciones de alojamiento de código fuente como Launchpad , GitHub , GitLab y SourceForge .

Los proyectos de código abierto a menudo se organizan de manera flexible con "un modelado o soporte de procesos poco formalizado", pero las utilidades como los rastreadores de problemas se utilizan a menudo para organizar el desarrollo de software de código abierto. Los rastreadores de errores comúnmente utilizados incluyen Bugzilla y Redmine .

Herramientas como las listas de correo y el IRC proporcionan medios de coordinación entre los desarrolladores. Los sitios de alojamiento de código centralizado también tienen funciones sociales que permiten a los desarrolladores comunicarse.

Organizaciones

Algunas de las "organizaciones más destacadas" involucradas en el desarrollo de OSS incluyen Apache Software Foundation , creadores del servidor web Apache; la Fundación Linux , una organización sin fines de lucro que a partir de 2012 empleó 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 gobierno más sofisticado y su membresía a menudo está formada por miembros de entidades legales.

Open Source Software Institute es una organización sin fines de lucro basada en membresía (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 federales, estatales y locales de EE. UU. Los esfuerzos de OSSI se han centrado en promover la adopción de políticas y programas de software de código abierto dentro de las comunidades del Gobierno Federal y de Defensa y Seguridad Nacional.

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.

Mil-OSS es un grupo dedicado al avance del uso y la creación de OSS en el ejército.

Fondos

Las empresas cuyo negocio se centra en el desarrollo de software de código abierto emplean una variedad de modelos comerciales para resolver el desafío de cómo ganar dinero proporcionando software que, por definición, tiene una 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 propietarias, 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, rendimiento y aumento de la eficiencia mediante funciones que aún no están disponibles en la versión de código abierto. , protección legal (p. ej., indemnización por infracción de derechos de autor o patentes) o soporte/capacitación/consultoría profesional que son típicos de las aplicaciones de software propietario.

Comparaciones con otros modelos de desarrollo/licencia de software

Software de código cerrado/propietario

El debate sobre el código abierto frente al código cerrado (alternativamente llamado software propietario ) a veces es acalorado.

Las cuatro razones principales (según la encuesta de Open Source Business Conference) por las que las personas u organizaciones eligen software de código abierto son:

  1. costo más bajo
  2. seguridad
  3. ningún proveedor 'bloqueado'
  4. mejor calidad

Dado que las empresas innovadoras ya no dependen en gran medida de las ventas de software, el software propietario se ha vuelto menos necesario. Como tal, cosas como el sistema de administración de contenido de código abierto, o CMS, las implementaciones se están volviendo más comunes. En 2009, la Casa Blanca de EE. UU. cambió su sistema CMS de un sistema propietario a un CMS de código abierto Drupal . Además, empresas como Novell (que tradicionalmente vendía software a la antigua) debaten continuamente los beneficios de cambiar a la disponibilidad de código abierto, ya que han cambiado parte de la oferta de productos a código fuente abierto. De esta manera, el software de código abierto brinda soluciones a problemas únicos o específicos. Como tal, se informa que el 98% de las empresas de nivel empresarial utilizan ofertas de software de código abierto de alguna manera.

Con este cambio de mercado, los sistemas más críticos están comenzando a depender de ofertas de código abierto, lo que permite una mayor financiación (como las subvenciones del Departamento de Seguridad Nacional de EE. UU. ) para ayudar a "cazar errores de seguridad". Según un estudio piloto de organizaciones que adoptaron (o no adoptaron) OSS, se observaron los siguientes factores de significación estadística en las creencias de los gerentes: (a) actitudes hacia los resultados, (b) las influencias y comportamientos de los demás, y (c) su capacidad de actuar.

Los distribuidores de código fuente patentado han comenzado a desarrollar y contribuir a la comunidad de código abierto debido al cambio de participación en el mercado, y lo han hecho por la necesidad de reinventar sus modelos para seguir siendo competitivos.

Muchos defensores argumentan que el software de código abierto es intrínsecamente más seguro porque cualquier persona puede ver, editar y cambiar el código. Un estudio del código fuente de Linux tiene 0,17 errores por 1000 líneas de código, mientras que el software propietario generalmente obtiene entre 20 y 30 errores por 1000 líneas.

Software libre

Según el líder del movimiento de software libre , Richard Stallman , la principal diferencia es que al elegir un término sobre el otro (es decir, "código abierto" o " software libre "), uno permite que los demás sepan cuáles son sus objetivos: "Open source es una metodología de desarrollo; el software libre es un movimiento social". Sin embargo, existe una superposición significativa entre el software de código abierto y el software libre.

La FSF dijo que el término "código abierto" fomenta una ambigüedad de otro tipo, de modo que confunde la mera disponibilidad de la fuente con la libertad de usarla, modificarla y redistribuirla. Por otro lado, el término "software libre" fue criticado por la ambigüedad de la palabra "gratis" como "disponible sin costo", lo que se consideró desalentador para la adopción comercial y por el uso histórico ambiguo del término.

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), en consecuencia, para describir el software de código abierto que también es software libre . Si bien la definición de software de código abierto es muy similar a la definición de software libre de la FSF, se basó en las Directrices de software libre de Debian , escritas y adaptadas principalmente por Bruce Perens con aportes de Eric S. Raymond y otros.

El término "código abierto" originalmente tenía la intención de ser una marca registrada; sin embargo, el término se consideró demasiado descriptivo, por lo que no existe una marca registrada. La OSI preferiría que las personas trataran el código abierto como si fuera una marca comercial y lo usaran solo para describir el software con licencia aprobada por la OSI.

OSI Certified es una marca comercial con licencia solo para personas que distribuyen software con licencia según una licencia incluida en la lista de Open Source Initiative.

Código abierto versus fuente disponible

Aunque la definición de OSI de "software de código abierto" es ampliamente aceptada, un pequeño número de personas y organizaciones utilizan el término para referirse al software cuya fuente está disponible para su visualización, pero que no puede modificarse ni redistribuirse legalmente. Dicho software se conoce más a menudo como fuente disponible o fuente compartida , un término acuñado por Microsoft en 2001. Mientras que en 2007 dos de las licencias de la iniciativa de fuente compartida de Microsoft fueron certificadas por la OSI , la mayoría de las licencias del programa SSI siguen siendo fuente . -disponible solamente .

código abierto

El código abierto es el acto de propagar el movimiento de código abierto , lo que generalmente se refiere a la liberación de software previamente propietario bajo una licencia de código abierto / software libre, pero también puede referirse a la programación de software de código abierto o la instalación de software de código abierto.

Los paquetes de software notables, anteriormente propietarios, que han sido de código abierto incluyen:

Antes de cambiar la licencia del software, los distribuidores generalmente auditan el código fuente en busca de código con licencia de terceros que tendrían que eliminar u obtener permiso para su nueva licencia. Las puertas traseras y otro malware también deben eliminarse, ya que pueden descubrirse fácilmente después de la liberación del código.

Aplicaciones actuales y adopción

"Migramos funciones clave de Windows a Linux porque necesitábamos un sistema operativo que fuera estable y confiable, uno que nos diera control interno. Entonces, si necesitábamos parchear, ajustar o adaptar, podíamos hacerlo".

Comunicado oficial de United Space Alliance , que gestiona los sistemas informáticos de la Estación Espacial Internacional (ISS), sobre por qué eligieron cambiar de Windows a Debian GNU/Linux en la ISS

Software de código abierto ampliamente utilizado

Los proyectos de software de código abierto son creados y mantenidos por una red de programadores voluntarios y se utilizan ampliamente en productos gratuitos y comerciales. Los principales ejemplos de productos de código abierto son Apache HTTP Server , la plataforma de comercio electrónico osCommerce , los navegadores de Internet Mozilla Firefox y Chromium (el proyecto en el que se realiza la gran mayoría del desarrollo del software gratuito Google Chrome ) y la suite ofimática completa LibreOffice . Uno de los productos de código abierto más exitosos es el sistema operativo GNU/Linux , un sistema operativo similar a Unix de código abierto , y su derivado Android , un sistema operativo para dispositivos móviles. En algunas industrias, el software de código abierto es la norma.

Extensiones para uso sin software

Si bien el término "código abierto" se aplicaba originalmente solo al código fuente del software, ahora se aplica a muchas otras áreas, como la ecología del código abierto , un movimiento para descentralizar las tecnologías para que cualquier ser humano pueda usarlas. Sin embargo, a menudo se aplica incorrectamente a otras áreas que tienen principios diferentes y en competencia, que se superponen solo parcialmente.

Los mismos principios que subyacen al software de código abierto se pueden encontrar en muchas otras empresas, como el hardware de código abierto , Wikipedia y la publicación de acceso abierto . En conjunto, estos principios se conocen como código abierto, contenido abierto y colaboración abierta : "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 valor económico, que ponen a disposición de los contribuyentes y no contribuyentes por igual".

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 los modelos de desarrollo más centralizados, como los que se utilizan típicamente en las empresas comerciales.

Ver también

Referencias

Otras lecturas

enlaces externos