1 puntos por GN⁺ 2024-01-23 | 1 comentarios | Compartir por WhatsApp
  • Presentación de Diversion, un nuevo sistema de control de versiones

    • Sasha y Egal están desarrollando Diversion, un sistema moderno de control de versiones basado en la nube.
    • Sus primeros usuarios son desarrolladores de videojuegos, a quienes les gusta la simplicidad y escalabilidad de Diversion.
    • Puedes ver una demo rápida aquí: enlace a la demo
  • Los límites de Git y la necesidad de un nuevo VCS

    • Git hizo avanzar enormemente el desarrollo de software, pero fue diseñado para el entorno de 2005 (redes lentas, proyectos pequeños y sin uso de la nube), por lo que hoy no es una herramienta perfecta para todos.
    • La mayor desventaja de Git es su escalabilidad limitada en cuanto a tamaño de repositorios y archivos, así como número de usuarios simultáneos.
    • Esa es la razón por la que Google y Meta construyeron sus propios sistemas de control de versiones, y por la que grandes empresas en desarrollo de videojuegos, semiconductores y servicios financieros todavía usan herramientas legacy como SVN y Perforce.
  • Resolver la complejidad de Git e integrar funciones modernas

    • Buscan resolver los problemas que surgen por la complejidad de Git.
    • Las excelentes capacidades de branching y merge de Git contribuyeron enormemente a las metodologías modernas de desarrollo de software.
    • Se preguntan si es posible crear un sistema de control de versiones fácil de usar, rápido y escalable, y qué se puede mejorar manteniendo las capacidades de branching de Git.
  • Características de Diversion y experiencia de usuario

    • Diversion está construido sobre almacenamiento distribuido y bases de datos, es accesible mediante una API REST y corre sobre infraestructura cloud serverless.
    • Todas las operaciones del repositorio se realizan mediante llamadas a la API (commit, branch, merge, etc.).
    • El cliente de escritorio sincroniza en tiempo real con la nube todo lo que se está trabajando, incluso antes de hacer commit.
    • Los usuarios pueden usar Diversion mediante una CLI interactiva, una web UI y plugins para IDE (actualmente disponible para JetBrains, con más en camino).
    • Desde la web UI se pueden realizar tareas básicas sin instalar el cliente de escritorio.
  • Compatibilidad con Git y planes de código abierto

    • Diversion es compatible con Git y puede sincronizarse con repositorios Git existentes (los nuevos commits de Diversion se reflejan en Git, y viceversa).
    • Planean lanzarlo como código abierto cuando la base de código madure y hayan implementado en el sitio web un directorio de repositorios open source (el código de Diversion se gestiona en Diversion).
  • Beta abierta y uso gratuito

    • Diversion está en beta abierta y se puede probar aquí: sitio web de Diversion (haz clic en Get Started).
    • Es completamente self-service y es gratis para equipos pequeños.
  • Funciones en desarrollo y solicitud de feedback

    • Construir un sistema de control de versiones es algo difícil, y Diversion todavía tiene mucho camino por recorrer.
    • Actualmente están enfocados en mejorar la velocidad, integrar CI, desarrollar plugins para IDE y motores de juegos, además de otras mejoras de usabilidad.
    • Quieren conocer opiniones y feedback sobre el progreso logrado hasta ahora.

La opinión de GN⁺

  • Diversion es un sistema moderno de control de versiones basado en la nube, y es importante que busque resolver los problemas de escalabilidad y complejidad de Git.
  • La colaboración en tiempo real, el procesamiento basado en API y la compatibilidad con Git pueden resultar funciones atractivas para los desarrolladores.
  • La beta abierta y el uso gratuito ofrecen una buena oportunidad para que muchos desarrolladores prueben una nueva herramienta, lo que podría ayudar al rápido crecimiento y mejora de Diversion.

1 comentarios

 
GN⁺ 2024-01-23
Comentarios de Hacker News
  • Cloud-Native Git Alternative

    • Lo de cloud-native es un detalle de implementación, y no importa a menos que planeen vender el nuevo sistema de control de versiones (VCS) como software empaquetado en lugar de como servicio.
    • No está claro cómo lo cloud-native resuelve los problemas cotidianos de los usuarios de Git.
  • The biggest drawback of Git is its limited scalability

    • Hay curiosidad sobre qué proporción de usuarios realmente sufre problemas de escalabilidad con Git.
    • He trabajado en empresas con desde cientos hasta decenas de miles de ingenieros, pero personalmente nunca he tenido problemas de escalabilidad con Git.
    • El uso de monorepo puede causar problemas de escalabilidad, aunque el monorepo en sí mismo ya es algo debatible.
  • Diversion is built on top of distributed storage and databases, accessible via REST API, and runs on serverless cloud infrastructure. Every repository operation is an API call (commit, branch, merge etc.).

    • Desde la perspectiva del usuario, hay poco interés en el protocolo interno.
    • Si se usa un CLI o una UI, el protocolo interno no importa.
    • Hay curiosidad por un VCS basado en árboles de sintaxis abstracta (AST).
  • most notably in games development, semiconductors and financial services are still using legacy tools like SVN and Perforce

    • En lugar de centrarse en la complejidad de Git, sería mejor enfocarse en que Git no es adecuado para manejar grandes activos binarios.
    • Se cita a Linus Torvalds diciendo que Git no maneja bien archivos grandes.
  • it was built for a very different world in 2005 (slow networks, much smaller projects, no cloud)

    • Git fue diseñado en un entorno distinto al de 2005, con redes lentas, proyectos más pequeños y sin nube.
    • Como Git es distribuido, debería funcionar bien también en entornos de nube.
    • Que un científico de datos destruyera un mes de trabajo con un comando incorrecto de Git parece un problema de configuración.
  • In our previous startup, a data scientist accidentally destroyed a month’s work of his team by using the wrong Git command

    • Más que criticar a Git, sería mejor enfocarse en su propio producto.
    • Git es un VCS distribuido, y el problema es intentar usarlo de forma centralizada sin respaldos.
  • git is bad we're better

    • Como desarrollador de videojuegos, hay poco interés en la propuesta presentada.
    • Un flujo de trabajo moderno con Git LFS funciona sin problemas.
    • Se presenta cloud-native como una característica, pero faltan detalles sobre soporte on-premise y nube privada autohospedada.
    • A los artistas les gusta la función de bloqueo de archivos, y usar bloqueos se vuelve difícil con P4 streams y ramas.
  • File locking across branches - coming soon!

    • La función de bloqueo de archivos llegará pronto, pero la propuesta todavía necesita mejoras.
  • Git cli UX made be not great, but the git datastructure of representing commits, branches, trees and blobs as immutable pointers and merkle trees is a phenomenal invention.

    • La estructura de datos de Git es una invención fenomenal, pero no hay acuerdo con que todos los comandos se realicen mediante REST API.
    • La gran fortaleza de Git es poder trabajar offline incluso con clones parciales y sincronizar los commits cuando se vuelve a estar en línea.
  • In our previous startup, a data scientist accidentally destroyed a month’s work of his team by using the wrong Git command.

    • Se reconoce que Git necesita mejoras de usabilidad, pero el problema ocurrido parece una falla de DevOps.
    • Hace falta una curva de aprendizaje más sencilla que permita mostrar a los no programadores las ventajas del control de versiones sin perder funciones avanzadas.
  • The world needs a git alternative.

    • Hace falta una alternativa a Git.
    • Git muestra sus límites cuando varias personas hacen commits todos los días al mismo repositorio.
    • Si Git pudiera manejar mejor el rebase, se estima que la velocidad de trabajo de los equipos de desarrollo de software mejoraría un 20%.
  • I get that enterprises will buy anything with "Cloud" or "AI" in the name, but VCS doesn't have anything to do with the cloud.

    • Existe la percepción de que las empresas comprarán cualquier cosa que tenga "Cloud" o "AI" en el nombre.
    • Es importante enfocarse en resolver problemas más que en la tecnología.
    • Si la experiencia de usuario no es buena, los detalles técnicos no significan nada.
    • Hace falta una estrategia de venta para un producto que ofrezca una experiencia que reduzca tiempo de desarrollo, disminuya errores y mejore la colaboración.