Qué es GitHub y por qué la compra por parte de MIcrosoft sí es una buena noticia

Decía Chesterton que la labor del periodista consiste en contarle la muerte de Lord Jones a gente que no tenía ni idea de que Lord Jones vivía. Los autores de blogs de tecnología solemos caer en el mismo error. Por eso, para aquellos lectores que hasta la noticia de la compra por parte de Microsoft no sabían de que se trataba este servicio, acá va una breve introducción.
También explico el por qué, a diferencia de lo que piensa buena parte de la blogsfera y las redes sociales, se trata de una buena noticia para el código abierto.

Conceptos básicos para entender qué es GitHub

Para entender que es GitHub es necesario partir de dos definiciones; la de sistema de control de versiones y la de Git.

Sistema de control de versiones: Es una herramienta de software que facilita hacer un seguimiento de los cambios realizados en determinados archivos a lo largo del tiempo.

Git es un sistema de control de versiones distribuido, lo que significa que todos los que trabajan con un proyecto utilizando este sistema tienen acceso a una copia de la historia completa del proyecto, no sólo el estado actual de los archivos.

Porqué usar Git

  • Permite volver a una versión anterior: Si se hizo una o varias modificaciones a un archivo y no funcionan, es posible recuperar la última versión que funcionó e ir introduciendo los cambios uno por uno hasta encontrar el problema.
  • Acceso a un historial completo de todos los cambios: Si necesitamos conocer cómo era su proyecto en una fecha anterior, podemos consultar una versión anterior del proyecto para ver exactamente cuál era el estado de los archivos en ese momento.
  • Acceso a una justificación documentada del por qué de los cambios:  Con el paso del tiempo es imposible entender el por qué se hicieron determinados cambios. La función de mensajes de confirmación en Git, es fácil documentar para futuras referencias por qué se hacen determinados cambios. Esto es útil para saber también que partes del código pueden eliminarse sin problemas.
  • Incentivo a la creatividad: Al poder volver a una versión anterior  se reduce el miedo a cometer errores. Y al quedar registrado quién hizo cada modificación es más fácil atribuir méritos.

Características de GitHub

Logo de GitHub

GitHub es un servicio de alojamiento de proyectos (software, documentos y otros) que incluye un sistema de control de versión, y herramientas para el trabajo en equipo, reporte y seguimiento de errores y modificaciones. También pueden almacenarse copias de repositorios Git privados.
Aunque está escrito en el lenguaje Ruby usando el framework Rails, ambas herramientas de código abierto, su código es cerrado.
Enlace

Alternativas a GitHub

Casi todas las características de  GitHub pueden encontrarse en  algunos de sus competidores. Estos son de dos tipos:

  • Servicios de alojamiento de proyectos con sistema de control de versión.
  • Aplicaciones para la creación de un servicio de alojamiento con control de versión.

La diferencia es que en el segundo tipo usamos nuestros propios servidores para el alojamiento.

Servicios de alojamiento de proyectos con control de versión

GitLab

Para muchos de los que se plantean migrar de GitHub es la primera alternativa. De hecho fue elegido por GNOME y El Gimp para gestionar su desarrollo.
Tiene herramientas muy útiles para el seguimiento de la evolución del diseño, la creación de proyectos derivados y el trabajo en forma grupal.
Y a diferencia de GitHub su código es abierto.
Enlace

Bitbucket

Ofece cuentas gratuitas para fines académicos y proyectos de código abierto.
Además de las características habituales en este tipo de servicios, permite establecer permisos de acceso y bloqueo de IP.
Enlace

Beanstalk

Esta plataforma promete que todas las funciones pueden utilizarse desde el navegador.
Enlace

Launchpad

Especializada en la creación de paquetes para Ubuntu, tiene un sistema de seguimiento de errores, sistema de preguntas frecuentes, plataforma de traducción de paquetes y tickets de soporte.
Enlace

Sourceforge

Alguna vez fue el líder hasta que a sus antiguos dueños se les ocurrió agregar sin permiso un instalador con publicidad a diferentes proyectos de código abierto. Pero los nuevos dueños decidieron hacer buena letra y eliminaron toda la basura.
Para quienes descargamos programas cuenta con el mejor buscador de todos los servicios mencionados en este post.
Está especializado en proyectos de código abierto y ofrece herramientas para el seguimiento integrado de problemas,creación de documentación de proyectos y soporte para foros, blogs y listas de correo.
Enlace

Aplicaciones para la creación de un servicio de alojamiento de proyectos con control de versión

Phabricator

Curiosamente (todavía) está  alojado en GitHub, este proyecto consiste en un conjunto de aplicaciones web que facilita la creación de software, incluyendo:

  • Revisión y auditoría de código fuente.
  • Alojamiento y navegación de repositorios.
  • Seguimiento de errores.
  • Creación y coordinacion de equipos de trabajo

Enlace

GitBucket

Escrito en lenguaje Java, tiene las funciones básicas de creación y seguimiento de proyectos además de otras funcionalidades disponibles por medio de la instalación de plugins.
Enlace

Gogs

La opción ideal si cuentas con un servidor con pocos recursos. Puede alojarse en una Raspberry Pi.
Enlace

Gitea

Es una bifurcación del proyecto anterior manejada por la comunidad
Enlace

Apache Allura

Desarrollado originalmente por Sourceforge, ahora está motorizado por la Fundacióon Apache.
Está constituido por un conjunto de herramientas que posibilitan el desarrollo colaborativo, el seguimiento de errores, bifurcación y fusión de proyectos, soporte a foros, blogs y sitios web de proyectos.

Con Gog o Gitea se puede usar la Raspberry Pi como servidor de control de versiones

Enlace

Microsoft compra GitHub ¿Y ahora qué?

Estos días hemos visto algo paradójico. Parte de la comunidad opensource quejándose de que una empresa que está apostando fuertemente al código abierto compre una que tiene su código cerrado. Muchos recordaron aquella directiva de Microsoft para tratar con las tecnologías de los competidores; abrazar, extender y extinguir.

Esas personas no entienden que el mercado informático no es el mismo de hace 10 años. Microsoft ya no tiene un producto líder en el mercado, sino que le toca competir en dos sectores donde los líderes son otros; Linux en la nube y los dispositivos embebidos, y Google y Apple en dispositivos móviles.
Hoy Microsoft desarrolla aplicaciones para las plataformas Android e iOS integradas con sus servicios en la nube, incluye distribuciones Linux en su tienda de aplicaciones y libera versiones de sus herramientas de desarrollo y servicios de comunicación para este sistema operativo.

Visual Studio Code es una herramienta de Microsoft que tiene versión para Linux

Puede que no lo hagan convencidos, pero necesitan hacerlo porque las empresas no están dispuestas a pagar lo que le pidan por licencias de software,cuando tienen alternativas gratuitas o a un menor costo con similares o mejores prestaciones, y los desarrolladores no están dispuestos a usar lenguajes de programación privativos cuando tienen múltiples opciones libres y con abundante documentación.

Si Microsoft quiere que los usuarios utilicen sus herramientas tienen que hacerlas atractivas para la comunidad opensource y el mundo corporativo.

¿Que significa para el mundo opensource la compra de Github?

En primer lugar lo que significa es más competencia.
Como twitteo la gente de Videolan (VLC), GitHub se estaba convirtiendo en una moda, la mayoría de nosotros ni siquiera sabíamos que el código de sus herramientas era privativo. Y muchos ni siquiera se habían planteado los riesgos de que una empresa tuviera acceso a repositorios privados de sus competidores.
El shock de la compra de Microsoft está haciendo que bastante gente se replantee estos temas y decidan darle una oportunidad a servicios competidores que si abren el código de su plataforma

Quiero dejar en claro que no creo que Microsoft ande espiando código ajeno, a la larga esas cosas se saben (pregúntenle a Facebook), pero siempre es bueno tomar conciencia.

En segundo lugar tendremos mejores herramientas, Microsoft necesita retener a los desarrolladores de código abierto (después de todo ese fue le motivo de la compra) Eso hará que publique mejores herramientas para la creación de software integradas a GitHub. Y esas herramientas tendrán sí o sí que tener versión Linux.
Por lógica sus competidores tendrán que hacer lo mismo.

En resumen, se vienen tiempos interesantes para el código abierto.

Nota: Te recomiendo este excelente análisis de lo que eran las condiciones de uso de GitHub antes de la compra por parte de Microsoft

Anuncios

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.