Autonomía digital y tecnológica

Código e ideas para una internet distribuida

Qué significa que el código de GitHub no esté en GitHub

Imago voragine.net
[actualizado el ]

Hace unos días Jorge escribía en el blog de Ecosistema Urbano sobre las capacidades de GitHub como plataforma de colaboración que trasciende los proyectos de desarrollo de software. Como explica Jorge en el post, git es un sistema de control de versiones que fue inicialmente diseñado para el desarrollo colaborativo de software. Su potencial radica precisamente en que es distribuido, al contrario que otros sistemas de este tipo. Cuando se usa git para un desarrollo cada programador tiene en su máquina una copia completa de todo el código, que comparte con el resto mediante una serie de órdenes. Como cualquier sistema distribuido, en los desarrollos que usan git ninguno de los nodos implicados es imprescindible, no hay centro y periferia.

A raíz de la publicación empezamos a debatir sobre GitHub y el protocolo que tiene detrás, git. Me interesó la conversación sobre el peligro recentralizador de GitHub, allí donde git había conseguido descentralizar. Carlos sostenía que no hay problema en usar GitHub ya que al estar basado en git, el código sigue distribuido. Lo cual es cierto y es una gran ventaja con respecto a otros servicios en internet.

Pero GitHub no es una herramienta ni un protocolo para programar con otros, eso se lo deja a git; es un espacio para compartir código y para comunicarse. GitHub es una red social de programadores. En este sentido, GitHub recentraliza las comunicaciones. GitHub es un servicio web, es parte de la nube, y no es software libre. De hecho el código de GitHub no esté disponible en GitHub. Al igual que otras redes sociales GitHub no utiliza estándares abiertos para la comunicación entre sus usuarios, por ejemplo, para el sistema de notificaciones o las listas de tareas pendientes de un repositorio.

Los sistema de gran escala dependiente de un único nodo (GitHub en este caso) tienen tarde o temprano problemas estructurales de gobernanza, precisamente por la predominancia del nodo central, además de debilidades por las mismas razones.

Por otro lado, los recursos que necesita ese nodo central para gestionar la totalidad de la red son enormes, y el sistema no es eficiente. En la página del buscador distribuido Yacy lo explican perfectamente:

The operation of data centers with enormous power consumption (and sometimes their own power plants) for central web search could be removed. Distributed search requires only the computers of the searchers.

No digo que GitHub es el mal, de hecho tiene muchas cosas buenas. Lo uso a diario como herramienta de trabajo y gracias a las facilidades que ofrece empecé a usar git y empecé a experimentar lo que significa programar colaborativamente. Pero hay que saber lo que estamos usando, bajo qué condiciones y cuáles son las limitaciones que nos impone.

8 comentarios

    • Por Carlos

    Comparto contigo el hecho de tomar conciencia a quién se les entrega los datos y qué tipo de datos se les entrega. También comparto tu preocupación por la centralización de información/poder (básicamente son dos caras de la misma moneda) a partir de cierto nivel por los problemas que puede acarrear y que explicas bien en este post (incluso en términos que ni yo mismo me había planteado -como los energéticos, por ejemplo). En este sentido descentralizar tiene muchas ventajas. Sin embargo opino dos cosas:

    1) No estoy seguro de que lo descentralizado sea siempre mejor que lo centralizado: creo que disponer de un lugar en el que encontrar información facilita mucho según qué tareas. Curiosamente en la comunidad que conozco mejor, drupal, se optó hace años por centralizar en la misma comunidad todos los repositorios oficiales de módulos y temas, no solo del núcleo sino de los contribuidos por cualquier persona. Esto ha sido un hecho diferencial respecto a otras comunidades y ha supuesto varias ventajas (Sobretodo facilidad de cara a los desarrolladores, integración de tests automáticos, seguimiento de estándares de código…), pero algún que otro problema de gobernanza (creo que honestamente han sido pocos). Lo curioso es que cada vez hay más gente optando por poner la información y gestión de tareas en github, y se empieza a cuestionar el modelo. Esto me recuerda un poco a la duda que tengo hace mucho tiempo sobre el mundo editorial o musical: si bien estoy a favor de la desaparición/reducción de intermediarios que no aporten valor (podría ser el caso de algunas editoriales o discográficas), no tengo claro que los nuevos modelos basados en multinacionales todavía mayores como Amazon, Google o Spotify sean mejores. Es más, empiezo a sospechar que son incluso peores.

    2) Como bien dices, Github va más allá de ser un almacén de código o un control de versiones (básicamente porque no lo es) y es más próxima a una red social o una herramienta de colaboración que extiende algo que ya es colaborativo de por si como git. La verdad es que su sistema de forks, pull requests, seguimiento de repositorios… ha facilitado mucho mucho el trabajo de desarrolladores y de colaboración. Y tiene algún otro mérito más como el que comentaba Jorge en su post: están tratando de que vaya más allá del mundo de la programación. Creo que de momento están añadiendo mucho valor y el precio que se paga es poco y sigue valiendo la pena (y no hablo del precio económico). A fin de cuentas podemos abandonar la plataforma en cualquier momento sin renunciar a casi nada: todo lo que es nuestro siempre seguirá siendo nuestro (código, wikis -e incluso tareas pueden exportarse/integrarse con otros sistemas), y solo lo suyo (funciones sociales). De momento de la gente de github me creo que no sean «evil».

    Otra cosa que me ha pasado por la cabeza al leer tu entrada es que sí que podría ser muy interesante tener una red social descentralizada (un poco en la línea de diaspora), e incluso creo que podría tener sentido usar git para ello. ¿Por qué no? A fin de cuentas se pueden hacer webs con git

    • Por aitor •

    Carlos, la descentralización no implica que no puedas encontrar las cosas. En un sistema de nodos distribuidos que se comunican entre sí, a efectos de búsquedas, no hay ninguna diferencia.

      • Por Carlos

      Aitor, yo no he dicho que si algo no esté descentralizado no se pueda encontrar. Solo digo que es más difícil de encontrar. Y que es un valor útil poder centralizar información (al menos hasta cierto punto).

    1. Carlos, estoy con Aitor, creo la facilidad de búsqueda no tiene nada que ver con lo distribuido o centralizado de un sistema. Las búsquedas en Torrent funcionan de maravilla, en Yacy también. Lo único que necesitan estos sistemas son masa crítica para funcionar bien, eso es cierto.

      Por otro lado, no hay ningún problema con crear nodos para facilitar el acceso a la información y eso no quiere decir que el sistema deje de ser distribuido. Por ejemplo The Pirate Bay (TPB) es eso, muchos torrents juntos.

      La clave es que el sistema torrent no es dependiente de TPB para funcionar: los ordenadores que tienen la información siguen pudiendo comunicarse sin «pasar» por la web de TPB. En cambio GitHub ha provocado que en la práctica sea necesario el uso de la plataforma para usar git, ya que es el nodo central por el que todas las comunicaciones tienen que pasar.

    • Por Jorge

    ¡Bien explicado! Estoy de acuerdo contigo.

    Los de GitHub están creando una comunidad muy importante. Mientras sean consciente de su importancia y la cuiden, no tiene por qué ser mala la centralización, y si surgen problemas, me gustaría creer que la comunidad será capaz de tomar las riendas o en el peor de los casos de saltar y reconstruirse en otro sitio.

    Espero que nunca tengan que llegar a un caso tan esperpéntico como el de http://www.hackaday.com, donde el «dueño» del blog (nótese: propietario, no editor ni redactor) decidió que quería venderlo por medio millón de dólares. La comunidad se propuso comprarlo para hacer una asociación sin ánimo de lucro, pero no lograron conseguir el dinero. Aunque al final acabó bien porque lo compró una empresa afín a la comunidad, podría haber acabado en una perversión de la visión de la página y una diáspora masiva. Creas un espacio, se construye una comunidad que es la que le da valor cultural, social y económico (visitas, beneficios), y entonces… lo vendes al mejor postor. Me pareció una auténtica barbaridad del capitalismo online.

  1. En un espacio centralizado quizás sea más importante que en los distribuidos el modelo de propiedad que tiene detrás. Al leer tu comentario Jorge, pienso que los modelos de propiedad de los espacios digitales son muy limitados. En la mayoría de los casos son propiedad de empresas. Esto provoca que las decisiones estén muy condicionadas a la rentabilidad económica y concentra la capacidad de decisión en unas pocas personas.

    ¿Conocéis ejemplos de comunidades digitales construidas en torno a espacios con modelos de propiedad diferentes? A bote pronto se me ocurre Indimedia, Wikipedia, bewelcome, Slashdot y Barrapunto.

×

Responder al comentario de aitor

*
*

 

2 trackbacks

  • Hay un sábado de común denominadores | SurSiendo Blog

    […] de una novedad: fue liberado Solus 1.0, el sistema operativo más rápido. Y una reflexión: Qué significa que el código de ‪#‎GitHub‬ no esté en GitHub, para “saber lo que estamos usando, bajo qué condiciones y cuáles son las limitaciones que […]

  • Hay un sábado de común denominadores | SurSiendo Blog

    […] de una novedad: fue liberado Solus 1.0, el sistema operativo más rápido. Y una reflexión: Qué significa que el código de ‪#‎GitHub‬ no esté en GitHub, para “saber lo que estamos usando, bajo qué condiciones y cuáles son las limitaciones que nos […]