¿Por qué el código abierto es ‘bueno’?

El principio es el mismo que con la ciencia. Si todos mantuvieran sus métodos, la ciencia secreta se desarrollaría mucho más lentamente. Veríamos los resultados, pero no podríamos construir sobre la investigación o verificar los resultados porque la investigación está cerrada.

Entonces, ante todo, el código abierto tiene una gran influencia. En lugar de un pequeño número de personas trabajando en un proyecto, potencialmente tiene números masivos. Tomemos Linux, por ejemplo, ninguna compañía lo habría llevado al punto donde está. Por ejemplo, Microsoft Windows, que probablemente es el sistema operativo de código cerrado más caro del mundo, puede ejecutarse en un conjunto muy limitado de sistemas. Linux se ejecuta prácticamente en todas partes porque cualquiera puede integrarlo a los sistemas que desee.

El software de código abierto también aumenta la confianza. Esto es particularmente importante en estos días de ciberespionaje. Si el software es de código cerrado, no puede verificar lo que hace. Podría tener problemas de seguridad tanto intencionales como no intencionales (errores) y si se encuentra un problema, no puede analizar por qué está allí o solucionarlo. En su lugar, debe confiar en el proveedor. Usted, como cliente, también puede confiar en que incluso si la empresa que produce el producto o simplemente brinda apoyo se quiebra o comienza a pedir dinero ridículo, puede cambiarlo fácilmente. Nadie puede retener tu rescate.

Para los desarrolladores hay dos grandes ventajas: no tiene que escribir todo usted mismo y prestigio. Si necesita un pequeño cambio en una aplicación que utiliza y es de código cerrado, estará nuevamente a merced del proveedor. Si es de código abierto, puede hacer el cambio usted mismo o contratar a alguien para que lo haga. Incluso puedes licitar esto. En fuente cerrada, el precio de los cambios suele ser muy alto.

En resumen, los dos factores más importantes con OSS son la multiplicación del esfuerzo de la misma manera que la ciencia y la confianza.

Software de código abierto: interés que no se agota con el tiempo

En el mundo del software, siempre hay una opción entre programas propietarios y de código abierto. Ambos son ampliamente utilizados, ambos pueden ser interesantes para las empresas. Aún así, la elección debe hacerse en cada caso particular. Para hacerlo bien, considere todos los pros y los contras.

La característica principal del software de código abierto es que su código puede ser inspeccionado y modificado por cualquiera. No está oculto ni protegido como código de software propietario. Puede ser utilizado por cualquier persona y para cualquier propósito. Obviamente, tiene sus ventajas y desventajas.

Ventajas que mantienen el software de código abierto popular

Hay muchos programadores que están listos para compartir su trabajo. En el mundo moderno de licencias y derechos de autor puede parecer un poco inusual. Sin embargo, hay todo un movimiento de código abierto detrás de él. Se trata de compartir y colaborar para desarrollar un mejor software. El trabajo ya editado se puede editar una y otra vez. Crea motivos para ventajas convincentes además de ser casi o totalmente gratuito.

Control y personalización

Si bien el software propietario está totalmente controlado por sus desarrolladores designados, cualquier persona puede editar fácilmente el código fuente abierto para adaptar el producto de acuerdo con los objetivos y necesidades de la empresa. Se siente bien poder hacer eso, aunque el programador debe ser inteligente y experimentado para mantenerlo en funcionamiento.

Alta calidad

Un desarrollador suele ser bueno, pero nunca está de más comprobarlo dos veces. Mientras más especialistas se sumerjan en el código, más errores se pueden detectar y corregir. Ser revisado varias veces influye en la calidad del software de una buena manera. También abre el camino para mejoras constantes en el camino.

Seguridad

Las bibliotecas de desarrollo de código abierto están siendo monitoreadas por diferentes programadores casi en todo momento. Nuevamente, significa que cualquier problema de seguridad y vulnerabilidad se puede detectar y eliminar de inmediato.

Sin dependencia

Cuando el código está abierto, no hay relación con ninguna compañía de software en particular. Por un lado, limita las oportunidades de soporte ya que no hay una persona específica que sea responsable de todo el código fuente abierto. Por otro lado, significa más libertad para elegir el soporte técnico cuando sea necesario.

Dejando a un lado el revestimiento de azúcar: preocupaciones sobre el software de código abierto

Seamos justos, también hay algunas preocupaciones que deben considerarse. Ser advertido significa estar protegido. Aquí hay algunas desventajas del software de código abierto que pueden ser importantes para los dueños de negocios.

Costos ocultos

Aunque el software de código abierto es gratuito por adelantado, puede requerir algunos gastos importantes más adelante. Considere la posibilidad de configurar un nuevo hardware, capacitar al equipo, importar datos, personalizar el software y su mantenimiento. Esos son posibles costos que deben planificarse con anticipación.

Pasivo

La licencia de software de código abierto generalmente proporciona garantía limitada y ninguna protección de responsabilidad, mientras que el acuerdo estándar sobre software propietario incluye garantía e indemnización completas. Sin embargo, tenga en cuenta que las grandes empresas también pueden lavarse las manos en caso de problemas reales.

Problemas de compatibilidad

Muchos tipos de software de código abierto solo se ejecutan con la ayuda de controladores especializados. Es posible que solo estén disponibles del fabricante del hardware. Potencialmente puede aumentar el costo del proyecto. Con controladores propietarios, el proceso puede ser mucho más simple.

Dificultades de uso

Existe un software de código abierto que es simple y fácil de usar, por ejemplo, Mozilla Firefox o el sistema operativo Android. Pero no siempre es así. Algunos programas se crean para simplemente dar vida a las ideas o ayudar al programador a expresarse. En estos casos, la interfaz de usuario puede no ser tan amigable como se esperaba. Aunque generalmente no es un problema para los desarrolladores, la influencia puede recaer en otros miembros del equipo.

Según la información anterior, debería ser más fácil pensar y tomar una decisión sobre la elección de software de código abierto o propietario. Sin embargo, considere discutirlo con los desarrolladores que van a trabajar en el proyecto. Sus opiniones también importan.

Para los usuarios finales, solo es ‘bueno’ si tiene un propósito. Depende del individuo decidir qué define el “propósito”. El valor agregado por ser de código abierto es que alguien experto en el arte de la programación puede modificar el programa para que sirva mejor al propósito. Por supuesto, cuando hay muchas de esas personas, y cuando las modificaciones se devuelven a la distribución general, el proceso de actualización comienza a complicarse y todos los usuarios se benefician. Por lo general, esto es sin costo o con poco costo. Por el contrario, los usuarios de software de código cerrado y propietario generalmente no pueden realizar cambios, al menos en términos prácticos (cualquier persona con suficiente dinero podría comprar el tiempo y el esfuerzo para realizar los cambios, pero esto generalmente no es posible para el público en general o incluso la mayoría de las corporaciones).
Los errores tienden a ser encontrados y reparados rápidamente en el software de código abierto, particularmente si los errores tienen un aspecto de seguridad. El software de código cerrado generalmente es propiedad de una organización con fines de lucro, y por lo general no está en su mejor interés revelar cuándo se conocen los errores, y sus recursos son necesarios para corregirlos. El código fuente abierto a menudo es depurado por un grupo más grande de programadores, con la corrección de errores obteniendo el escrutinio de un mayor número de programadores calificados.
En un tono más altruista, el abastecimiento abierto permite que las ideas implementadas se perpetúen. Cuando un programa es libre para que todos vean cómo funciona, los métodos y algoritmos se pueden reutilizar y refinar en otros trabajos. En comparación, el software de código cerrado que se “retira” puede morir sin permitir que las ideas de diseño innovadoras sean conocidas por la población de programación en general. Las buenas ideas merecen tener la oportunidad de vivir, y el abastecimiento abierto lo promueve. Todos nos beneficiamos, incluso si las ideas se utilizan más tarde en un software comercial de código cerrado patentado.

Soy lo suficientemente mayor como para recordar los días anteriores al código abierto.

Sin los compiladores de C, si quisiera desarrollar una aplicación, tendría que salir al mercado abierto y obtener algunos de los componentes que necesita. Estos incluirían quizás mínimamente:

  • Un sistema operativo
  • Compiladores
  • Herramientas de gestión de código fuente
  • Editores

Tal vez eso sea suficiente para comenzar. Digamos que desea crear una página web. Probablemente quieras un servidor HTTP. Podrías escribir uno tú mismo, o de nuevo, licenciar uno.

Eso sí, no solo necesita licenciar estos componentes para el desarrollo, sino también para la implementación. Aunque estos componentes son idénticos a los componentes utilizados por otros, todos terminamos pagando a los mismos proveedores.

O … podríamos crear todo esto nosotros mismos, y luego vender los componentes por un poco más barato que nuestra competencia. Por supuesto, esto se traduce en una carrera hacia el fondo, tratando de capturar la participación en el mercado, pero ganando cada vez menos en cada unidad vendida, y esencialmente creando muy poco valor ya que son solo duplicados de otro software.

Es una pérdida de tiempo y energía, y evita aumentos reales en la productividad y la innovación.

Yo trabajo para un estudio de cine. Es bastante seguro que tenemos un apetito casi ilimitado por la energía de la computadora. Pero si nos viéramos obligados a licenciar software para cada núcleo que implementamos, es probable que ya no tengamos un modelo comercial viable.

En realidad, funciona mucho mejor desde el punto de vista de la innovación para agrupar nuestros recursos y crear un conjunto de herramientas abierto, gratuito y universal para realizar muchas de las tareas comunes que necesitamos para ejecutar nuestro Internet altamente sofisticado e interconectado. Dado que los miembros de la industria usan herramientas comunes, crea una mayor experiencia común. Los esfuerzos para mejorar las herramientas se concentran, en lugar de difundirse. Todavía hay muchas oportunidades para innovar en nuevas aplicaciones, pero no todos necesitamos crear nuestros propios editores, compiladores y marcos de servidores web para hacerlo.

El código abierto ha hecho que Internet sea productivo.

Desde la perspectiva del desarrollo, hoy en día una de las mejores formas de beneficiarse con el código abierto es utilizar el modelo de negocio SaaS. Tiene sentido si tiene una aplicación completa capaz de generar demanda. El modelo SaaS es una forma popular de licenciar software porque es flexible y ofrece una implementación rápida y costos reducidos. El software se almacena en la nube; los usuarios solo necesitan un navegador web para acceder a una aplicación, por lo que también hace que SaaS sea atractivo.

Además, una empresa de OSS puede tener éxito al proporcionar servicios pagos como soporte técnico, certificaciones y capacitaciones. O distribuyen su software de forma gratuita, pero cobran dinero por funciones, funcionalidades o actualizaciones adicionales. Además, existe una licencia Dual que permite a las empresas lanzar software comercial (con una licencia comercial) que se deriva de OSS gratuitos distribuidos comúnmente bajo la licencia GNU General Public (GPL).

Hay mucha más información explícita en el artículo Cómo los desarrolladores pueden ganar dinero con proyectos de código abierto.

El código abierto ha sido muy útil para muchas startups debido a cómo puede editar fácilmente el código fuente y modificarlo para satisfacer sus necesidades. Actualmente estoy creando una aplicación de correo electrónico de código abierto que permitirá comunicarse de forma segura mediante el cifrado. El código abierto ha sido beneficioso porque también brinda a las personas la oportunidad de aprender sobre cómo un programador programa. Si no fuera por el código abierto, no tendremos WordPress, iPhone (ejecuta FreeBSD) y alternativas más baratas para ejecutar servidores para empresas con Linux. El código abierto es muy grande para cualquiera y las contribuciones a proyectos de código abierto hacen que sea aún mejor usarlo para negocios o para uso personal.

El código abierto no se trata solo de ahorrar dinero: las empresas lo están adoptando para desarrollar aplicaciones más rápido, con componentes de mayor calidad. La metodología de código abierto produce un mejor software. La razón es simple: si el código es defectuoso, la comunidad de desarrolladores puede identificar y abordar el problema rápidamente, donde un solo codificador podría avanzar sin darse cuenta, al menos por un tiempo. Puedes echar un vistazo al buen ejemplo de la plataforma IoT de código abierto: Kaa aquí: Kaa Open Source IoT Platform

Debido a que cada producto de software es realmente dos bienes: la base de código y su complemento, la mano de obra del programador requerida para la programación de mantenimiento. Joel Spolsky escribió, en la Carta de estrategia V, ” Las compañías inteligentes intentan comercializar los complementos de sus productos”. Lo mismo vale para las personas. Cuanto más trabaje con un código genérico gratuito, mayor será el poder de fijación de precios que tenga como vendedor de mano de obra. Más: ¿Quién se embolsa la riqueza de código abierto?

Las soluciones de código abierto incluyen software: este software es uno cuyo código fuente está disponible para su modificación o mejora por cualquier persona. El “código fuente” es la parte del software que la mayoría de los usuarios de computadoras nunca ven; es el código que los programadores pueden manipular para cambiar la forma en que funciona una pieza de software, un “programa” o una “aplicación”. Los programadores que tienen acceso al código fuente de un programa de computadora pueden mejorar ese programa agregando características o arreglando partes que no siempre funcionan correctamente.

Para obtener más detalles sobre las soluciones de código abierto, visite aquí: – ¿Por qué las soluciones de código abierto?