Tabla de contenidos
Los geeks a menudo describen los programas como «código abierto» o «software libre». Si se pregunta exactamente qué significan estos términos y por qué son importantes, siga leyendo. (No, «software gratuito» no solo significa que puede descargarlo gratis).
Si un programa es de código abierto o no, no solo les importa a los desarrolladores, en última instancia, también les importa a los usuarios. Las licencias de software de código abierto brindan a los usuarios libertades que de otro modo no tendrían.
Crédito de la imagen: Quinn Dombrowski en Flickr
La definición de código abierto
Si un programa es de código abierto, su código fuente está disponible gratuitamente para sus usuarios. Sus usuarios, y cualquier otra persona, tienen la capacidad de tomar este código fuente, modificarlo y distribuir sus propias versiones del programa. Los usuarios también tienen la capacidad de distribuir tantas copias del programa original como deseen. Cualquiera puede usar el programa para cualquier propósito; no hay tarifas de licencia ni otras restricciones sobre el software. El OSI tiene una definición más detallada de «código abierto» en su sitio web .
Por ejemplo, Ubuntu Linux es un sistema operativo de código abierto. Puedes descargar Ubuntu, crear tantas copias como quieras y dárselas a tus amigos. Puede instalar Ubuntu en una cantidad ilimitada de sus computadoras. Puede crear mezclas del disco de instalación de Ubuntu y distribuirlas. Si estuviera particularmente motivado, podría descargar el código fuente de un programa en Ubuntu y modificarlo, creando su propia versión personalizada de ese programa, o del propio Ubuntu. Todas las licencias de código abierto le permiten hacer esto, mientras que las licencias de código cerrado le imponen restricciones.
Lo opuesto al software de código abierto es el software de código cerrado, que tiene una licencia que restringe a los usuarios y les impide el código fuente.
Firefox, Chrome, OpenOffice, Linux y Android son algunos ejemplos populares de software de código abierto, mientras que Microsoft Windows es probablemente el software de código cerrado más popular que existe.
Código abierto frente a software libre
Las aplicaciones de código abierto generalmente están disponibles de forma gratuita, aunque no hay nada que impida al desarrollador cobrar por las copias del software si permiten la redistribución de la aplicación y su código fuente posteriormente.
Sin embargo, eso no es a lo que se refiere el «software libre». Lo «libre» en software libre significa » libre como en libertad «, no «gratis como en cerveza». El campo de software libre, dirigido por Richard Stallman y la Free Software Foundation, se centra en la ética y la moral del uso de software que puede ser controlado y modificado por el usuario. En otras palabras, el campo del software libre se centra en las libertades del usuario.
Richard Stallman. Imagen de Fripog en Flickr .
El movimiento del software de código abierto se creó para centrarse en razones más pragmáticas para elegir este tipo de software. Los defensores del código abierto querían centrarse en los beneficios prácticos del uso de software de código abierto que atraería más a las empresas que a la ética y la moral.
En última instancia, los defensores del software libre y de código abierto están desarrollando el mismo tipo de software, pero no están de acuerdo con la mensajería.
Tipos de licencias
Hay muchas licencias diferentes utilizadas por proyectos de código abierto, dependiendo de cuál prefieran los desarrolladores para su programa.
La GPL, o Licencia Pública General GNU, es ampliamente utilizada por muchos proyectos de código abierto, como Linux. Además de todas las definiciones anteriores de código abierto, los términos de la GPL especifican que, si alguien modifica un programa de código abierto y distribuye un trabajo derivado, también debe distribuir el código fuente de su trabajo derivado. En otras palabras, nadie puede tomar código de fuente abierta y crear un programa de fuente cerrada a partir de él; debe publicar sus cambios en la comunidad. Microsoft se refirió a la GPL como «viral» por esta razón, ya que obliga a los programas que incorporan código GPL a publicar su propio código fuente. Por supuesto, los desarrolladores de un programa pueden optar por no utilizar el código GPL si esto representa un problema.
Algunas otras licencias, como la licencia BSD, imponen menos restricciones a los desarrolladores. Si un programa tiene la licencia BSD, cualquiera puede incorporar el código fuente del programa en otro programa. No tienen que devolver sus cambios a la comunidad. Algunas personas ven que esto es incluso más «gratuito» que la licencia GPL, ya que les da a los desarrolladores la libertad de incorporar el código en sus propios programas de código cerrado, mientras que algunas personas lo ven como menos «gratis» porque les quita derechos. de los usuarios finales del programa derivado.
Beneficios para los usuarios
Esto no es todo algo seco y sin importancia que solo les importa a los desarrolladores. El beneficio más obvio del software de código abierto es que se puede obtener de forma gratuita. El ejemplo de Ubuntu Linux anterior lo deja claro: a diferencia de Windows, puede instalar o distribuir tantas copias de Ubuntu como desee, sin restricciones. Esto puede ser servidores particularmente útiles: si está configurando un servidor, puede instalar Linux en él. Si está configurando un grupo de servidores virtualizados, puede duplicar fácilmente un solo servidor Ubuntu. No tiene que preocuparse por las licencias y cuántas instancias de Linux puede ejecutar.
Un programa de código abierto también es más flexible. Por ejemplo, la nueva interfaz de Windows 8 decepcionó a muchos usuarios de Windows de escritorio desde hace mucho tiempo. Debido a que Windows es de código cerrado, ningún usuario de Windows puede tomar la interfaz de Windows 7, modificarla y hacer que funcione correctamente en Windows 8. (Algunos usuarios de Windows lo están intentando, pero este es un proceso minucioso de ingeniería inversa y modificación de archivos binarios. )
Cuando un escritorio Linux como Ubuntu presenta una nueva interfaz de escritorio de la que algunos usuarios no son fanáticos, los usuarios tienen más opciones. Por ejemplo, cuando se lanzó GNOME 3, muchos usuarios de escritorio de Linux estaban igualmente apagados. Algunos llevaron el código a la versión anterior, GNOME 2, y lo modificaron para que se ejecutara en las últimas distribuciones de Linux: esto es MATE . Algunos llevaron el código a GNOME 3 y lo modificaron para que funcionara de la manera que preferían: esto es Cinnamon . Algunos usuarios simplemente cambiaron a escritorios alternativos existentes. Si Windows fuera de código abierto, los usuarios de Windows 8 tendrían más opciones y flexibilidad. Solo eche un vistazo a CyanogenMod, una popular distribución de Android impulsada por la comunidad que agrega funciones y soporte para nuevos dispositivos.
El software de código abierto también permite a los desarrolladores “apoyarse en los hombros de gigantes” y crear su propio software. Sea testigo de Android y Chrome OS, que son sistemas operativos basados en Linux y otro software de código abierto. El núcleo del OS X de Apple, y por lo tanto de iOS, también se construyó sobre código de fuente abierta. Valve está trabajando arduamente para portar su plataforma de juegos Steam a Linux, ya que esto les permitiría crear su propio hardware y controlar su propio destino de una manera que no es posible en Windows de Microsoft.
Esta no es una descripción exhaustiva, se han escrito libros completos sobre este tema, pero ahora debería tener una mejor idea de qué es realmente el software de código abierto y por qué es útil para usted.