DEV Community

Alan Alves
Alan Alves

Posted on

A IDE do desenvolvedor do futuro 🔮

cover

👋🏽 Fala cria, blz?

Comecei a programar com o antigo FrontPage da Microsoft nos anos 2000. Desde então, experimentei várias IDEs. Se você não conheceu o Notepad++, Aptana, Sublime Text e Atom, perdeu uma época empolgante.

Hoje vamos falar da IDE mais falada do momento: ZED

E não, não estou falando sobre o famoso Mestre das Sombras do universo de League of Legends, mas sim sobre uma ferramenta que está se tornando igualmente lendária entre os desenvolvedores.

Garanto a você que, até o final deste post, ficará bastante impressionado com o que virá nos próximos meses. Sei que talvez você já tenha visto algo por aí e esteja torcendo o nariz, pensando "Essa IDE não é tudo isso". E, em partes, concordo que ela tem muito a melhorar. Mas hoje vamos falar sobre o que mais me chamou a atenção: a filosofia por trás do ZED. É algo que vai influenciar a próxima geração de desenvolvedores.

ZED

Atualmente na versão 0.123.6, ainda um bebê, o ZED é um editor de códigos multiplayer de alto desempenho desenvolvido pela Zed Industries, com um foco especial em Inteligência Artificial (eu sei, você já está cansado de ouvir sobre isso, mas me dê uma chance!). Uma das características mais impressionantes do ZED é a equipe por trás desta nova IDE: que é nada menos do que os mesmos criadores do Atom.

Para quem não conhece, o Atom é um projeto open-source desenvolvido em JavaScript pelo GitHub em 2014, que incentivou a contribuição da comunidade, permitindo extensa personalização através de temas e extensões. Sua origem, vinda diretamente do GitHub, garantiu uma adoção inicial robusta devido à confiança na plataforma, além de proporcionar integração nativa com Git e GitHub. Isso facilitou enormemente o gerenciamento de repositórios, commits e branches diretamente do ambiente de desenvolvimento. Naquela época, o Sublime Text era amplamente utilizado por desenvolvedores, mas sofreu um grande impacto com o crescimento do Atom.

meme_01

Porém, o sucesso do Atom não durou muito. Quase na mesma época, a Microsoft entrou na disputa para reconquistar o coração dos desenvolvedores com o Visual Studio Code (escrito em Electron). Não demorou para que milhares de desenvolvedores migrassem para o VS Code. Na pesquisa do Stack Overflow de 2016, o Visual Studio Code ficou em 13º lugar entre as ferramentas de desenvolvimento mais populares, com apenas 7% dos 47.000 respondentes. Dois anos depois, contudo, o Visual Studio Code alcançou o primeiro lugar, sendo usado por 35% dos 75.000 entrevistados. Na pesquisa mais recente de 2023, 73,71% dos 86.544 desenvolvedores afirmaram usar o VSCode.

meme_02

Porém, todo império tem suas ameaças e um dia cai. Será que chegou a hora do ZED mudar o curso da história, como a equipe do Atom fez no passado? Vamos entender o que ele tem de especial para essa nova geração de programadores que utilizam IA.

meme_03

Desempenho

A equipe que originalmente desenvolveu o Atom usando JavaScript decidiu adotar uma nova abordagem dessa vez, escolhendo construir um novo editor de código na linguagem de programação Rust. Rust, conhecida por ser eficiente e segura, traz um desempenho que bate de frente com linguagens de baixo nível tipo C++, com uma arquitetura focada em desempenho, dá pra esperar que ela deixe pra trás algumas limitações daquelas aplicações baseadas em Electron, tipo o VSCode. Tô por fora de Rust (nunca vi, nem comi, eu só ouço falar), mas pelo que a comunidade de desenvolvimento fala, Rust é feita para ser rápida e eficiente. Então, se a gente for levar em conta os testes de desempenho como critério principal, parece que o ZED já tá mandando aquele cruzado de direita no VSCode.

desempenho

"O objetivo que eu sempre tive é um editor leve que seja mínimo, que eu adoro usar, que pareça um editor de texto, mas tenha o poder de um IDE quando necessário, sem toda a lentidão na experiência e tipo de peso na interface do usuário, mas ainda poderoso." - Nathan Sobo (Founder/ZED)"

Não é necessário realizar benchmarks complexos para testar, basta baixar o Zed e abrir os mesmos projetos que você usa no VS Code. Você perceberá uma diferença significativa no desempenho.

Multiplayer

Se você gosta de fazer pair programming, então o ZED pode ser interessante para você. Uma das grandes propostas dessa IDE é que você não precisa mais estar no Discord para compartilhar tela ou usar uma extensão do VS Code para compartilhar códigos. Essa funcionalidade já é nativa da IDE, permitindo codificar juntos de forma mais integrada. Vários desenvolvedores podem navegar e editar dentro de um espaço de trabalho compartilhado. A equipe do ZED integrou o bate-papo ao editor, facilitando a conversa sobre qualquer linha de código em qualquer momento. Além disso, ele suporta o trabalho com canais, onde cada um possui um documento compartilhado para anotações e acompanhamento de projetos. Os canais se organizam em uma hierarquia para manter tudo organizado. Você pode compartilhar projetos com o canal e usar o bate-papo baseado em áudio ou texto para envolver os colaboradores em tempo real.

multiplayer_01

Faça um convite para outro dev acessar o seu código.

multiplayer_02

O outro dev recebe uma notificação em tempo real, convidando-o a entrar na chamada e começar a codificar juntos.

multiplayer_03

Navegue junto com o coleguinha pelo código.

multiplayer_04

Trabalhe com código em qualquer máquina.

multiplayer_05

Organização de grupos de devs através de canais.

Inteligência Artificial

Chegou a hora de falar sobre uma das áreas que mais me impressionou ao escrever este post. Assim como o VS Code tem a extensão do Copilot, o ZED também traz a mesma abordagem. Porém, eles já conseguiram trazer uma integração com a OpenAI, onde você simplesmente adiciona sua chave e pode começar a gastar 💸... ops, quer dizer, programar!

Eu realizei alguns testes que me deixaram muito impressionado 😱, veja:

ia_01

Por favor, ignore a qualidade, achei melhor colocar um gif para demonstrar

Com o meu conhecimento em outras linguagens, agora eu simplesmente posso aprender uma linguagem comparando com outra que tenho mais experiência. Inclusive, esse é o meu caso; no momento, estou começando a aprender Python. Então, isso vai me ajudar demais.

Claro que eu poderia usar o ChatGPT 3.5 diretamente, porém a facilidade de ter isso no editor é bem melhor. Sim, eu sei que existem outras opções que não geram custos. Vamos já falar sobre elas. Falando de custo, cuidado com o que você gera; a OpenAI não alivia.

openai_01

Vejam que um simples código me gerou um custo de $0.04

Acredito que a equipe do ZED em breve disponibilizará alguma forma de usar LLMs open-source. Inclusive, a própria comunidade já tem feito alguns hacks para isso. Veja o que o @sumanmichael sugeriu para que possamos usar o Ollama: https://github.com/zed-industries/zed/issues/4424#issuecomment-1958886354

À medida que as IDEs incorporam cada vez mais aspectos de IA, especialmente usando modelos de LLM que funcionam offline, a ideia do futuro é realmente mais conversar com o código do que fazê-lo.

A equipe da ZED está empenhada fortemente nesse aspecto. Se você é um especialista em IA, eles estão buscando isso urgentemente: https://zed.dev/jobs/ai-specialist

Configurações

A forma como você pode configurar o seu ZED é bem similar ao do VS Code, todas as configurações ficam salvas em um arquivo (~/.config/zed/settings.json), você pode configurar coisas como:

👉🏽 Salvamento automático
👉🏽 Configurações específicas do copiloto.
👉🏽 Configuração para recursos relacionados ao git.
👉🏽 Controle quais informações são coletadas pelo Zed.
👉🏽 Configuração para o terminal.
👉🏽 Temas

Um exemplo de configuração:

{
    "theme": "cave-light",
    "tab_size": 2,
    "preferred_line_length": 80,
    "soft_wrap": "none",

    "buffer_font_size": 18,
    "buffer_font_family": "Zed Mono",

    "autosave": "on_focus_change",
    "format_on_save": "off",
    "vim_mode": false,
    "projects_online_by_default": true,
    "terminal": {
        "font_family": "FiraCode Nerd Font Mono",
        "blinking": "off"
    },
    "language_overrides": {
        "C": {
            "format_on_save": "language_server",
            "preferred_line_length": 64,
            "soft_wrap": "preferred_line_length"
        }
    }
}
Enter fullscreen mode Exit fullscreen mode

Interface

A interface do ZED é um verdadeiro oásis de tranquilidade, tão limpa que você pode quase ouvir o som zen de uma flauta de bambu ao fundo. Será que foi essa vibe que inspirou o nome? Spoiler: não foi, mas prometo uma história ainda mais bacana na seção de curiosidades.

Mas vamos abaixar a bola um pouquinho, porque nem tudo são flores. Existem erros grotescos na usabilidade e interface, exemplo: um simples copiar um arquivo para outra pasta pode se tornar uma mini odisseia, e tem algumas coisinhas que piscam mais do que luz de natal defeituosa.

Mas nao fique chateado, calebreso(a)! A equipe do ZED está com tudo no acelerador, com um roadmap bem extenso para melhorias.

Temas

Os temas Zed estão passando por um desenvolvimento significativo. Eles não devem ser considerados estáveis ou finais. Mas você já pode encontrar variedade de temas.

tema

Veja como é simples escolher um tema

Bônus

Pra quem curte o tema Dracula (que é o meu caso), segue o link para configuração: https://draculatheme.com/zed 🧛🏽‍♂️

Extensões

Esse ponto ainda deixa muito a desejar, você não tem uma gama de extensões boas e ruins para usar como o VS Code tem.

Segue algumas extensões que você pode usar: https://github.com/zed-industries/extensions/tree/main/extensions

Mas não desanime, a equipe do ZED está trabalhando bastante para mudar esse cenário. Inclusive, há uma declaração onde eles afirmam que irão dar suporte a extensões baseadas em JavaScript.

twitter_01

Instalação

Talvez agora o ponto mais delicado do post. Quando o ZED surgiu, muitos falavam que o VS Code estava morto naquele momento. A bolha tech realmente é muito avorosada hahaha. Como algo vai matar o VS Code se funciona apenas para macOS? Mas isso pode mudar a qualquer momento, então, VS Code, fica esperto para não ir de arrasta para cima.

Segundo os criadores, os motivos de terem iniciado no macOS foram:

Somos uma equipe pequena, por isso é fundamental para nós estarmos focados. Como startup, uma de nossas principais prioridades nesta fase inicial é o aprendizado e, no momento, estamos focados nas seguintes perguntas:

  • Quais são os principais recursos que precisamos para obter tração em qualquer plataforma?

  • Nossas suposições sobre nosso eventual modelo de negócios são válidas?

Embora adorássemos apoiar usuários no Linux e Windows, adicionar essas plataformas realmente não nos ajuda a responder a essas perguntas.

Estamos investindo muito para tornar o Zed portátil, mas a adição de outras plataformas vem com custo de oportunidade no curto prazo e despesas gerais de manutenção daqui para frente. No momento, esses custos não fazem sentido para nós.

Se até essa equipe super experiente faz a validação do seu MVP, quem é você aí para já querer lançar o seu microsaas e já ficar milionário em 7 dias?

Porém, eles já começaram um roadmap para Linux. 🐧

https://github.com/zed-industries/zed/issues/7015

Então, acredito que ao longo do tempo esse não será mais o problema do ZED, que deverá estar funcionando em multiplataforma.

Existe almoço grátis com o ZED?

De acordo com a Zed Industries, o editor é totalmente open-source, o que significa que pode ser usado sem nenhum custo. No entanto, é importante estar ciente de que no futuro podem ser introduzidas opções de assinatura para recursos adicionais, especialmente voltados para equipes e colaboração. Esses recursos opcionais podem oferecer benefícios extras e funcionalidades avançadas, mas o núcleo do editor permanecerá acessível gratuitamente para todos.

O que esperar nos próximos meses?

Segundo o roadmap da equipe, segue os pontos que podemos esperar:

👉🏽 Adoção de 50 mil novos devs ativos semanais
👉🏽 Mais foco em IA (sem chave OpenAI)
👉🏽 Mais temas, idioma e extensões
👉🏽 Suporte Linux
👉🏽 Suporte na Web
👉🏽 Markdown
👉🏽 Verificação de ortográfica

O time dos sonhos:

Uma grande ferramenta se constroi com um grande time, olha essa qualidade de time que a Zed possui:

Nathan Sobo, ingressou no GitHub no final de 2011 para construir o editor de texto Atom, e liderou a equipe Atom até 2018.

Antonio Scandurra, contribuidor de código aberto, integrou a equipe Atom em 2014 e atualmente é especialista em sistemas distribuídos e tipos de dados replicados livres de conflitos, desenvolvendo um banco de dados em tempo real para Ditto em Rust.

Max Brunsfeld, se juntou à equipe Atom em 2013, contribuiu para o lançamento do Atom 1.0 e desenvolveu o Tree-sitter, uma estrutura de análise de código ultrarrápida, agora essencial para a análise de códigos no GitHub.

Nate Butler, antes de se juntar à Zed, Nate Butler dedicou seu último ano no Facebook ao desenvolvimento da visão de longo prazo do produto.

Mikayla Maki, como estagiária na Zed no verão de 2022, ela construiu o Emulador de Terminal integrado e foi posteriormente contratada.

Julia Risley, desenvolveu uma paixão por software através de projetos de jogos. Insatisfeita com os editores de texto existentes, criou o "Superb Text" para aprimorar eficiência e navegação.

Joseph Lyons, desenvolveu interesse em software testando plugins de áudio, levando-o a estudar ciência da computação.

Kirill Bulatov, desde 2010, Kirill trabalhou em diversos projetos, em 2019, apaixonou-se por ferramentas de desenvolvimento e Rust. Juntou-se à equipe Zed em 2023.

Piotr Osiewicz, em 2023, Piotr se juntou à Zed com um forte desejo de contribuir ativamente para tornar o desempenho o pilar central de seu sucesso.

Marshall Bowers, em 2023, uniu-se à Zed, buscando criar ferramentas para desenvolvedores. Aficionado por sistemas de tipos e linguagens como Rust, ele também projeta sua própria linguagem.

Conrad Irwin, ativo em ferramentas de código aberto desde 2008 e conhecido pelo depurador Ruby (pry) e como CTO na Superhuman, juntou-se à Zed em 2023 focando em colaboração para engenheiros com ênfase em UX de qualidade e dados distribuídos.

Thorsten Ball, ex-desenvolvedor em startups de mobilidade e na Sourcegraph desde 2019, contribuiu para o Batch Changes e sg. Autor de livros sobre Go e do boletim "Register Spill", juntou-se ao Zed em 2024 para criar um editor que possa superar o Vim e explorar o desenvolvimento de software em equipes grandes.

Curiosidades

Por que esse nome ZED?

Nós gostamos da simplicidade do nome "Ed", mas não queríamos sombrear o ed, o editor no qual o Unix foi originalmente desenvolvido. Nós gostamos de como a adição da letra "Z" formou a palavra "Zed", que também é o nome da letra "Z" em alguns dialetos do inglês. Como a última letra do alfabeto, parecia um nome apropriado para o editor final que estamos construindo.

https://en.wikipedia.org/wiki/Ed_(text_editor)

Já virou fã?

Eles já possuem uma loja para produtos do ZED: https://zedindustries.creator-spring.com

Nathan Sobo, depois desse posto, eu poderia ganhar pelo menos um boné, certo? 🥹

Quer ficar bem atualizado nas novidades?

Siga a trilha do zed no reddit:
https://www.reddit.com/r/ZedEditor/new/


Obrigado por ter chegado até aqui, espero muito que você tenha gostado.

🤝 Conecte-se comigo no LinkedIn para não perder nenhuma novidade! Compartilho regularmente meus insights por lá.


Top comments (0)