2 pontos por GN⁺ 2024-02-19 | 1 comentários | Compartilhar no WhatsApp
  • Em uma conversa com Nathan, Max e Antonio, cofundadores da Zed, houve perguntas sobre os motivos das escolhas técnicas, a importância do Rust e a intenção de manter a propriedade da stack tecnológica.
  • Eles voltaram a responder e compartilharam uma versão editada da conversa de uma hora.

Do Atom ao Zed: uma jornada de 10 anos

  • Os três cofundadores trabalharam juntos por cerca de 10 anos e decidiram criar o Zed após desenvolver o Atom.
  • A visão do Zed é uma versão mais refinada e mais concreta da visão inicial do Atom, e as escolhas técnicas estão intimamente ligadas a ela.
  • Escolhas técnicas como Rust, aceleração por GPU e CRDTs são importantes para alcançar as metas do Zed.

Escolhas técnicas e visão

  • A visão do Zed é criar um editor de texto leve que oferece funcionalidade de IDE quando necessário.
  • Ao desenvolver o Atom, não foi possível realizar plenamente essa visão por causa de limitações técnicas e da falta de maturidade técnica dos desenvolvedores da época.
  • Com o surgimento do Rust, surgiu a oportunidade de superar as limitações existentes.

Limitações do Atom e novo começo

  • Durante o desenvolvimento do Atom, houve problemas de desempenho devido às limitações do JavaScript e das tecnologias web.
  • Em 2017, ao sentir os limites da plataforma existente, decidiram recomeçar o Zed do zero.
  • Eles queriam melhorar o desempenho por meio do Rust e da aceleração por GPU.

Impacto do Rust

  • O Rust oferece abstrações de alto nível com excelente desempenho.
  • As "abstrações de custo zero" do Rust têm um papel importante no desenvolvimento de editores de texto.
  • Embora seja possível obter desempenho semelhante com C++ ou C, o Rust oferece uma experiência de desenvolvimento mais fácil e segura para os desenvolvedores.

Importância de possuir a stack inteira

  • A equipe do Zed possui toda a stack tecnológica, desde o tree-sitter até o GPUI, o framework de UI com aceleração por GPU.
  • Possuir toda a stack é uma escolha intencional e permite controle total sobre desempenho e funcionalidades.

Equilíbrio entre abstração perfeita e urgência

  • É importante construir apenas o que é necessário, apenas na medida certa, e revisar quando preciso, com base no que foi aprendido.
  • Investir tempo suficiente nas partes centrais é essencial para garantir alta qualidade e desempenho.

Relação entre ferramenta de desenvolvedor e tecnologia

  • Usuários de ferramentas para desenvolvedores podem se interessar mais pela tecnologia, e a tecnologia tem impacto no desempenho e nos recursos oferecidos ao usuário.
  • Como o Zed é escrito em Rust, ele facilita as contribuições dos desenvolvedores e incentiva a participação da comunidade.

Opinião do GN+

  1. O processo de desenvolvimento da Zed demonstra o quão importantes as escolhas técnicas podem ser para a visão e o desempenho do produto. A escolha de uma linguagem moderna como Rust prova que é possível melhorar simultaneamente a produtividade dos desenvolvedores e o desempenho do produto.
  2. Possuir toda a stack tecnológica permite que a equipe do Zed tenha flexibilidade na otimização de desempenho e no desenvolvimento de recursos, o que tem papel decisivo na construção de um editor de texto de alto desempenho.
  3. No contexto de ferramentas para desenvolvedores, a tecnologia usada pode impactar ainda mais a experiência do usuário final e influenciar como o Zed será recebido pela comunidade de desenvolveders. O uso do Rust torna mais atraente contribuir com o Zed, impactando positivamente seu crescimento e evolução.

1 comentários

 
GN⁺ 2024-02-19
Opinião no Hacker News
  • Um framework de interface de usuário personalizado pode ser divertido agora, mas pode causar problemas ao implementar acessibilidade. Implementar acessibilidade em uma framework personalizado sem perder desempenho não é fácil, e exige trabalho complexo específico para cada plataforma. Como o Zed está se posicionando não como um editor simples, mas como uma ferramenta de colaboração, é importante que todos os desenvolvedores da equipe possam usá-lo.

    Existe uma ferramenta chamada AccessKit que pode tornar esse trabalho um pouco mais fácil, mas não está claro se ela é adequada para um editor grande.

  • Atenção à licença que precisa ser aceita antes de usar o editor de texto Zed. O conteúdo do usuário é classificado como “User Content” e só é enviado ao ambiente quando você compartilha projetos em colaboração com um usuário do Zed. O acesso ao conteúdo do usuário é restrito apenas para depuração e para melhorar a solução.

    Os usuários podem tirar suas próprias conclusões com base nessas informações.

  • O Zed parece muito promissor, mas ainda não dá para usar porque não há suporte a host remoto/contêineres de desenvolvimento. Esse recurso do VSCode é importante no meu fluxo de trabalho e prefiro usar meu Mac como um portal para escrever código com VMs e contêineres. Isso melhora o isolamento de projetos e a postura de segurança.

  • Excelente entrevista, que traz boa visão sobre as abordagens de desenvolvimento dos desenvolvedores. Fiquei pensando em várias maneiras diferentes de olhar para o desenvolvimento.

    Os desenvolvedores acham que o nome “Zed” já é considerado o nome perfeito de um editor de texto no Zig, mas alguns acham que “Zag” seria mais adequado.

  • Não uso o Zed, mas vi o José Valim usando-o durante uma sessão de código em tempo real. Eu uso principalmente o VSCode, mas a função “Find All” do Zed foi marcante para mim. Assim como no VSCode, ele abre uma janela de resultados mostrando snippets de todos os arquivos correspondentes, mas no Zed você pode editar os snippets diretamente dali. Isso contrasta com o VSCode, onde você precisa clicar no resultado e abrir o arquivo para editar.

  • O Zed não funciona em Windows ou Linux. Ele pediu para ser avisado quando funcionar nessas plataformas.

  • A entrevista foi ótima e ficou evidente o quanto foi pensado no ‘gold-plate’. O melhor trabalho normalmente sai na segunda tentativa ou depois. Fiquei curioso sobre os planos para permitir configurar o Zed por meio de scripts. Ainda não usei muito o Zed, mas existe uma ferramenta como Neon que pode ajudar usuários de VSCode e Atom.

  • Eu testei o Zed e senti que era semelhante ao VSCode. O recurso multiplayer é melhor que o Live Share, mas para eu me convencer a mudar ainda faltam mais coisas. Se pudesse substituir o Xcode, eu me inclinaria mais para usar o Zed. Sinto incômodo no Xcode e gostaria de uma experiência de desenvolvimento iOS semelhante à do Android Studio.

  • Prefiro apps nativos, mas no momento preciso usar o VSCode. Senti falta ao ver quanta energia o VSCode gasta com o piscar do cursor. O Zed é leve e rápido, mas como estou acostumado ao suporte do Jupyter Notebook e ao desenvolvimento remoto em uma máquina Ubuntu no Mac, o VSCode funciona bem. Espero que o desenvolvimento continue até o Zed suportar meu fluxo de trabalho.

  • Dei uma olhada na página About do Zed e a função de codificação em tempo real parece útil. Parece um projeto interessante para desenvolvedores, com possibilidade de escrever algoritmos, otimizar desempenho, programar em GPU etc. Mas fico com a dúvida se precisamos realmente de outro editor de texto que não seja funcionalmente equivalente a Vim e a um multiplexador de terminal.