¿Qué es el software de código abierto y por qué es importante?
Los geeks a menudo describen los programas como "código abierto" o "software libre". Si te estás preguntando qué significan exactamente estos términos y por qué son importantes, sigue leyendo. (No, "software libre" no solo significa que puedes descargarlo gratis).
Si un programa es de código abierto o no, no solo es importante para los desarrolladores, en última instancia también es importante para los usuarios. Las licencias de software de código abierto otorgan 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 en 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. Puedes instalar Ubuntu en una cantidad ilimitada de tus computadoras. Puedes crear remixes del disco de instalación de Ubuntu y distribuirlos. Si estaba 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 la de 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 mantiene el código fuente de ellos..
Firefox, Chrome, OpenOffice, Linux y Android son algunos ejemplos populares de software de código abierto, mientras que Microsoft Windows es probablemente la pieza más popular de software de código cerrado 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 luego permiten la redistribución de la aplicación y su código fuente..
Sin embargo, eso no es a lo que se refiere el "software libre". El "libre" en software libre significa "libre como en libertad", no "gratis como en cerveza". El campamento de software libre, dirigido por Richard Stallman y la Free Software Foundation, se centra en la ética y la moral de usar software que puede ser Controlado y modificado por el usuario. En otras palabras, el campamento de software libre se centra en las libertades de los usuarios..
Richard Stallman. Imagen de Fripog en Flickr..
El movimiento de software de código abierto fue creado para enfocarse en razones más pragmáticas para elegir este tipo de software. Los defensores de la fuente abierta querían centrarse en los beneficios prácticos de usar software de fuente abierta que fuera más atractivo para las empresas que para 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 los proyectos de código abierto, dependiendo de lo que los desarrolladores prefieren para su programa.
La GPL, o licencia pública general de 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 para su trabajo derivado. En otras palabras, nadie puede tomar código de código abierto y crear un programa de código cerrado a partir de él; deben devolver sus cambios a 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 lanzar su propio código fuente. Por supuesto, los desarrolladores de un programa pueden optar por no usar el código GPL si esto es un problema..
Algunas otras licencias, como la licencia BSD, imponen menos restricciones a los desarrolladores. Si un programa tiene licencia bajo la licencia BSD, cualquiera puede incorporar el código fuente del programa a 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 otras personas lo ven como menos "libre" porque quita los derechos De los usuarios finales del programa derivado..
Beneficios para los usuarios
Esto no es todo material seco, sin importancia que solo 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. Estos pueden ser servidores particularmente útiles: si está configurando un servidor, simplemente puede instalar Linux en él. Si está configurando un clúster virtualizado de servidores, puede duplicar fácilmente un solo servidor Ubuntu. No tiene que preocuparse por las licencias y la cantidad de instancias de Linux que 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 de Linux como Ubuntu introduce 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 ejecute en las últimas distribuciones de Linux, esto es MATE. Algunos llevaron el código a GNOME 3 y lo modificaron para que funcione de la forma que prefieran: esto es Canela. Algunos usuarios acaban de cambiar a escritorios alternativos existentes. Si Windows fuera de código abierto, los usuarios de Windows 8 tendrían más opciones y flexibilidad. Eche un vistazo a CyanogenMod, una distribución popular de Android impulsada por la comunidad que agrega funciones y soporte para nuevos dispositivos.
El software de fuente abierta también permite a los desarrolladores "pararse sobre 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 iOS, también se construyó con código de fuente abierta. Valve está trabajando furiosamente para migrar 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..