Inicio
Temas
Código abierto
El open source software (OSS) o software de código abierto es un software desarrollado y mantenido a través de la colaboración abierta. Está disponible para que cualquiera pueda usarlo, examinarlo, alterarlo y redistribuirlo como quiera, generalmente sin costo alguno.
El código abierto contrasta con las aplicaciones de software patentadas o de código cerrado, como Microsoft Word o Adobe Illustrator, por ejemplo. El creador o titular de los derechos de autor vende el software patentado o de código cerrado a los usuarios finales, a quienes no se les permite editar, mejorar ni redistribuir el producto, excepto según lo especifique el titular de los derechos de autor.
El término "código abierto" también se refiere de manera más general a un enfoque comunitario para crear cualquier propiedad intelectual, como software, a través de la colaboración abierta, la inclusión, la transparencia y las actualizaciones públicas frecuentes.
Conozca los puntos débiles más comunes de los clientes a los que la IA puede hacer frente, qué capacidades están disponibles actualmente y cómo IBM Z es la plataforma de IA ideal.
Hasta mediados de la década de 1970, el código de computadora se consideraba implícito en el funcionamiento del hardware de la computadora y no como una propiedad intelectual única sujeta a la protección de los derechos de autor. Las organizaciones programaban su propio software y el código compartido era una práctica común.
La Comisión sobre Nuevos Usos Tecnológicos de Obras con Derechos de Autor (CONTU) se estableció en 1974 y concluyó que el código de software era una categoría de trabajo creativo adecuado para la protección de derechos de autor. Esto impulsó el crecimiento de la publicación independiente de software como industria, con el código fuente patentado como fuente principal de ingresos. A medida que la computación personal trajo aplicaciones a todos los escritorios corporativos y muchos hogares, el mercado de software se volvió más competitivo y los editores de software tuvieron que estar atentos a las infracciones de derechos de autor.
En 1983 comenzó una especie de rebelión contra las restricciones y limitaciones del software propietario. El programador Richard Stallman se irritó ante la idea de que los usuarios no podían personalizar el software propietario de la forma que consideraran adecuada para realizar su trabajo. Stallman sintió que "el software debería ser gratuito, como en el habla, no en la cerveza", y defendió la noción de software que estaba disponible gratuitamente para su personalización.
Stallman fundó la Free Software Foundation y seguiría impulsando el desarrollo de una alternativa de código abierto al sistema operativo Unix propiedad de AT&T, entre otras aplicaciones. También innovó la primera licencia de software con copyleft, la Licencia Pública General GNU (GPL), que requería que cualquier persona que mejorara su código fuente también publicara su versión editada libremente para todos.
El ensayo de Eric S. Raymond de 1997 titulado "The Cathedral and the Bazaar" se considera otro punto de inflexión en el movimiento del software libre. Raymond contrastó el enfoque cerrado y de arriba hacia abajo típico del desarrollo de software propietario donde todo el desarrollo estaba a cargo de un grupo central (al que llamó The Cathedral), versus el desarrollo público abierto y libremente compartido a través de Internet (The Bazaar). Poco después, Netscape Corporation lanzó su código de navegador Mozilla como código abierto y el movimiento de código abierto ganó legitimidad.
Debido a que muchos sintieron que el término "software libre" de Stallman enfatizaba inapropiadamente "sin costo" como el principal valor del software, el término "código abierto" fue adoptado en 1999. La iniciativa de código abierto se creó para defenderlo. La organización también ha establecido reglas básicas para la industria a través de la definición de código abierto y aloja licencias de código abierto compatibles. Hoy en día, los términos software libre, software de código abierto (o OSS), software libre y de código abierto (FOSS) y software de código libre/libre-abierto (FLOSS) se refieren todos a lo mismo: software con código fuente disponible para uso público y personalización.
El software de código abierto ahora juega un papel vital en la informática, con tecnologías de código abierto que proporcionan la base de Internet, de la informática empresarial y de la informática personal. Prácticamente todos los dispositivos informáticos ahora contienen código fuente abierto de muchos tipos, generalmente adoptado por los desarrolladores para realizar operaciones fundamentales y, a menudo, funciones más avanzadas.
Algunas de las aplicaciones de software de código abierto más frecuentes incluyen:
El sistema operativo Linux, una alternativa de código abierto al sistema operativo Unix
Mozilla Firefox, un navegador web originalmente basado en Netscape Navigator
LibreOffice, un conjunto de aplicaciones de productividad de oficina que rivaliza con Microsoft Office
GIMP (Programa de manipulación de imágenes GNU), una alternativa de código abierto a Adobe Photoshop
VLC Media Player, una aplicación multiplataforma para ver videos
Los programas de código abierto también se utilizan ampliamente en redes, empresas y computación en la nube. Las categorías de software de código abierto citadas por los profesionales de TI como las más comunes dentro de las implementaciones de sus organizaciones incluyen:
Lenguajes y marcos de programación
Bases de datos y tecnologías de datos
Sistemas operativos
Repositorios públicos basados en Git
Infraestructuras para inteligencia artificial/machine learning/deep learning
Las razones para elegir software de código abierto pueden variar significativamente de una persona a otra y de una organización a otra. En muchos casos, los usuarios finales desconocen por completo los programas de código abierto en sus computadoras o dispositivos móviles. También es común que los usuarios finales descarguen una aplicación gratuita como el navegador Mozilla Firefox o una aplicación de Android. Estos usuarios simplemente quieren la funcionalidad del software, sin intención de reescribir o incluso mirar el código fuente.
Una empresa, por otro lado, podría elegir el software de código abierto en lugar de una alternativa patentada por su bajo (o nulo) costo, la flexibilidad para personalizar el código fuente o la existencia de una gran comunidad que respalda la aplicación. Los programadores profesionales o aficionados pueden ofrecer voluntariamente sus habilidades de desarrollo y prueba a un proyecto de código abierto, a menudo para mejorar su reputación y conectarse con otros en el campo. Ahora es común que las empresas proporcionen empleados remunerados a proyectos de código abierto para respaldar la vitalidad del desarrollo de software de código abierto y ayudar a garantizar productos de alta calidad.
Si bien los productos de código abierto pueden ahorrar a las empresas el costo de las licencias, pueden incurrir en otros costos, por lo general para la integración de la red, el usuario final y el soporte de TI, y otros servicios que generalmente se incluyen con el software propietario. Aún así, muchas empresas consideran que el software empresarial de código abierto es al menos tan confiable y seguro como el software propietario, y se sienten más cómodos con las soluciones de código abierto porque pueden inspeccionar el código del programa y comprender exactamente lo que están agregando a su infraestructura informática.
El modelo de desarrollo de código abierto abarca toda la gama. Una gran cantidad de programas de código abierto han sido originados por programadores independientes o pequeños equipos de programadores. Por ejemplo, Guido van Rossum dijo que comenzó a trabajar en el popular lenguaje de programación Python porque tenía tiempo libre durante la semana navideña de 1989. De manera similar, el servidor web Apache comenzó con un pequeño grupo de programadores que trabajaban juntos para mejorar el software del servidor escrito originalmente por Robert McCool como estudiante universitario en un programa de supercomputación.
A medida que estos y otros proyectos de código abierto han madurado, han involucrado a muchos miles de programadores que contribuyeron con innumerables líneas de código, además de probar el software, escribir documentación, crear el sitio web del proyecto y más.
En el otro extremo del espectro, los ingenieros de Google iniciaron la plataforma de orquestación de contenedores de Kubernetes, como una implementación de tecnología de código abierto originalmente creada internamente para equilibrar las cargas de trabajo del servidor de Google. Google llevó el proyecto a la comunidad de código abierto mediante la creación de un nuevo consorcio dentro de la Fundación Linux llamado Cloud Native Computing Foundation (CNCF). Desde entonces, miles de desarrolladores han trabajado en el kernel en evolución, incluidos representantes de las principales empresas informáticas.
Con el tiempo, un ecosistema tiene que soportar proyectos de software de código abierto. Los servicios de hosting de código, como GitHub, Bitbucket, SourceForge y Google Code, proporcionan repositorios centrales, control de versiones y otras funciones que permiten que diversos grupos de trabajo distribuidos colaboren y gestionen proyectos de código abierto. Solo GitHub ha registrado 83 millones de desarrolladores y más de 20 millones de repositorios de proyectos abiertos (cada repositorio representa una rama única de un proyecto de código abierto).
Han surgido varias organizaciones sin fines de lucro para apoyar y financiar el mantenimiento continuo de proyectos de código abierto, como la Fundación de software libre y la Iniciativa de código abierto (OSI). Y hay muchas docenas de bases para aplicaciones específicas, como la Fundación Linux, que ofrecen soporte a programas específicos de código abierto y proyectos relacionados que apoyan esas tecnologías.
"Código abierto" y "propietario" representan enfoques alternativos a la titularidad de la propiedad intelectual (IP) incorporada en una aplicación. Con el código abierto, la propiedad intelectual está destinada a beneficiar al público sin ánimo de lucro asociado a la propiedad intelectual. Por el contrario, el software propietario monetiza el valor de la propiedad intelectual (mediante el cobro de una tarifa de suscripción o licencia propietaria).
La idea detrás del software de código abierto, sin embargo, no es principalmente un mensaje contra las ganancias o el capitalismo, sino que, en manos de su comunidad de usuarios, el software alcanzará naturalmente su mayor potencial al brindar más valor a un número cada vez mayor de usuarios. El proyecto de código abierto más grande de la historia, Internet, se utilizó originalmente para compartir documentos académicos, todo más allá de ese caso de uso limitado es el resultado de innumerables mentes que imaginan e implementan nuevas posibilidades.
Si bien el software de código abierto se pone a disposición del público de forma gratuita, no es de dominio público, una categoría legal de propiedad intelectual desprovista de cualquier derecho de propiedad.
A través de un giro ingenioso de los derechos de autor tradicionales, los creadores de software de código abierto originaron lo que llamaron "copyleft", que permite el uso público ilimitado, la alteración y la redistribución del código fuente, pero evita que otros conviertan obras basadas en el código en software patentado con derechos de autor (más sobre esto a continuación). Sin embargo, hoy en día existen más de 100 tipos diferentes de licencias de software de código abierto, algunas de las cuales permiten que los trabajos derivados creados en código fuente abierto tengan derechos de autor y se vendan. Esto amplía las oportunidades comerciales para quienes crean software de código abierto.
Una vez más, la GPL de Stallman estipulaba que cualquiera podía reescribir su software como mejor le pareciera, siempre que el código resultante se publicara de forma gratuita para que todos lo usaran. De esta manera, la licencia copyleft de GPL creó un nuevo tipo de propiedad intelectual de dominio casi público, pero con restricciones legalmente exigibles impuestas por el titular original de los derechos de autor para proteger contra reclamos posteriores de propiedad restrictiva por parte de otros.
Desde entonces, se han desarrollado numerosas licencias de software de código abierto. La Iniciativa de código abierto enumera más de 100 licencias de código abierto aprobadas. Algunas de estas permiten crear productos propietarios a partir de código fuente abierto.
Las licencias de código abierto a veces se clasifican como "permisivas", es decir, que permiten a los usuarios registrar los derechos de autor de sus propias obras, o "protectoras", como copyleft. Las licencias de código abierto MIT y BSD son las licencias permisivas más utilizadas, mientras que GPL sigue siendo una de las licencias copyleft protectoras más utilizadas. Numerosas licencias alternativas son "compatibles con" GPL o MIT, lo que significa que el código de software escrito bajo esta licencia se puede usar en otra aplicación que use la licencia GPL o MIT.
Si bien parece que la creación de software de código abierto es una empresa noble, incluso caritativa, hay trabajo involucrado en su creación, mantenimiento y evolución, y hacer este trabajo es una cuestión de dinero. Afortunadamente, hay varias formas en que los proyectos de código abierto, y las empresas construidas a su alrededor, pueden prosperar.
Una ruta es por medio de contribuciones caritativas a fundaciones. Las corporaciones tienen interés en respaldar el software de código abierto, ya que proporciona una funcionalidad tan importante con ahorros de costos tan significativos y, a menudo, contribuirá con fondos e incluso dedicará empleados asalariados a trabajar en proyectos de código abierto. Pero esto proporciona principalmente el mantenimiento a largo plazo de la tecnología y no genera ganancias para el proyecto de código abierto.
Un modelo comercial más común es cobrar a los clientes por el soporte y la experiencia. En 1993, Red Hat comenzó a vender su redistribución empresarial del sistema operativo Linux, cobrando a los clientes por soporte y características adicionales destinadas específicamente a resolver problemas que una empresa podría encontrar al implementar un sistema operativo no curado y actualizado continuamente. En 2012, Red Hat se convirtió en la primera empresa de software de código abierto en superar los mil millones de dólares en ingresos. En 2019, IBM Corporation adquirió Red Hat por 34,000 millones de dólares, la adquisición de software más grande de la historia.
WordPress, originalmente una plataforma de blogs, ahora se usa ampliamente para crear, gestionar y alojar sitios web. WordPress funciona como una plataforma basada en la nube o de software como servicio (SaaS) y cobra a los clientes tarifas de suscripción escalonadas por hosting web, soporte y funcionalidad adicional del sitio (por ejemplo, capacidad de comercio electrónico, herramientas de SEO).
Otros creadores de software abierto no cobran nada por su software, pero obtienen ingresos significativos debido al tráfico que genera su software. Por ejemplo, GitHub obtiene ingresos en función de la publicidad que aparece en su sitio. Mozilla Firefox obtiene ingresos de los motores de búsqueda que admite.
Las soluciones de IBM y Red Hat pueden aumentar la productividad, reducir costos y mejorar los resultados comerciales.
IBM® LinuxONE es un servidor Linux® de nivel empresarial que reúne la experiencia de IBM para construir sistemas empresariales con la apertura del sistema operativo Linux.
El sistema operativo Linux en la plataforma de mainframe IBM Z ofrece privacidad de datos y ciberseguridad en una multinube híbrida.
Con Enterprise Linux en IBM Power, puede amplificar los diversos beneficios de la tecnología de código abierto (confiabilidad, seguridad y escalabilidad) con opciones de despliegue nativas de la nube líderes en la industria.
Desde blockchain hasta contenedores, pasando por IA y sistemas operativos, nuestros desarrolladores están creando proyectos emergentes de código abierto y rodeándolos de código, documentos y materiales de apoyo.
Mejorar su cadena de suministro de software puede minimizar significativamente el riesgo de quedar comprometido.
Los desarrolladores, arquitectos y administradores de sistemas eligen productos basados en código abierto como IBM watsonx para representar sus necesidades en comunidades estratégicas clave de código abierto. Descubra las tecnologías centrales de código abierto que hacen que la plataforma de IA de IBM sea una plataforma nativa de la nube de alto rendimiento.