2. 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.
¿En qué consiste el código
abierto? Linux
3. ¿Por qué es importante el código abierto? Linux
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.
4. ¿Cuáles son los principios del código abierto? Linux
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.
5. 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.
6. ¿Qué es el software de código abierto? Linux
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).
7. ¿Qué es el software de código abierto? Linux
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).
8. ¿Cuáles son las características del software de código abierto? Linux
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.
9. 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.
10. ¿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
11. 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.
12. 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.
13. ¿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.
14. 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, esto no es necesario si se utiliza la aplicación
únicamente de forma interna y nunca se 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.
15. ¿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.
16. ¿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.
17. ¿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
18. ¿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 se refiere a 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.
19. ¿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.