16 pontos por GN⁺ 2024-11-01 | 1 comentários | Compartilhar no WhatsApp
  • Para quem lida com codebases grandes, programar no notebook pode ser um peso
  • A ventoinha fica girando sem parar, os servidores de linguagem ficam sem memória e o tempo de rebuild é longo
  • No Zed, é possível abrir projetos em qualquer máquina via SSH
  • A UI roda totalmente localmente, entregando gráficos perfeitos a 120 fps, enquanto servidores de linguagem, tarefas e terminal rodam no servidor remoto, permitindo aproveitar hardware em nuvem

Configurando um ambiente de desenvolvimento remoto

  • Para edição remota de código, o Zed vem trabalhando em mudanças de infraestrutura para oferecer suporte a SSH
  • Foi preciso resolver vários problemas, como manter a conexão SSH, configurar o servidor remoto e integrar os recursos
  • Para a conexão SSH, ele usa a configuração ControlMaster para manter uma única conexão por host
  • Após a conexão, ele baixa o servidor remoto adequado ao sistema operacional e à arquitetura
  • O servidor remoto compilado com musl não precisa de linkagem dinâmica, então pode funcionar até em distribuições antigas
  • Mesmo que a conexão caia, o servidor remoto continua em execução e, ao reconectar, os servidores de linguagem permanecem totalmente inicializados
  • Alterações não salvas são salvas em backup localmente para que o trabalho não seja perdido

Colaboração e projetos via SSH

  • Fazer projetos via SSH funcionarem junto com colaboração foi um desafio
  • Em uma colaboração entre duas pessoas por SSH, pelo menos 4 nós podem estar envolvidos, então o protocolo de sincronização da colaboração foi testado
  • O Project foi dividido em partes lógicas para que possa ser ativado em modos remoto e local dependendo de o cliente ser host da colaboração, host SSH ou convidado da colaboração
  • Novos testes instanciam cada papel e o servidor de colaboração para verificar se a sincronização ocorre corretamente
  • Ao trabalhar em um projeto com um amigo ou colega, tanto faz se o projeto está no notebook ou em uma máquina acessível via SSH: isso é tratado de forma transparente

Resumo do GN⁺

  • O Zed oferece aos desenvolvedores que lidam com codebases grandes um ambiente de desenvolvimento eficiente usando servidores remotos
  • O recurso de desenvolvimento remoto via SSH melhora o desempenho ao aproveitar hardware em nuvem
  • O recurso de colaboração dá suporte à sincronização entre vários nós, permitindo colaboração fluida
  • O Zed está disponível para macOS e Linux e oferece uma nova experiência para desenvolvedores
  • Um projeto semelhante com funcionalidade parecida é a extensão Remote Development do Visual Studio Code

1 comentários

 
GN⁺ 2024-11-01
Comentários do Hacker News
  • Programar no Mac usando Zed com SSH Remoting e Orbstack é um ambiente dos sonhos

    • É possível iniciar uma máquina Linux no Orbstack em poucos segundos e conectar via SSH pelo Zed, obtendo um ambiente de desenvolvimento Linux rápido
    • Parece com WSL e VSCode para macOS, mas com uma sensação melhor
    • Houve inspiração em trabalhos anteriores de Mitchell Hashimoto
    • Já usou VMware e Docker Desktop, mas eram pesados para conseguir um ambiente de desenvolvimento fluido e rápido
    • Com Zed e Orbstack, conseguiu um sistema rápido e elegante
  • Há curiosidade sobre o modelo de receita do Zed e se ele é open source

    • É preocupante construir um fluxo de trabalho dependente de um produto de empresa
  • O recurso de desenvolvimento remoto do Zed instala e executa um binário no host remoto

    • A máquina local se conecta ao servidor remoto via SSH, e o Zed baixa e inicia o servidor
  • Usa o Zed para desenvolvimento em C, C++, Rust e Angular e está muito satisfeito

    • Já experimentou várias ferramentas como JetBrains, vscode e vim, mas o Zed é superior para programação do dia a dia
    • Não consegue usá-lo para desenvolvimento em C# por falta de recursos de depuração
    • Ele se destaca por sua resposta extremamente rápida
  • Ao desenvolver alternando entre vários computadores, usa tmux e nvim para manter as sessões

    • Parece que Zed e VS Code não oferecem suporte a esse caso de uso
  • A velocidade do Zed é ótima, mas faltam recursos essenciais como destaque de erros inline e botão para executar código

    • No momento, o Zed IDE parece mais um editor de texto leve com suporte básico a IA
  • Compartilhamento de tela baseado em imagem pode ser uma escolha melhor

    • Os recursos de colaboração do Zed são bons, mas é preciso considerar problemas de compatibilidade com outros apps
  • Quer uma solução de edição remota realmente portátil

    • As soluções do Zed e do vscode, que exigem instalar um servidor no servidor remoto, não são adequadas
    • Quando os ambientes remotos são diferentes, é difícil copiar um projeto e fazê-lo funcionar com facilidade
    • Os recursos do Zed são bons e estão evoluindo, o que é positivo
  • Não é uma boa ideia executar apps desconhecidos em um servidor remoto confiável

    • Fazer todo o trabalho localmente é mais rápido
    • É possível processar arquivos aproveitando os recursos nativos do SSH
  • A ausência de menção ao Emacs ou ao Tramp é preocupante

    • Parece que o foco está apenas na onda da IA