1 pontos por GN⁺ 2024-01-23 | 1 comentários | Compartilhar no WhatsApp
  • Apresentando o Diversion, um novo sistema de controle de versão

    • Sasha e Egal estão desenvolvendo o Diversion, um sistema moderno de controle de versão baseado em nuvem.
    • Os primeiros usuários são desenvolvedores de jogos, que gostam da simplicidade e da escalabilidade do Diversion.
    • Uma demonstração rápida pode ser vista aqui: link da demo
  • As limitações do Git e a necessidade de um novo VCS

    • O Git trouxe um grande avanço para o desenvolvimento de software, mas foi projetado para o contexto de 2005 (redes lentas, projetos pequenos, sem uso de nuvem), então não é uma ferramenta perfeita para todos hoje.
    • A maior desvantagem do Git é sua escalabilidade limitada em relação ao tamanho do repositório e dos arquivos, além do número de usuários simultâneos.
    • Esse é o motivo de Google e Meta terem criado seus próprios sistemas de controle de versão, e também a razão de grandes empresas em áreas como desenvolvimento de jogos, semicondutores e serviços financeiros ainda usarem ferramentas legadas como SVN e Perforce.
  • Resolvendo a complexidade do Git e integrando recursos modernos

    • A proposta é resolver os problemas causados pela complexidade do Git.
    • Os excelentes recursos de branching e merge do Git contribuíram muito para as metodologias modernas de desenvolvimento de software.
    • A questão é se é possível criar um sistema de controle de versão que seja fácil de usar, rápido e escalável, mantendo os recursos de branching do Git e melhorando o restante.
  • Recursos do Diversion e experiência do usuário

    • O Diversion é construído sobre armazenamento distribuído e banco de dados, pode ser acessado via API REST e roda em infraestrutura cloud serverless.
    • Todas as operações do repositório são feitas por chamadas de API (commit, branch, merge etc.).
    • O cliente desktop sincroniza em tempo real com a nuvem tudo o que está sendo trabalhado, inclusive antes do commit.
    • Os usuários podem usar o Diversion por meio de uma CLI interativa, interface web e plugins de IDE (JetBrains disponível atualmente, com mais opções chegando em breve).
    • Pela interface web, é possível realizar tarefas básicas sem instalar o cliente desktop.
  • Compatibilidade com o Git e planos de open source

    • O Diversion é compatível com Git e pode ser sincronizado com repositórios Git existentes (novos commits do Diversion são refletidos no Git, e vice-versa).
    • Há planos de lançar o projeto como open source quando a base de código estiver mais madura e um diretório de repositórios open source for implementado no site (o código do Diversion é gerenciado no próprio Diversion).
  • Open beta e uso gratuito

    • O Diversion está em open beta e pode ser testado aqui: site do Diversion (clique em Get Started).
    • É totalmente self-service e gratuito para equipes pequenas.
  • Recursos em desenvolvimento e pedido de feedback

    • Construir um sistema de controle de versão é uma tarefa difícil, e o Diversion ainda tem um longo caminho pela frente.
    • No momento, o foco está em melhorar a velocidade, integrar CI, desenvolver plugins para IDEs e engines de jogos, além de outras melhorias de usabilidade.
    • A equipe gostaria de ouvir opiniões e feedback sobre o progresso até agora.

Opinião do GN⁺

  • O Diversion se destaca como um sistema moderno de controle de versão baseado em nuvem, com foco em resolver os problemas de escalabilidade e complexidade do Git.
  • Recursos como colaboração em tempo real, processamento baseado em API e compatibilidade com Git podem ser bastante atraentes para desenvolvedores.
  • O open beta e a oferta de uso gratuito dão a muitos desenvolvedores uma boa oportunidade de testar uma nova ferramenta, o que pode ajudar no crescimento e na evolução rápida do Diversion.

1 comentários

 
GN⁺ 2024-01-23
Comentários no Hacker News
  • Cloud-Native Git Alternative

    • "Cloud-native" é um detalhe de implementação e não importa, a menos que haja um plano de vender o novo sistema de controle de versão (VCS) como software empacotado em vez de serviço.
    • Não está claro como ser cloud-native resolve os problemas do dia a dia dos usuários de Git.
  • The biggest drawback of Git is its limited scalability

    • Há curiosidade sobre qual porcentagem de usuários realmente enfrenta problemas de escalabilidade no Git.
    • Já trabalhei em empresas com de centenas a dezenas de milhares de engenheiros, mas pessoalmente nunca enfrentei problemas de escalabilidade no Git.
    • O uso de monorepo pode causar problemas de escalabilidade, mas o próprio monorepo é controverso.
  • 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.).

    • Do ponto de vista do usuário, há pouco interesse no protocolo interno.
    • Ao usar CLI ou UI, o protocolo interno não importa.
    • Há curiosidade sobre um VCS baseado em árvore sintática abstrata (AST).
  • most notably in games development, semiconductors and financial services are still using legacy tools like SVN and Perforce

    • Melhor focar no fato de que o Git não é adequado para lidar com grandes ativos binários, em vez de na complexidade do Git.
    • Citação de Linus Torvalds sobre o Git não lidar bem com arquivos grandes.
  • it was built for a very different world in 2005 (slow networks, much smaller projects, no cloud)

    • O Git foi projetado em um contexto diferente de 2005, com redes lentas, projetos menores e sem nuvem.
    • Como o Git é distribuído, ele deveria funcionar bem também em ambientes de nuvem.
    • O caso de um cientista de dados destruir um mês de trabalho com um comando errado de Git parece ser um problema de configuração.
  • In our previous startup, a data scientist accidentally destroyed a month’s work of his team by using the wrong Git command

    • Seria melhor focar no próprio produto em vez de criticar o Git.
    • O Git é um VCS distribuído, e o problema foi tentar usá-lo de forma centralizada sem backups.
  • git is bad we're better

    • Como desenvolvedor de jogos, não houve muito interesse na proposta apresentada.
    • Um workflow moderno com Git LFS funciona sem atritos.
    • Cloud-native foi apresentado como recurso, mas faltam detalhes sobre suporte a on-premise e nuvem privada self-hosted.
    • Há preferência dos artistas por file locking, e usar locking com streams e branches do P4 é difícil.
  • File locking across branches - coming soon!

    • O recurso de file locking será lançado em breve, mas a proposta ainda precisa melhorar.
  • 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.

    • A estrutura de dados do Git é uma invenção fenomenal, mas não há concordância com a ideia de que todos os comandos devam acontecer via REST API.
    • O ponto forte do Git é poder trabalhar offline com clone parcial e sincronizar os commits quando se volta a ficar online.
  • In our previous startup, a data scientist accidentally destroyed a month’s work of his team by using the wrong Git command.

    • Reconhece-se a necessidade de melhorar a usabilidade do Git, mas o problema ocorrido parece ter sido uma falha de DevOps.
    • É preciso uma curva de aprendizado mais suave que apresente as vantagens do controle de versão para não programadores, mantendo os recursos avançados.
  • The world needs a git alternative.

    • Há necessidade de uma alternativa ao Git.
    • O Git tem limitações quando várias pessoas fazem commit diariamente no mesmo repositório.
    • Se o Git lidasse melhor com rebase, a velocidade de trabalho das equipes de desenvolvimento de software aumentaria 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 a percepção de que empresas comprarão qualquer coisa que tenha "Cloud" ou "AI" no nome.
    • É importante focar em resolver problemas, não na tecnologia em si.
    • Se a experiência do usuário não for boa, os detalhes técnicos não têm valor.
    • É necessária uma estratégia de vendas para um produto que ofereça uma experiência que reduza o tempo de desenvolvimento, diminua erros e melhore a colaboração.