En octubre de 2007 se empezaba a gestar el embrión de Github, un servicio web para alojar repositorios de código. Salió al público en abril de 2008, y cinco años después es el sitio donde se alojan más proyectos de código abierto, superando a servicios ya asentados como SourceForge o Codeplex.
La influencia de Github a la hora de facilitar el acceso al código a todo el mundo ha sido impresionante. Se podría decir que es la entidad que más ha contribuido al movimiento de código abierto, junto con Stallman (y la FSF con él) y Torvalds. Pero, ¿qué hace tan especial a Github? ¿Qué han hecho ellos que no haya hecho nadie más?
¿Qué hay en Github?
Github es una web donde cualquiera puede hacerse una cuenta y subir el código de sus proyectos. La única restricción es que sean de código abierto y públicos. Los repositorios privados son una caracerística de pago. Además de eso, Github tiene algunos servicios adicionales: un administrador de incidencias (_issue tracker_ en inglés), wiki, _snippets_ de código...
Hasta aquí, nada muy distinto de lo que ya ofrecían otros repositorios como Codeplex o Sourceforge. Y aunque es cierto que el buen diseño y funcionamiento del sitio influye, creo que lo que marcó más la diferencia son sus capacidades sociales. Cuidado: cuando digo sociales, no me refiero a ser el _Facebook del código_. Es en el sentido de permitir la colaboración entre usuarios, de compartir código, de aprender y solucionar problemas entre todos.
Quizás lo más famoso y característico de Github sea el botón "fork". Un click y clonas un proyecto directamente a tu cuenta. Puedes trabajar en él sin que nadie te moleste y después aportar mejoras al proyecto original (o no).
El resultado ha sido un éxito bestial. Muchísimos proyectos se alojan en Github. Podría decirse que una gran parte de la _web moderna_, la de las aplicaciones web, está alojada ahí: jQuery, Rails, Node, Ruby, Bootstrap, Less... Quizás no os suenen estos nombres, pero prácticamente todas las webs que visitáis usan alguna de estas librerías o herramientas. Incluso Linus Torvalds mantiene una copia actualizada en Github del kernel Linux (aunque no acepta parches por ese medio). El éxito de Github es indiscutible en este sentido.
Github, código abierto y software libre
Github ha demostrado algo en el mundo del software libre/código abierto. Aunque los dos conceptos parezcan iguales (compartir el código), difieren en una cosa: para qué se comparte.
Mientras que el software libre aboga por las libertades de los usuarios y programadores, el código abierto tiene un enfoque más utilitarista: compartir el código porque es útil para otras personas. Paradójicamente, el software libre tiende a ser más restrictivo en sus licencias (por ejemplo, cualquier proyecto que use una librería GPL debe ser liberado también bajo GPL) mientras que el código abierto es más "haz lo que quieras con esto": véase licencias ASL, MIT o BSD.
Github ha sido el triunfo del código abierto. Compartir código porque es útil, porque le servirá a más desarrolladores, para evitar reinventar la rueda. Esta es la mentalidad predominante entre los usuarios de Github. De hecho, sólo hay que ir a la página web para darse cuenta de que está enfocara a desarrolladores. La mayoría de repositorios son librerías, compiladores, _frameworks_, todos dirigidos a desarrolladores. Github no es un sitio para que un usuario normal vaya a buscar software libre, como sí era (sigue siendo) SourceForge.
¿Quiere decir esto que el software libre está muerto? No, por supuesto. ¿Serían todos estos proyectos libres sin Github? Probablemente unos cuantos habrían quedado ocultos, o en alguna página donde acceder al código sería bastante más complicado.
Github ha atraído a muchos desarrolladores sin una convicción clara por el software libre, pero a los que no veían ningún inconveniente a abrir su código a cambio de alojamiento gratuito, visibilidad y la posibilidad de ayudar a más desarrolladores. Ese ha sido el gran triunfo de Github: "popularizar" el código abierto.
En Genbeta Dev | Conociendo GitHub, el servicio donde alojar tus repositorios Git
Ver 25 comentarios
25 comentarios
Usuario desactivado
Decir que bitbucket permite tener repositorios privados. (esto no quiere decir que no vayan a ser opensource despues)
q2dg
Sí, muy bien, pero GitHub no es libre. Qué paradoja
falc
No estoy de acuerdo con algunos conceptos que se comentan aquí.
Parece que se distingue entre licencias de software libre (poniendo como ejemplo GPL) y licencias de código abierto (poniendo como ejemplo MIT y BSD). Dejando de lado el hecho de que BSD no es una licencia sino una familia de licencias, porque incluye varias, hay que decir que todo software publicado bajo licencia MIT o alguna de las BSD, es software libre.
Siendo MIT, BSD y GPL todas licencias de software libre, la diferencia entre las dos primeras y la GPL es la "viralidad". Así que no es que el software libre impida utilizar el código libre junto a código privativo, sino que en esa licencia concreta ocurre eso, mientras que en otras licencias de software libre no ocurre.
karlosgliberal
Muy interesante el Post, en este enlace se ven una pequeña estadística sobre el tipo de licencias usadas en los proyectos más importantes y es la MIT una de las ganadores, muy "open source" ella.
De todos modos aunque estoy de acuerdo en lo que se dice en el post. Creo que la dimensión social, mas al estilo Facebook y que en github esta bien planteado ha tenido una importancia sería para su buena acogida.
También en su cuidado diseño tanto gráfico como su experiencia de usuario. Que se sacaran una app nativa (por lo menos para mac) lo dice todo, en su cruzada para que usar Github sea lo más fácil posible.
En resumen estoy completamente de acuerdo en que Github y sus habitantes están haciendo ahora mucho más por el software libre que elementos más clásicos como el mundo de las distros (en mi humilde opinión)
En este post The GitHub Revolution: Why We’re All in Open Source Now amplían la perspectiva e importancia de lo que se plantea en el blog
coldkde
Tengo que ponerme al día con esa herramienta.
codmaquina
Si alguien quiere probar Git sin instalar nada, puede mirar Try Git, en la propia página de git-scm hay un enlace.
Lo bueno de este proyecto (GitHub) es que cuidan tanto el aspecto gráfico como la usabilidad, permitiendo hacer fork con un clic y otras funciones más. Así mismo también es interesante que muchas de las herramientas que desarrollan para la comunidad, como GitHub para Android o diversas herramientas, tienen su repositorio, de modo que se hacen las cosas de un modo bastante transparente de cara a los usuarios.
q2dg
Vaya, está bien eso de "comentario irrelevante". El primer post que hago y ya me banean. Bravo. No creo que sea irrelevante el hecho de promulgar lo bonito que es el software libre cuando ellos mismos no lo practican. Pero bueno, es sólo una opinión