¿En qué consiste el código abierto?

Se denomina código abierto a un modelo de producción descentralizada que permite que cualquier persona modifique y comparta tecnología porque su diseño es accesible de manera pública. El término se originó en el contexto del desarrollo de software para indicar que este cumple con ciertos criterios de distribución gratuita. Hoy en día, el término “forma de código abierto” designa un conjunto de valores más amplio que se basa en los principios del libre intercambio de información, la creación rápida de prototipos y el desarrollo colaborativo. Cualquiera puede aportar nuevas ideas y mejorar aún más la tecnología para que evolucione de forma orgánica.

¿Por qué es importante el código abierto?

La idea del código abierto surgió de la comunidad tecnológica. Las innovaciones técnicas necesitan una colaboración global para evolucionar. Por ejemplo, supongamos que un equipo de programación en los EE. UU. desarrolla una nueva tecnología de código abierto para una aplicación financiera. Otro equipo de programación en Australia modifica la tecnología con una nueva funcionalidad más adecuada para el sector de la salud. Luego, un tercer equipo en Asia desarrolla nuevos productos de código abierto que usan la tecnología original como componente central.

Tal intercambio de conocimientos e innovación colectiva beneficia a toda la comunidad. Bloquear la tecnología detrás de patentes, derechos de autor y licencias costosas limita el progreso. Muchos proyectos populares de código abierto han llevado a un rápido avance tecnológico en todo el mundo en las últimas décadas.

¿Cuáles son los principios del código abierto?

Los principios básicos detrás de cualquier proyecto de código abierto son los siguientes:

Comunidad

Una comunidad de código abierto es un grupo de personas que se unen para lograr un propósito común. Sus valores y objetivos compartidos guían la toma de decisiones e impulsan el proyecto de código abierto.

Transparencia

Los proyectos de código abierto aseguran que todos en la comunidad tengan acceso a la información y los materiales necesarios para hacer su mejor trabajo. Teniendo en cuenta el panorama general, los miembros del equipo toman decisiones más efectivas y se basan en las ideas y descubrimientos de los demás.

Colaboración abierta

Los proyectos comunitarios fomentan el trabajo en equipo, por lo que un grupo resuelve problemas que los individuos por sí solos no pueden. Por ejemplo, los miembros de cualquier iniciativa de código abierto aportan cambios para mejorar lo que alguien más ha construido. También puede establecer reglas para que otros puedan modificar la solución según sea necesario en el futuro.

Creación rápida de prototipos

Un proyecto de código abierto sigue un enfoque iterativo, en el que los miembros del equipo crean y comparten prototipos a intervalos frecuentes. La creación rápida de prototipos fomenta una cultura de experimentación. Puede mejorar y llevar adelante los cambios que funcionan y descartar los que no.

Meritocracia inclusiva

El movimiento de código abierto fomenta diversas perspectivas y conversaciones. La comunidad toma decisiones por consenso pero también prioriza el éxito. Las mejores ideas obtienen más apoyo y esfuerzo de la comunidad de código abierto.

¿Qué es el software de código abierto?

El software de código abierto es software con código fuente que cualquiera puede inspeccionar, modificar y mejorar. El código fuente es la parte del software que los programadores informáticos manipulan para cambiar el funcionamiento de una aplicación o para agregar nuevas características. Cualquiera que tenga acceso al código fuente de un software puede mejorar o personalizar la aplicación al añadir funciones o solucionar errores existentes. El software de código abierto aparece en la mayoría de las aplicaciones web y los dispositivos que usa hoy en día. Algunos ejemplos de software de código abierto son Linux (un sistema operativo de código abierto) y Mozilla Firefox (un navegador de Internet de código abierto).

¿Cuáles son las características del software de código abierto?

Las características de cualquier software de código abierto se alinean estrechamente con los valores del movimiento de código abierto.

Código abierto

El software de código abierto tiene que publicarse bajo una licencia de código abierto que cumpla con ciertos criterios de distribución, como los siguientes:

  • Sin restricciones para vender o regalar el software como componente de la distribución de software agregado
  • Tiene que incluir y permitir la distribución del código fuente
  • Tiene que permitir modificaciones y trabajos derivados
  • Los derechos adjuntos al programa tienen que aplicarse a todos sin discriminación

Diseño abierto

El diseño abierto garantiza un proceso transparente y abierto para diseñar y planificar un software. Se trata de dejar que la comunidad impulse el diseño del software y la hoja de ruta de funciones. Esto puede ser un desafío porque obtener el consenso de la comunidad puede ser un proceso que requiere mucho tiempo. Sin embargo, el diseño acordado por la comunidad conduce a un mejor producto que satisface de manera más efectiva las necesidades de los usuarios.

Desarrollo abierto

El desarrollo abierto es la adopción de procesos de desarrollo inclusivos y transparentes que permitan a todos participar como iguales. Los servicios de acceso público aportan visibilidad a las actividades de desarrollo. Por ejemplo, los proyectos de código abierto suelen adoptar un conjunto de estándares que establecen claramente las métricas con las que se evaluará una contribución. Esto permite que todas las actualizaciones de software reciban la misma consideración, ya sea que la actualización sea de un colaborador primerizo o de un desarrollador sénior.

Comunidad abierta

La comunidad abierta garantiza que la comunidad de desarrollo de software sea un entorno inclusivo donde se escuchen todas las voces y cualquiera pueda ascender a posiciones de liderazgo. Equilibra las necesidades de los desarrolladores y los usuarios al establecer objetivos comunes y crear conexiones sólidas.

¿Cuál es la diferencia entre el software de código abierto y otros tipos de software?

A veces, las organizaciones o personas que crean software prefieren controlarlo por razones comerciales. Mantienen los derechos de propiedad exclusivos del código fuente, lo que significa que sólo ellos pueden modificar el código para corregir errores o agregar nuevas funciones. Dicho software se denomina software propietario o software de código cerrado. Algunos ejemplos de productos de software propietario son Adobe Photoshop y Norton AntiVirus.

Software de código abierto frente al software de código cerrado

Las tres diferencias principales entre el software de código abierto y el software de código cerrado (o propietario) son las siguientes:

Fiabilidad

El software propietario depende de una sola organización o desarrollador que controla el código para mantenerlo actualizado, sin errores y en funcionamiento. Por otro lado, una comunidad más amplia mantiene software de código abierto. Algunos de los proyectos populares de código abierto cuentan con miles de colaboradores de todo el mundo que están probando exhaustivamente los antiguos cambios y los nuevos. Con frecuencia, esto hace que el código fuente abierto sea más confiable.

Seguridad

Cualquier código fuente puede tener fallas de seguridad que lo hagan vulnerable a los ciberataques. Sin embargo, una de las ventajas del software de código abierto es que cuenta con soluciones más rápidas. Una vez que el usuario u otros miembros de la comunidad informen de las vulnerabilidades de seguridad, los proyectos de código abierto publicarán una actualización de código en un plazo de uno o dos días. Si las empresas comerciales desarrollan software de código abierto, la alta visibilidad crea una urgencia para solucionar problemas e incluso puede conducir a un mejor software original.

Por el contrario, el software propietario tiene ciclos de actualización más largos por las siguientes razones:

  • El proveedor puede tener menos personas trabajando en un proyecto determinado.
  • El proveedor puede priorizar las consideraciones financieras sobre las fallas de seguridad.
  • El proveedor puede demorar la publicación de la actualización de seguridad porque prefiere agrupar varios cambios y publicarlos a la vez.

Licencias

Las empresas suelen vender software de código cerrado bajo una licencia patentada que describe el uso legalmente permitido del software. Nadie puede ver, editar o modificar el código propietario sin permiso. Por ejemplo, la licencia de propiedad puede otorgar permiso para uso personal o comercial, pero no para la reventa. También podría suponer una limitación a contratos específicos de proveedores por periodos de tiempo fijos.

Por otro lado, el software de código abierto está disponible bajo la licencia de código abierto, lo que significa que se puede usar, modificar y redistribuir con libertad. Los contratos de bloqueo de proveedores no existen o son muy flexibles. Los desarrolladores pueden descargar el software desde un sitio web público y ver todo el código fuente abierto en sus computadoras. Las licencias de código abierto también permiten a los usuarios hacer lo siguiente:

  • Modificar el código fuente para proyectos personales.
  • Redistribuir el código modificado si los usuarios continúan permitiendo que otros vean sus cambios.

¿Cuáles son los tipos de licencias de software de código abierto?

Aunque una licencia de código abierto es menos restrictiva que una licencia propietaria, el nivel y el rango de permisos varían según el tipo. Los siguientes son algunos tipos comunes de licencias de código abierto.

Licencia de dominio público

La licencia de dominio público indica que cualquier persona puede modificar, usar o comercializar el software sin restricciones. En la mayoría de los casos, los creadores de software de código abierto de dominio público tomaron la decisión intencional o voluntaria de no registrar los derechos de autor del software.

Licencia permisiva

Las licencias permisivas de código abierto contienen requisitos mínimos sobre cómo puede modificar o distribuir el software. Algunos ejemplos de este tipo de licencia son la licencia Apache y la licencia Berkeley Source Distribution (BSD). Aunque el software original tiene derechos de autor y es de código abierto, los usuarios pueden comercializar y redistribuir versiones modificadas.

Licencia pública general menor

La Licencia Pública General Menor (LGPL, por sus siglas en inglés) te permite usar componentes de código abierto sin restricciones. A menudo se puede acceder a estos componentes como módulos de código llamados bibliotecas, que puedes conectar a cualquiera de tus códigos y usar. Si usa el código fuente de LGPL en su aplicación, puede comercializarla. Sin embargo, si modifica el código de LGPL existente, tiene que redistribuirlo nuevamente bajo la misma licencia.

Licencias copyleft

Las licencias copyleft son las licencias de código abierto más comunes, y la Licencia Pública General (GPL, por sus siglas en inglés) es un ejemplo popular. Los términos de las licencias copyleft intentan restringir la comercialización:
 
  • Si modifica componentes de código abierto con copyleft, tiene que publicar todo el nuevo código fuente junto con la aplicación. Sin embargo, no tiene que hacer esto si usa la aplicación sólo internamente y nunca la publica.
  • Puede vender sus modificaciones de la GPL, pero el comprador puede redistribuirlas todavía más si lo desea.
  • Tiene que dar crédito a todos los autores de códigos anteriores en la declaración de derechos de autor de su nuevo código.

¿Quién regula el software de código abierto?

La Iniciativa para el Código Abierto (OSI, por sus siglas en inglés) es una organización global sin fines de lucro que educa y defiende todos los tipos de software de código abierto. Como organismo de estándares, mantiene la definición de código abierto, un documento que define legalmente las condiciones que hacen que cualquier software sea de código abierto.

Al seguir la definición de código abierto de la organización, puede obtener la marca comercial de licencia aprobada por la OSI. La marca crea confianza y anima a otros a contribuir y colaborar con nosotros. La OSI mantiene una lista de licencias aprobadas y aprueba nuevas licencias en la comunidad de código abierto. También regula el requisito de estándares abiertos para el software.

¿Qué son los estándares abiertos?

Los estándares abiertos son reglas de desarrollo de software que respaldan la uniformidad y la interoperabilidad en la tecnología. Están disponibles gratuitamente para su implementación, adopción y actualización. Como resultado, hacen que muchos aspectos de nuestra vida cotidiana sean más cómodos y prácticos.

Por ejemplo, los estándares permiten que todo tipo de máquinas se conecten a todos los tipos de enrutadores inalámbricos. Puede usar su computadora portátil para conectarse a Internet desde su hogar y desde su cafetería favorita, independientemente del enrutador que usen. Sin estándares, tendría que encontrar una cafetería con un enrutador que sea compatible con su computadora portátil.

Código abierto frente a estándares abiertos

Los estándares son las reglas, pautas y especificaciones para escribir ciertos tipos de código fuente, en lugar del código en sí. Los estándares de software tienen que seguir ciertas reglas para ser clasificados como código abierto. Por ejemplo, si necesita tecnología propietaria para implementar ciertos estándares, entonces esos estándares no son de código abierto.

¿Por qué existen versiones comerciales de software de código abierto?

Los creadores y otras empresas han monetizado muchos proyectos de código abierto mediante la venta de complementos, como análisis o seguridad, que atraen a empresas más grandes. Las empresas privadas pueden comercializar todo el software de dominio público al incluir estos programas de código abierto en el código de su aplicación. También pueden lanzar diferentes versiones del mismo software bajo diferentes licencias.

Por ejemplo, supongamos que una empresa lanza un sistema de gestión de base de datos tanto bajo la Licencia Pública General (GPL) como bajo una licencia propietaria. Cualquiera puede usar la versión GPL para el desarrollo de software siempre que haga que el nuevo código sea de código abierto. En cambio, la versión propietaria ofrece servicios de software adicionales, como los siguientes:

  • Un servicio de base de datos completamente administrado
  • Un servicio de copia de seguridad de datos de nivel empresarial
  • Cifrado de seguridad adicional
 
Puede comprar el software comercial para uso interno o pagar más tarifas para usarlo en sus productos y servicios.

¿Es lo mismo software de código abierto que software libre?

El término software libre se refiere a un movimiento social, también llamado movimiento de software libre, que tiene como objetivo obtener y garantizar ciertas libertades para los usuarios de software. Este movimiento funciona para garantizar que los usuarios tengan la libertad de hacer lo siguiente:

  • Poner en marcha el software.
  • Estudiar el software.
  • Modificar el software.
  • Compartir copias del software.
 
El movimiento de código abierto tiene sus raíces en el movimiento del software libre, que comenzó a principios de la década de 1980. Algunos grupos querían centrarse en las aplicaciones prácticas de la tecnología y sentían que el término software libre no era claro y desalentaba la adopción empresarial. Propusieron el término código abierto y finalmente lo popularizaron y estandarizaron al establecer la Iniciativa para el Código Abierto (OSI).

Software de código abierto frente al software libre

Actualmente, software libre se refiere a licencias de código abierto en el dominio público. El software de código abierto ahora incluye más tipos de licencias y puede imponer algunas restricciones a los usuarios, a diferencia del movimiento del software libre. Debido a que los términos freeware y software libre se usan indistintamente, es mejor referirse al software libre como software de dominio público.

Software de código abierto frente al software gratuito

El término freeware simplemente significa un producto comercial que está disponible de forma gratuita por un tiempo limitado. El freeware también puede ser una versión de prueba gratuita o una versión con funciones limitadas de un producto que, de lo contrario, requiere tarifas de suscripción. Incluso si obtiene acceso al freeware, no tendrá derecho a revenderlo, compartirlo o modificarlo de ninguna manera.

¿Cómo contribuye AWS al software de código abierto?

En AWS, creemos que el código abierto es bueno para todos. Estamos comprometidos a llevar el valor del código abierto a nuestros clientes y la excelencia operativa de AWS a las comunidades de código abierto. Los ingenieros de AWS desarrollan regularmente software de código abierto y contribuyen a miles de comunidades de esta índole en GitHub, Apache, Linux Foundation y más. A continuación, algunas otras formas en que respaldamos el código abierto:

  • Hemos trabajado arduamente para garantizar que los clientes puedan implementar y poner en funcionamiento su software de código abierto preferido en la nube. AWS admite una gama más amplia de tecnologías de código abierto que otros proveedores de la nube.
  • Tenemos varios proyectos a largo plazo en la comunidad de código abierto. Contribuimos continuamente con correcciones de errores, seguridad, escalabilidad, rendimiento y mejoras de características para estos proyectos.
  • Trabajamos en estrecha colaboración con empresas líderes de código abierto, desde HashiCorp hasta MongoDB, desde Confluent hasta Red Hat; y las ayudamos a superar las expectativas de los clientes.

Más información sobre nuestros proyectos de código abierto en Open source at AWS (Código abierto en AWS), o descubra más de 1200 proyectos de código abierto liderados por Amazon en GitHub.

Comience con el código abierto en AWS creando una cuenta gratuita hoy.

Próximos pasos de código abierto con AWS

Descubra otros recursos relacionados con el producto
Más información acerca del código abierto 
Servicios de AWS del nivel gratuito

Ver servicios de AWS del nivel gratuito

Ver servicios de bases de datos gratuitos 
Comience a crear en la consola

Comience a crear con AWS en la consola de administración de AWS.

Iniciar sesión