El movimiento de software de código abierto es un movimiento social que apoya el uso de licencias de código abierto para algunos o todos los programas, como parte de la noción más amplia de colaboración abierta . [1] El movimiento de código abierto se inició para difundir el concepto/idea del software de código abierto .
Los programadores que apoyan la filosofía del movimiento de código abierto contribuyen a la comunidad de código abierto escribiendo e intercambiando voluntariamente código de programación para el desarrollo de software . [2] El término código abierto requiere que nadie pueda discriminar a un grupo al no compartir el código editado o impedir que otros editen su trabajo ya editado. Este enfoque del desarrollo de software permite que cualquiera obtenga y modifique código de código abierto. Estas modificaciones se distribuyen de nuevo a los desarrolladores dentro de la comunidad de código abierto de personas que están trabajando con el software. De esta manera, se revelan las identidades de todos los individuos que participan en la modificación del código y la transformación del código se documenta a lo largo del tiempo. [3] Este método dificulta establecer la propiedad de un fragmento de código en particular, pero está en consonancia con la filosofía del movimiento de código abierto. Estos objetivos promueven la producción de programas de alta calidad, así como el trabajo cooperativo con otras personas de ideas similares para mejorar la tecnología de código abierto. [2]
La etiqueta de código abierto fue creada y adoptada por un grupo de personas del movimiento del software libre en una sesión de estrategia [4] celebrada en Palo Alto, California , como reacción al anuncio de Netscape en enero de 1998 de una liberación del código fuente de Navigator . Una de las razones detrás del uso del término fue que "la ventaja de utilizar el término código abierto es que el mundo empresarial generalmente intenta evitar que se instalen tecnologías libres". [5] Las personas que adoptaron el término aprovecharon la oportunidad antes de la liberación del código fuente de Navigator para liberarse de las connotaciones ideológicas y de confrontación del término "software libre". Más tarde, en febrero de 1998, Bruce Perens y Eric S. Raymond fundaron una organización llamada Open Source Initiative (OSI) "como una organización educativa, de defensa y de administración en un momento clave en la historia de esa cultura". [6]
En un principio no existía diferencia entre hardware y software. El usuario y el programador de un ordenador eran uno solo. Cuando IBM presentó el primer ordenador electrónico comercial en 1952, la máquina era difícil de mantener y cara. Dejando a un lado el precio de la máquina, el problema era el software. En 1952, todos los propietarios de ordenadores se reunieron y crearon un conjunto de herramientas. La colaboración se dividió en un grupo llamado PACT (Proyecto para el Avance de las Técnicas de Codificación). Tras superar este obstáculo, en 1956, la administración de Eisenhower decidió poner restricciones a los tipos de ventas que AT &T podía realizar. Esto no impidió que los inventores desarrollaran nuevas ideas para acercar el ordenador a la población en general. El siguiente paso fue hacer que el ordenador fuera más asequible, algo que se fue desarrollando poco a poco en distintas empresas. Después tuvieron que desarrollar un software que pudiera alojar a varios usuarios. El centro de computación del MIT desarrolló uno de los primeros sistemas, el CTSS (Sistema de Tiempo Compartido Compatible). Esto sentó las bases para muchos más sistemas y lo que ahora llamamos el movimiento del software de código abierto. [7]
El movimiento de código abierto es una derivación del movimiento de software libre que comenzó a fines de los años 80 con el lanzamiento del proyecto GNU por Richard Stallman . [8] Stallman es considerado dentro de la comunidad de código abierto como alguien que comparte un papel clave en la conceptualización del código fuente libremente compartido para el desarrollo de software. [3] El término " software libre " en el movimiento de software libre implica libertad de intercambio y modificación de software. El término no se refiere a ninguna libertad monetaria. [3] Tanto el movimiento de software libre como el movimiento de código abierto comparten esta visión del libre intercambio de código de programación , y esta es a menudo la razón por la que a menudo se hace referencia a ambos movimientos en la literatura como parte de las comunidades FOSS o "Software libre y abierto" o FLOSS "Free/Libre Open-Source".
Estos movimientos comparten diferencias fundamentales en su visión del software abierto. La principal diferencia que divide a los grupos es la relación entre el software de código abierto y el software propietario. A menudo, los creadores de software propietario , como Microsoft , pueden hacer esfuerzos para apoyar el software de código abierto para seguir siendo competitivos. [9] Los miembros de la comunidad de código abierto están dispuestos a coexistir con los creadores de software propietario [3] y sienten que la cuestión de si el software es de código abierto es una cuestión de practicidad. [10]
En cambio, los miembros de la comunidad del software libre mantienen la visión de que todo software es parte de la libertad de expresión [3] y que el software propietario es injusto y poco ético. [3] El movimiento del software libre defiende abiertamente esta creencia mediante charlas que denuncian el software propietario. En general, la comunidad se niega a apoyar el software propietario. Además, estos desarrolladores tienen motivaciones externas. Una de ellas es que, cuando un programador corrige un error o crea un programa, beneficia a otros en un entorno de código abierto. Otra motivación es que un programador puede trabajar en múltiples proyectos que le resulten interesantes y agradables. La programación en el mundo del código abierto también puede conducir a ofertas de trabajo comerciales o a la entrada en la comunidad de capital de riesgo. Estas son sólo algunas de las razones por las que los programadores de código abierto siguen creando y desarrollando software. [11]
Si bien el movimiento del software libre y el movimiento del código abierto son conscientes de que comparten similitudes en cuanto a recomendaciones prácticas en materia de código abierto, el movimiento del software libre sigue diferenciándose fervientemente del movimiento del código abierto por completo. [12] El movimiento del software libre sostiene que tiene actitudes fundamentalmente diferentes respecto de la relación entre el código abierto y el software propietario. Sin embargo, la comunidad del software libre no ve a la comunidad del código abierto como su blanco de quejas, sino el software propietario en sí. [3]
El movimiento de código abierto se ha enfrentado a una serie de desafíos legales. Las empresas que gestionan productos de código abierto tienen algunas dificultades para proteger sus marcas registradas. Por ejemplo, el alcance de la conjetura de la " licencia implícita " sigue sin estar claro y puede comprometer la capacidad de una empresa para patentar producciones realizadas con software de código abierto. Otro ejemplo es el caso de las empresas que ofrecen complementos para su compra; los licenciatarios que realizan complementos al código abierto que son similares a los que se venden pueden tener inmunidad frente a demandas por patentes.
En el caso " Jacobsen v. Katzer ", el demandante demandó al demandado por no incluir los avisos de atribución requeridos en su versión modificada del software, violando así la licencia. El demandado alegó que se había violado la licencia artística por no cumplir con las condiciones de uso del software, pero la redacción del aviso de atribución determinó que no era así. "Jacobsen v. Katzer" estableció la igualdad del software de código abierto con el software propietario ante los ojos de la ley.
En un caso judicial que acusaba a Microsoft de ser un monopolio, se introdujeron Linux y software de código abierto en el tribunal para demostrar que Microsoft tenía competidores válidos y estaba agrupado con Apple . [ cita requerida ]
Existen recursos disponibles para quienes participan en proyectos de código abierto y necesitan asesoramiento legal. El Software Freedom Law Center ofrece una introducción a las cuestiones legales del código abierto. La International Free and Open Source Software Law Review ofrece información revisada por pares para abogados sobre cuestiones relacionadas con el software libre.
La Iniciativa de Código Abierto (OSI) fue fundamental en la formalización del movimiento de código abierto. La OSI fue fundada por Eric Raymond y Bruce Perens en febrero de 1998 con el propósito de proporcionar educación general y defensa de la etiqueta de código abierto a través de la creación de la Definición de Código Abierto que se basó en las Directrices de Software Libre de Debian. La OSI se ha convertido en uno de los principales defensores y promotores del movimiento de código abierto. [6]
En febrero de 1998, el movimiento de código abierto fue adoptado, formalizado y encabezado por la Iniciativa de Código Abierto (OSI), una organización formada para comercializar software "como algo más apto para el uso comercial empresarial" [3]. La OSI solicitó registrar "Código Abierto" en la Oficina de Patentes y Marcas de los Estados Unidos, pero se le denegó debido a que el término era genérico y/o descriptivo. En consecuencia, la OSI no posee la marca registrada "Código Abierto" en un sentido nacional o internacional, aunque sí reivindica derechos de marca registrada de derecho consuetudinario sobre el término. [2] La principal herramienta que adoptaron para esto fue la Definición de Código Abierto . [13]
La etiqueta de código abierto fue concebida en una sesión de estrategia que se celebró el 3 de febrero de 1998 en Palo Alto, California y el 8 de abril del mismo año, los asistentes a la Cumbre de Software Libre de Tim O'Reilly votaron para promover el uso del término código abierto . [6]
En general, los desarrollos de software que han surgido del movimiento de código abierto no han sido exclusivos del campo de la informática, pero han tenido éxito en el desarrollo de alternativas al software propietario. Los miembros de la comunidad de código abierto mejoran el código y escriben programas que pueden rivalizar con gran parte del software propietario que ya está disponible. [3]
El discurso retórico utilizado en los movimientos de código abierto se está ampliando para incluir a un grupo más amplio de usuarios no expertos, así como a organizaciones de apoyo. Varios grupos organizados, como Creative Commons y agencias de desarrollo global, también han adoptado los conceptos de código abierto según sus propios objetivos y para sus propios fines. [14]
Los factores que afectan la formalización legal del movimiento de código abierto se basan principalmente en el reciente debate político sobre los derechos de autor, la apropiación y la propiedad intelectual. [15]
Históricamente, los investigadores han caracterizado a los colaboradores de código abierto como un grupo centralizado con forma de cebolla. [16] El centro de la cebolla está formado por los colaboradores principales que impulsan el proyecto a través de grandes cantidades de código y decisiones de diseño de software. La segunda capa más importante son los colaboradores que responden a las solicitudes de incorporación de cambios y los informes de errores. La tercera capa más alejada son los colaboradores que principalmente envían informes de errores. La capa más alejada son los que vigilan el repositorio y los usuarios del software que se genera. Este modelo se ha utilizado en la investigación para comprender el ciclo de vida del software de código abierto, comprender a los colaboradores de los proyectos de software de código abierto, cómo las herramientas como pueden ayudar a los colaboradores en los distintos niveles de participación en el proyecto y comprender mejor cómo la naturaleza distribuida del software de código abierto puede afectar a la productividad de los desarrolladores. [17] [18] [19]
Algunos investigadores no están de acuerdo con este modelo. El trabajo de Crowston et al. ha descubierto que algunos equipos están mucho menos centralizados y siguen un patrón de flujo de trabajo más distribuido. [17] Los autores informan que existe una correlación débil entre el tamaño del proyecto y la centralización, ya que los proyectos más pequeños están más centralizados y los proyectos más grandes muestran una menor centralización. Sin embargo, los autores solo analizaron los informes y la corrección de errores, por lo que no queda claro si este patrón solo está asociado con la detección y corrección de errores o si la centralización se vuelve más distribuida con el tamaño para cada aspecto del paradigma de código abierto.
Comprender la centralización de un equipo frente a su naturaleza distribuida es importante, ya que puede servir de base para el diseño de herramientas y ayudar a los nuevos desarrolladores a comprender la dinámica de un equipo. Una de las preocupaciones con el desarrollo de código abierto es la alta tasa de rotación de los desarrolladores, incluso entre los colaboradores principales (aquellos que están en el centro de la "cebolla"). [20] Para continuar con un proyecto de código abierto, deben incorporarse continuamente nuevos desarrolladores, pero también deben tener las habilidades necesarias para contribuir con código de calidad al proyecto. A través de un estudio de la contribución de GitHub en proyectos de código abierto, Middleton et al. descubrieron que el mayor predictor de que los colaboradores se conviertan en miembros de pleno derecho de un equipo de código abierto (pasando al "núcleo" de la "cebolla") era si enviaban y comentaban solicitudes de incorporación de cambios. Los autores sugieren entonces que GitHub, como herramienta, puede ayudar en este proceso al admitir funciones de "casilla de verificación" en el proyecto de código abierto de un equipo que instan a los colaboradores a participar en estas actividades. [19]
Con el crecimiento y la atención que ha despertado el movimiento de código abierto, se han investigado las razones y motivaciones de los programadores para crear código de forma gratuita. En un artículo del 15º Congreso Anual de la Asociación Económica Europea sobre el movimiento de código abierto, se analizaron los incentivos de los programadores a nivel individual, así como a nivel de empresa o red. Lo que en esencia es la donación intelectual de programadores talentosos desafía el "paradigma del agente económico interesado" [21] y ha hecho que tanto el público como los economistas busquen una comprensión de cuáles son los beneficios para los programadores.
La gran mayoría de los programadores en las comunidades de código abierto son hombres. En un estudio de 2006 para la Unión Europea sobre comunidades de software libre y de código abierto, los investigadores descubrieron que solo el 1,5% de todos los contribuyentes son mujeres. [25] Aunque las mujeres están generalmente subrepresentadas en la informática, el porcentaje de mujeres en profesiones tecnológicas es en realidad mucho mayor, cerca del 25%. [26] Esta discrepancia sugiere que las programadoras en general tienen menos probabilidades que los programadores de participar en proyectos de código abierto.
Algunas investigaciones y entrevistas con miembros de proyectos de código abierto han descrito una cultura dominada por los hombres dentro de las comunidades de código abierto que puede ser poco acogedora u hostil hacia las mujeres. [27] Hay iniciativas como Outreachy que tienen como objetivo apoyar a más mujeres y otras identidades de género subrepresentadas para que participen en software de código abierto. Sin embargo, dentro de los foros de discusión de proyectos de código abierto, el tema de la diversidad de género puede ser muy controvertido e incluso incendiario. [27] Una visión central en el software de código abierto es que, dado que el software se construye y se mantiene en función del mérito de las contribuciones de código individuales, las comunidades de código abierto deben actuar como una meritocracia. [28] En una meritocracia, la importancia de un individuo en la comunidad depende de la calidad de sus contribuciones individuales y no de factores demográficos como la edad, la raza, la religión o el género. Por lo tanto, proponer cambios a la comunidad en función del género, por ejemplo, para hacer que la comunidad sea más atractiva para las mujeres, va en contra del ideal de una meritocracia al apuntar a ciertos programadores por género y no solo en función de sus habilidades. [27]
Hay evidencia de que el género sí impacta el mérito percibido de un programador en la comunidad. Un estudio de 2016 identificó el género de más de un millón de programadores en GitHub , al vincular la cuenta de GitHub del programador con sus otras cuentas de redes sociales. [29] Entre programadores hombres y mujeres, los investigadores encontraron que las programadoras en realidad tenían más probabilidades de que sus solicitudes de extracción fueran aceptadas en el proyecto que los programadores hombres, sin embargo, solo cuando la mujer tenía un perfil neutral en cuanto al género. Cuando las mujeres tenían perfiles con un nombre o imagen que las identificaba como mujeres, tenían menos probabilidades que los programadores hombres de que sus solicitudes de extracción fueran aceptadas. Otro estudio de 2015 encontró que en los proyectos de código abierto en GitHub, la diversidad de género era un predictor positivo significativo de la productividad de un equipo, lo que significa que los equipos de código abierto con una mezcla más uniforme de diferentes géneros tendían a ser más productivos. [28]
Muchos proyectos han adoptado el código de conducta del Pacto del Colaborador en un intento de abordar las preocupaciones sobre el acoso a los desarrolladores pertenecientes a minorías. Cualquiera que infrinja el código de conducta puede ser sancionado y, en última instancia, expulsado del proyecto.
Para evitar ofender a las minorías, muchos proyectos de software han comenzado a exigir el uso de lenguaje y terminología inclusivos. [30]
Las bibliotecas están utilizando software de código abierto para desarrollar información y servicios bibliotecarios. El objetivo del código abierto es proporcionar un software más barato, fiable y de mejor calidad. La característica que hace que este software sea tan buscado es que es gratuito. Las bibliotecas, en particular, se benefician de este movimiento debido a los recursos que proporciona. También promueven las mismas ideas de aprendizaje y comprensión de nueva información a través de los recursos de otras personas. El código abierto permite un sentido de comunidad. Es una invitación para que cualquiera proporcione información sobre diversos temas. Las herramientas de código abierto incluso permiten a las bibliotecas crear catálogos basados en la web. Según la fuente de TI, existen varios programas de biblioteca que se benefician de esto. [31]
Agencias gubernamentales y software de infraestructura : las agencias gubernamentales están utilizando software de infraestructura de código abierto, como el sistema operativo Linux y el servidor web Apache, para gestionar la información. [32] En 2005, se lanzó un nuevo lobby gubernamental bajo el nombre de Centro Nacional para la Política e Investigación de Código Abierto (NCOSPR), "una organización sin fines de lucro que promueve el uso de soluciones de software de código abierto dentro de las empresas de TI del gobierno". [33]
El movimiento de código abierto en el ejército : el movimiento de código abierto tiene potencial para ayudar en el ejército. El software de código abierto permite que cualquiera pueda hacer cambios que lo mejoren. Esta es una forma de invitación para que las personas unan sus mentes para desarrollar un software de manera rentable. La razón por la que el ejército está tan interesado es porque es posible que este software pueda aumentar la velocidad y la flexibilidad. Aunque esta idea tiene inconvenientes de seguridad debido al hecho de que cualquiera tiene acceso para cambiar el software, las ventajas pueden superar las desventajas. El hecho de que los programas de código abierto se puedan modificar rápidamente es crucial. Se formó un grupo de apoyo para probar estas teorías. El Grupo de Trabajo de Software de Código Abierto Militar se organizó en 2009 y contó con más de 120 miembros militares. Su propósito era reunir a los desarrolladores de software y contratistas del ejército para descubrir nuevas ideas para la reutilización y la colaboración. En general, el software de código abierto en el ejército es una idea intrigante que tiene posibles desventajas, pero no son suficientes para compensar las ventajas. [34]
Código abierto en la educación : las universidades y las organizaciones utilizan software predominantemente en línea para educar a sus estudiantes. Muchas instituciones están adoptando la tecnología de código abierto porque puede evitar que estas instituciones paguen a las empresas para que les proporcionen estos sistemas de software administrativos. Una de las primeras universidades importantes en adoptar un sistema de código abierto fue la Universidad Estatal de Colorado en 2009, a la que siguieron muchas otras. El sistema de la Universidad Estatal de Colorado fue producido por la Fundación Kuali , que se ha convertido en un actor importante en los sistemas administrativos de código abierto. La Fundación Kuali se define a sí misma como un grupo de organizaciones que tiene como objetivo "crear y mantener software de código abierto para la educación superior, por la educación superior". [35] Hay muchos otros ejemplos de instrumentos de código abierto que se utilizan en la educación además de la Fundación Kuali. [ cita requerida ]
"Para los educadores, el movimiento de código abierto permitió el acceso a software que podía utilizarse para enseñar a los estudiantes a aplicar las teorías que estaban aprendiendo". [36] Con redes y software abiertos, los profesores pueden compartir lecciones, conferencias y otros materiales del curso dentro de una comunidad. OpenTechComm es un programa que se dedica al "acceso abierto, uso abierto y edición abierta: libros de texto o recursos pedagógicos en los que los profesores de cursos de comunicación técnica y profesional de todos los niveles pueden confiar para elaborar ofertas gratuitas para sus estudiantes". [ Esta cita necesita una cita ] Como se dijo anteriormente, el acceso a programas como este sería mucho más rentable para los departamentos educativos.
Código abierto en el cuidado de la salud : creado en junio de 2009 por la organización sin fines de lucro eHealthNigeria, el software de código abierto OpenMRS se utiliza para documentar la atención médica en Nigeria. El uso de este software comenzó en Kaduna, Nigeria, para servir a la salud pública. OpenMRS administra funciones como alertar a los trabajadores de la salud cuando los pacientes muestran signos de advertencia de enfermedades y registra nacimientos y muertes diariamente, entre otras funciones. El éxito de este software se debe a su facilidad de uso para quienes se familiarizan con la tecnología por primera vez, en comparación con el software de atención médica propietario más complejo disponible en los países del primer mundo. Este software es desarrollado por la comunidad y puede ser utilizado libremente por cualquier persona, característica de las aplicaciones de código abierto. Hasta ahora, OpenMRS se está utilizando en Ruanda, Mozambique, Haití, India, China y Filipinas. [37] El impacto del código abierto en el cuidado de la salud también lo observa Apelon Inc, el "proveedor líder de soluciones de interoperabilidad de datos y terminología". Recientemente, su Sistema de Terminología Distribuida (Open DTS) comenzó a brindar soporte al sistema de base de datos MySQL de código abierto. Esto permite, en esencia, que el software de código abierto se utilice en el ámbito sanitario, lo que reduce la dependencia de un costoso software propietario. Gracias al software de código abierto, el sector sanitario dispone de una solución de código abierto gratuita para implementar estándares sanitarios. El código abierto no sólo beneficia al sector sanitario económicamente, sino que la menor dependencia del software propietario permite una integración más sencilla de diversos sistemas, independientemente del desarrollador. [38]
Originalmente, IBM no era una empresa que se diversificara en cualquier forma de software de código abierto. Se mantuvieron fieles a la creencia de que la propiedad intelectual, junto con otros medios de software privatizados, se mantenían alrededor de los años 1990. [39] Según una cita, no fue hasta que IBM se vio desafiada por el mercado competitivo en evolución, específicamente por Microsoft, que decidieron invertir más sus recursos en software de código abierto. Desde entonces, su enfoque se centró más en el servicio al cliente y en un soporte de software más sólido. [39] IBM ha sido uno de los principales defensores de la Iniciativa de Código Abierto y comenzó a brindar soporte para Linux en 1998. [40]
Como otro ejemplo, IBM decidió hacer que el IDE (entorno de desarrollo integrado) Eclipse fuera de código abierto, lo que provocó que otras empresas lanzaran sus otros IDE debido a la popularidad de Eclipse y su alcance en el mercado. [41]
Antes del verano de 2008, Microsoft era conocido generalmente como un enemigo de la comunidad de código abierto [ cita requerida ] . El sentimiento anti-código abierto de la compañía fue reforzado por el ex director ejecutivo Steve Ballmer , quien se refirió a Linux, un software de código abierto ampliamente utilizado, como un "cáncer que se adhiere... a todo lo que toca". [42] Microsoft también amenazó a Linux con cobrar regalías por violar 235 de sus patentes.
En 2004, Microsoft perdió un caso en los tribunales de la Unión Europea [43] , y perdió la apelación en 2007 [44] , y su apelación posterior en 2012 [45] : fue condenada por abuso de posición dominante. En concreto, había ocultado información sobre la interoperabilidad con el proyecto de código abierto Samba (software) , que puede ejecutarse en muchas plataformas y tiene como objetivo "eliminar las barreras a la interoperabilidad". [ Esta cita necesita una cita ]
Sin embargo, en 2008, Sam Ramji, el entonces jefe de estrategia de software de código abierto en Microsoft, comenzó a trabajar en estrecha colaboración con Bill Gates para desarrollar una actitud a favor del código abierto dentro de la industria del software, así como dentro de Microsoft. Ramji, antes de dejar la empresa en 2009, construyó la familiaridad y la participación de Microsoft con el código abierto, lo que es evidente en las contribuciones de Microsoft de código abierto a Microsoft Azure , entre otros proyectos. Estas contribuciones habrían sido inimaginables anteriormente para Microsoft. [46] El cambio de actitud de Microsoft sobre el código abierto y los esfuerzos por construir una comunidad de código abierto más fuerte son evidencia de la creciente adopción y adaptación del código abierto. [47]
{{cite journal}}
: Requiere citar revista |journal=
( ayuda ){{cite web}}
: CS1 maint: bot: estado de URL original desconocido ( enlace ){{cite journal}}
: CS1 maint: DOI inactivo a partir de octubre de 2024 ( enlace )