2 pontos por GN⁺ 4 시간 전 | 1 comentários | Compartilhar no WhatsApp
  • Zig busca ser uma linguagem de sistemas que mantém o desempenho e o controle do C, ao mesmo tempo em que reduz footguns e fragilidades de depuração, com foco direto em CPU e memória
  • Seu principal diferencial é a toolchain, com o objetivo de permitir compilar para qualquer sistema operacional a partir de qualquer sistema operacional, sem dependências do sistema, usando apenas zig build
  • O atraso da versão 1.0 foi uma escolha para não prometer compatibilidade retroativa de forma precipitada, e a estrutura sem fins lucrativos 501(c)(3) permite foco em melhorias de longo prazo
  • A Zig Software Foundation teve receita de US$ 670 mil em 2024 e conta com uma estrutura diversificada de patrocínio; também migrou do GitHub para o Codeberg priorizando o funcionamento do CI
  • A política para issues e pull requests é de no LLM, no AI; contribuições feitas com IA são vistas como de valor negativo por prejudicarem o tempo de revisão e a mentoria

Origem do Zig e design da linguagem

  • Contexto de criação

    • Andrew Kelley tentou, em sequência, JavaScript, Go, Rust e C++ para criar uma estação de trabalho de áudio digital, mas concluiu que cada uma tinha limitações para entregar a experiência de usuário que desejava
    • Ele considerou o JavaScript alto demais em nível de abstração dentro do navegador, o que dificulta aproveitar plenamente as capacidades do computador
    • O Go não tinha boa interoperabilidade com bibliotecas C e, em tarefas em tempo real como áudio — que precisam terminar o processamento dentro de um tempo definido — o coletor de lixo poderia causar glitches ou pulos, tornando-o inadequado
    • O Rust, antes da versão 1.0, era difícil de satisfazer em suas regras, e até pequenas mudanças podiam causar uma cascata de erros de compilação; depois de passar um mês ajustando a renderização de fontes, ele sentiu que seria difícil avançar além disso
    • O C++ foi produtivo no começo, mas pequenos erros de digitação ou enganos podiam levar a bugs de corrupção de memória que exigiam semanas de depuração; mesmo usando “C estilo C++”, com compilador C++ e linker C, o problema dos footguns permanecia
    • O ponto de partida do Zig foi a visão de não comprometer a experiência do usuário com base no que a toolchain permite, mas sim no que o computador é fundamentalmente capaz de fazer
  • Por que ele acredita que pode substituir o C

    • A visão é que o Zig é melhor que C porque melhora falhas e fragilidades do C sem abrir mão do poder da linguagem
    • Outras tentativas de substituir o C abriram mão de algo que o C tinha; o Zig, por outro lado, faz tudo o que o C faz, reduzindo footguns e aumentando a capacidade de depuração
    • Enquanto o C só oferece inteiros otimizados para inteiros com sinal e semântica de wraparound para inteiros sem sinal, o Zig permite escolher, tanto em tipos com sinal quanto sem sinal, entre wraparound ou garantia de ausência de overflow, sendo descrito como mais “C” que o próprio C
    • Para substituir o C, é preciso conseguir escrever código reutilizável em qualquer lugar — kernels de sistemas operacionais, dispositivos embarcados, videogames, WebAssembly etc.; a avaliação é que, se o Zig oferecer o mesmo nível de funcionalidade e confiabilidade do C, as pessoas tenderão a escolher a opção com melhor desempenho e menos bugs
  • Diferença em relação ao Rust

    • A diferença central entre Rust e Zig está no sistema de tipos
    • No Rust, é preciso descrever em uma metalinguagem regras como se parâmetros de função suportam clone, quais interfaces suportam e quais tipos podem ser passados
    • No Zig, em vez disso, passam-se tipos concretos ou tipos genéricos que funcionam como templates de C++
    • Há um trade-off em que o código Rust oferece mais garantias do sistema de tipos, enquanto o código Zig ganha em simplicidade de leitura
    • O Rust segue naturalmente para um estilo RAII parecido com o C++, em que objetos referenciam outros objetos e são destruídos automaticamente quando a contagem de referências chega a zero
    • No Zig, os alocadores são muito mais explícitos; contagem de referências também é possível, mas o código precisa ser escrito explicitamente para isso
    • Em Zig, é comum usar estratégias de alocação de memória adaptadas à aplicação: agrupar alocações com um arena allocator e descartá-las de uma vez, usar um alocador de propósito geral em uma abordagem orientada a objetos, ou criar uma estratégia híbrida para um caso específico
    • A ideia de pensar no que se quer que a CPU faça e escrever código para que ela execute exatamente isso é vista como mais natural em Zig do que em Rust
  • Recurso matador e toolchain

    • O recurso matador do Zig é a toolchain
    • Trata-se de um conjunto de software sem dependências do sistema, que funciona em qualquer sistema operacional e permite compilar código para qualquer sistema operacional alvo
    • O grau de dificuldade para mexer em um projeto pode ser medido por quantos pacotes de sistema precisam ser instalados a partir do README, se o procedimento muda conforme o sistema operacional, quantos comandos são necessários para configurar o ambiente, ou se Docker ou hardware específico são exigidos
    • O melhor cenário é uma linha, uma dependência, funcionando sempre para todo mundo, e o passo de build no README de um projeto Zig deveria se resumir a zig build
  • Regras da linguagem e interface de IO

    • A regra que trata variáveis não utilizadas como erro de compilação é vista como uma forma de economizar tempo ao capturar bugs durante grandes refatorações, e o custo de adicionar um comentário para descartar a variável é considerado pequeno
    • Graças ao suporte de editor da equipe do ZLS, é possível ativar uma configuração para descartar automaticamente variáveis não utilizadas e remover esse descarte caso elas voltem a ser usadas
    • A nova interface de IO reader / IO writer é uma abstração para escrever uma única vez código reutilizável, como bibliotecas de carregamento de imagem ou código de serialização de formatos de dados
    • O objetivo é separar em pacotes a lógica que recebe um reader como parâmetro para dados de entrada e um writer para dados de saída, permitindo reutilizar a mesma lógica em vários aplicativos
    • Quando a leitura e a escrita acontecem sob uma camada de abstração, o compilador pode ter mais dificuldade para entender a lógica e otimizar o código, o que pode custar desempenho
    • A avaliação é que um design que inclui buffers dentro da interface encontra o ponto ideal entre permitir que o compilador gere bom código e ainda assim garantir reutilização

Casos de uso, 1.0 e a direção após o LLVM

  • Casos de uso reais

    • O Zig é apresentado como uma linguagem para quando você quer controlar completamente o computador, extrair o máximo de desempenho e uso de memória e criar uma experiência de usuário convincente
    • Ghostty é um emulador de terminal criado por Mitchell Hashimoto e é avaliado como um bom projeto em termos de qualidade de código, gestão de comunidade e testes de fuzz
    • TigerBeetle é um banco de dados de transações financeiras que, em vez da estratégia de colocar OLTP sobre um banco de dados relacional como o PostgreSQL, criou um banco de dados de propósito específico e é descrito como “mil vezes mais rápido” do que essa estratégia
    • O TigerBeetle pré-aloca em tempo de execução toda a memória que usará dali em diante e depois não faz alocação dinâmica, mantendo a latência previsível e consistente
    • Bun é um motor JavaScript que usa JavaScriptCore e várias bibliotecas em C++, e o código de integração foi escrito em Zig
    • Ele acredita que o Bun foi recentemente vendido para a Anthropic e que, como resultado, aumentou o número de pessoas querendo usar Zig para IA
    • A Uber usa Zigcc como compilador C para fazer compilação cruzada junto com o código C do qual seu código Go depende, e o utiliza em builds para ARM64
  • Por que o 1.0 está demorando

    • O Zig ainda não tem 1.0 mesmo após 10 anos, mas 1.0 é, em essência, uma promessa de compatibilidade retroativa, e isso tem um significado diferente para cada projeto
    • Ele compara que o Go quase não mexeu na linguagem por muito tempo após o 1.0, enquanto o Rust adotou o 1.0 relativamente cedo, mas conseguiu mudar bastante a linguagem por meio das editions mantendo a compatibilidade retroativa
    • A Zig Software Foundation não é uma startup, mas uma organização sem fins lucrativos 501(c)(3), então não há pressão de investidores, venda da empresa nem plano de saída, e há tempo para melhorar no longo prazo
    • Quando chegar a hora de lançar o 1.0, ele quer que seja um “produto de amor sem concessões”, sem ficar preso a decisões ruins travadas às pressas
    • Sobre “worse is better”, ele considera que a própria expressão não faz sentido linguisticamente, e diz que o Zig busca more with less
    • A ideia é obter grande utilidade de um recurso comptime com pouca complexidade e de uma toolchain capaz de compilar para sistemas operacionais e arquiteturas completamente diferentes com uma única flag
    • Ele acredita que, quando o 1.0 sair, a adoção certamente crescerá muito, mas o objetivo é criar uma linguagem para os próximos 50 anos
    • Ele acha que os resultados dessas escolhas começarão a aparecer no próximo lançamento 0.16
  • Por que se afastar do LLVM

    • O motivo para se afastar do LLVM é o entendimento de que é preciso evitar uma dependência central para o produto principal
    • Como exemplo, ele cita o jogo arcade competitivo para 10 pessoas Killer Queen, no qual os desenvolvedores usaram a engine de física da Unity e acabaram em uma situação em que até pequenas mudanças ou correções de bugs nessa engine alteravam a sensação do jogo competitivo, tornando impossível atualizar para uma nova versão da Unity
    • Na visão dele, depender disso em um produto central foi um erro, e o Zig está corrigindo algo parecido em relação ao LLVM
    • O LLVM é comparado a “rodinhas de bicicleta”; após mais de 10 anos desenvolvendo o Zig, ele aprendeu mais sobre desenvolvimento de compiladores e agora acredita que pode tirar as rodinhas e competir com o LLVM
    • No backend próprio para x86, a compilação incremental já consegue gerar um novo binário em menos de 50 ms após mudanças, mesmo em uma codebase grande com milhões de linhas
  • Nome e caminho de aprendizado

    • O nome Zig foi escolhido quando ele procurava uma palavra curta com zero resultados para “Zig programming language” e, enquanto um script em Python imprimia palavras aleatórias, acabou selecionando esse nome
    • A iguana mascote é chamada de “ziguana”
    • Para iniciantes, ele recomenda fortemente o Ziglings
    • O Ziglings é composto por uma série de exercícios com código quase funcional, mas com problemas inseridos, em que se aprende novos recursos da linguagem consertando programas quebrados
    • A transição de C para Zig é especialmente suave, e tudo o que pode ser feito em C também pode ser feito em Zig, com menos footguns
    • Quando ocorre um segmentation fault em C, normalmente não aparece nada além de “segmentation fault”, e é preciso depender da habilidade de usar um depurador; no Zig, porém, é possível receber um stack trace completo apontando para cada linha do código
    • Aprender Zig como primeira linguagem de programação depende da pessoa, mas ele considera que, para quem quer entender como os computadores funcionam, é uma boa linguagem por ensinar sobre CPU e memória

Operação da fundação, governança e escolha de plataforma

  • Estrutura financeira e de patrocínio

    • Em 2024, a receita total da Zig Software Foundation foi de US$ 670 mil
    • As fontes de receita são diversificadas entre patrocinadores individuais e doações de várias empresas, em uma estrutura na qual uma única entidade não consegue impor a direção do desenvolvimento
    • Se um patrocinador específico exigir “faça isto”, isso pode ser recusado, e ele acredita que seria possível sobreviver mesmo que esse patrocinador cortasse o dinheiro
    • Os patrocinadores só podem influenciar da mesma forma que qualquer outra pessoa, como participando do rastreador de bugs, enviando pull requests e conversando nos canais de desenvolvimento; não existe um canal secreto separado de alta prioridade
    • O salário anual de Andrew Kelley é de US$ 154 mil, definido pelo primeiro conselho com base no salário anual mediano de engenheiros de software sênior na cidade onde a organização sem fins lucrativos foi fundada
    • A fundação tem 1 funcionário e cerca de 5 contratados remunerados em tempo integral, e 91% da receita do ano anterior foi paga a contratados que trabalham no projeto
    • Sobre uma oferta incondicional de US$ 100 milhões, ele respondeu que até aceitaria, mas não usaria para expandir, e sim deixaria no banco para não precisar arrecadar fundos por 100 anos
    • Atualmente ele gerencia uma equipe de 5 pessoas e afirmou que passar de 10 já pode ser um peso grande, e que não pretende se tornar gestor de uma organização de 100 pessoas
  • 501(c)(3) e transparência

    • Ele diferencia 501(c)(3) de 501(c)(6)
    • O 501(c)(6) é uma liga empresarial, e a Rust Foundation é citada como um caso em que empresas como Amazon, Netflix, Microsoft e Meta doam porque têm um interesse comum no sucesso do Rust
    • O 501(c)(3) não permite lobby junto ao governo e existe apenas para a declaração de missão, não para os interesses de empresas
    • O post de blog que divulga detalhadamente receitas e despesas não é uma obrigação, mas uma transparência voluntária; ele considera que isso também ajuda na confiança e na arrecadação porque os indicadores são bons
  • Por que deixou o GitHub e as redes sociais

    • Ele deixou o Reddit e o Twitter porque publicar nesses sites foi se tornando cada vez menos relevante, como postar no Slashdot ou no Digg, e porque queria minimizar o tempo gasto com marketing como engenheiro de software
    • Ele considera que, em vez de redes sociais nas quais algoritmos controlam o que aparece ou exigem interação com trolls, é um investimento melhor para o crescimento da comunidade focar mais em eventos presenciais e meetups
    • O motivo de mover o repositório principal do Zig do GitHub para o Codeberg no fim de 2025 foi que o GitHub deixou de fornecer corretamente os resultados de integração contínua, então “simplesmente não funcionava”
    • Depois da mudança para o Codeberg, o servidor de integração contínua voltou a funcionar
    • Sair do GitHub Sponsors foi uma decisão difícil porque poderia significar perder uma fonte de receita, mas ele avaliou que, para escrever software, a prioridade máxima é ter a CI funcionando
    • Depois de sair do GitHub, ele descreve a situação financeira como “completamente ok”
    • O Zig é um software sob licença MIT, uma doação incondicional ao mundo do software, e ele vê os patrocínios também como doações incondicionais
    • O motivo para escolher o Codeberg foi que ele é essencialmente parecido com o GitHub, o que tornou a transição fácil, além de ser uma organização sem fins lucrativos alemã
    • Um code forge não é um meio de marketing do projeto; ele considera que as pessoas descobrem a linguagem em anúncios, meetups, vídeos no YouTube e grupos de meetup do Zigday, e não no GitHub ou no Codeberg
  • BDFL e governança de longo prazo

    • Projetos de software muitas vezes precisam escolher entre controle hierárquico e processo democrático, e muitos adotam o modelo BDFL por sua simplicidade
    • Quando uma pessoa controla, ela assume a responsabilidade de entender tudo e de manter uma visão consistente para o projeto
    • Em comitês, diferentes casos de uso e visões igualmente válidos podem entrar em conflito, e quando não existe um único design capaz de satisfazer dois casos de uso ao mesmo tempo, o compromisso pode levar a um produto pior
    • Mesmo que Andrew Kelley saia, ele acredita que, do ponto de vista da engenharia de software, seus colegas são muito competentes e conseguiriam continuar tocando o projeto
    • Do ponto de vista político da organização e da fundação, porém, ainda há trabalho a fazer, e ele considera que, como sistemas por onde o dinheiro circula tendem a se corromper, por enquanto é necessária uma liderança hierárquica forte para resistir à influência do dinheiro
    • A forma em que um único líder forte controla tudo não é sustentável, então, para a sustentabilidade de longo prazo, é necessária democracia, mas o desafio é desenhá-la de modo que não se corrompa com o tempo pela influência do dinheiro
  • Critérios de sucesso

    • O sucesso do Zig, sob uma perspectiva, já foi alcançado
    • Há fontes de receita diversas, o projeto é financeiramente independente de uma única entidade, existem usuários satisfeitos que continuam usando, e há cerca de dois lançamentos por ano com melhorias contínuas
    • Sob outra perspectiva, ele quer uma adoção maior, e uma medida de sucesso é atingir o nível de adoção de Go e Rust
    • A adoção comercial é útil porque pode trazer doações corporativas, mas é preciso cuidado para manter a diversidade também nessas contribuições
    • Em geral, se você cria algo útil de forma ampla, isso também se torna útil para empresas, e ele vê isso refletido no fato de as pessoas estarem usando Zig em IA

Política de IA, ferramentas de desenvolvimento e o futuro da programação

  • Política de no LLM, no AI para contribuições

    • O Zig adota uma política rígida de no LLM, no AI para issues e pull requests
    • Ele considera contribuições de IA “consistentemente lixo” e entende que, além de não terem valor, ainda consomem tempo de revisão e geram valor negativo
    • Atualmente há mais de 200 pull requests abertas, e o tempo de revisão é o gargalo entre uma equipe pequena de desenvolvimento e muitos contribuidores
    • Ele vê um padrão em contribuições feitas por IA: após algumas rodadas de revisão, o contribuidor não entende o conteúdo, copia e cola o feedback da revisão no chat e depois “lava” a resposta recebida, apresentando-a como se fosse sua
    • A principal razão para fazer revisão de código e aceitar contribuições é a mentoria, e o objetivo é fazer o contribuidor crescer para que no futuro se torne um membro central da equipe ou alguém que faça contribuições mais valiosas
    • “contributor poker” é o processo de decidir em quem vale a pena investir tempo limitado para formar programadores e contribuidores melhores
    • Ele entende que quem usa IA sempre cai na categoria de contribuidor pontual com baixo valor de investimento, que não aprende e não tem chance de se tornar parte da equipe central
    • O projeto Zig também é um projeto educacional, e faz parte da missão oferecer orientação e ensino aos estudantes
    • Se a regra fosse “permitir apenas bons PRs de IA”, seria necessário alguém para julgar isso, mas uma proibição total é uma política fácil de aplicar
    • Ele reconhece que detectar se algo foi gerado por IA nem sempre é fácil e que alguns casos podem ter passado, mas ao revisar muitos pull requests, às vezes fica claro que a reação ao receber feedback não é a de um ser humano
  • Licença MIT e treinamento de IA

    • O codebase do Zig está sob licença MIT e, para quem não está acostumado com licenças de software, isso na prática é quase como domínio público
    • Ele pode ser usado para quase qualquer finalidade; ao copiar código, é preciso reproduzir a licença; não há garantia; e não se pode responsabilizar o Zig por problemas
    • É irônico que grandes empresas possam usar o código do Zig para treinar IA, enquanto contribuições de IA ao Zig são proibidas
    • Ele sustenta firmemente a ideia de que o Zig é um presente incondicional ao mundo, então considera aceitável seu uso em treinamento de IA
    • Ele não tentou o suficiente para dizer se LLMs têm mais dificuldade com código Zig do que com Python ou JavaScript, mas Mitchell Hashimoto diz usar amplamente IA para programar no Ghostty
    • Uma pessoa com o nick Rocker teria criado uma ferramenta para fazer a IA funcionar melhor com Zig e visto sucesso nisso
  • Vibe coding e o futuro da programação

    • Acompanhar um projeto por muito tempo, aprender técnicas e ler como problemas foram resolvidos estimula a imaginação, faz pensar no que a própria pessoa poderia criar, ensina algo e gera conexão emocional
    • Ele considera que blogs de vibe coding do tipo “testei esta versão do Claude ou aquela versão do OpenAI e funcionou surpreendentemente bem” não inspiram
    • Ele enfatiza que o padrão de qualidade de software não deve ser “surpreende por não ter bugs”, mas sim uma perfeição sem concessões
    • Em uma conversa privada com Richard Feldman, ele experimentou vibe coding e considera a tecnologia em si fundamentalmente interessante
    • Ainda assim, sente forte rejeição ao fato de cerca de quatro empresas controlarem isso de forma centralizada e terem controle total sobre os modelos e seu comportamento
    • Ele diz não querer trocar a forma de escrever código usando seu próprio computador e sua própria eletricidade por uma forma de usar programação de código fechado em computadores de outras pessoas, através da rede, via assinatura mensal
    • Algumas pessoas pagam US$ 300 por mês, e ele descreve essa proposta como algo insano do seu ponto de vista
    • Ele acredita que, daqui a 10 ou 20 anos, humanos ainda continuarão escrevendo código, e que programar é divertido e ao menos como hobby sempre vai continuar existindo
    • Ele diz que os melhores apps em celulares e computadores são feitos por pessoas no tempo livre, como hobby, e que o software livre e de código aberto, assim como o desejo de ser dono do próprio dispositivo, não vão desaparecer
  • Ambiente de edição e ferramentas de refatoração

    • É necessário um ambiente de trabalho resiliente que permita continuar editando código mesmo quando a sintaxe do Zig muda
    • Ferramentas avançadas como tree-sitter e language servers partem do pressuposto de uma árvore sintática estável ou de uma linguagem estável, então, se a linguagem quebra, elas podem quebrar junto
    • Pessoalmente, ao escrever Zig, ele usa terminal e Vim em vez de um ambiente sofisticado, e o Vim lida muito bem com mudanças
    • ZLS é a sigla de Zig language server, uma implementação do Language Server Protocol para Zig, e é um projeto de terceiros que não é operado pela Zig Software Foundation
    • O site do Zig recomenda produtos da JetBrains, mas Andrew Kelley nunca os usou porque são closed source
    • No passado, ele via com bons olhos ferramentas avançadas de refatoração como extração de função, reordenação de parâmetros de função e renomeação global, como as oferecidas por JetBrains ou Eclipse
    • No longo prazo, ele quer uma ferramenta de refatoração parecida com uma linguagem de consulta que permita fazer grandes mudanças com base em informações de tipo e outros indícios
    • Em tarefas com escopo claro, como renomear variáveis, se uma ferramenta confiável cuidar disso, daria para ter 100% de certeza no resultado a ponto de nem precisar criar um commit e revisá-lo
    • Se pedir a mesma tarefa a uma ferramenta de IA, ainda será preciso revisar o código, então isso acaba levando mais tempo e sendo uma escolha pior do que uma ferramenta de refatoração confiável

Motivação pessoal e visão sobre open source

  • Motivação e dificuldades para continuar com o Zig

    • O trabalho no Zig nasce da motivação de amar computadores e querer fazer com que os computadores sirvam às pessoas
    • O Zig é descrito como um presente otimista de que uma excelente linguagem de programação e toolchain levarão a esse resultado
    • Satisfazer os usuários e criar uma experiência de uso poderosa traz grande satisfação, e a sensação de fazer um bom software é comparada à sensação que um músico tem ao se apresentar no palco
    • A parte mais difícil é lidar com os impostos e a papelada necessários para operar uma organização sem fins lucrativos
    • Isso é indispensável para operar legalmente sem problemas e receber grandes doações, mas atualmente esse trabalho está nas mãos de Andrew Kelley
    • Em alguns dias ele faz trabalho contábil, em outros programa, e considera os dias de programação como dias bons
    • A mudança nas interfaces de IO reader / IO writer do Zig 0.15 foi resultado de encontrar um ponto ideal, criar a API, testá-la e buscar uma nova solução comparando com outras linguagens de programação, mas depois foi preciso passar 6 meses corrigindo a biblioteca padrão e os projetos do ecossistema
  • Burnout e conselhos

    • Ele vê o burnout como algo que acontece quando se coloca muito esforço, mas não se enxerga muita recompensa por esse esforço
    • Andrew Kelley se esforça bastante, mas em geral está protegido do burnout porque vê recompensas como usuários felizes, lançamentos do Zig, notas de lançamento e melhorias
    • Trabalhos em que a recompensa demora vários meses, como a mudança de IO, podem parecer burnout, mas acabam melhorando quando a recompensa finalmente chega
    • Para quem está passando por burnout, ele recomenda primeiro cuidar de exercícios, sono suficiente e alimentação saudável
    • Se a pessoa não gosta do que faz ou sente que a empresa não está fazendo algo valioso para o mundo, mas ainda assim precisa trabalhar duro, isso cria as condições para o burnout
    • Nesse caso, procurar outro emprego ou seguir o caminho difícil de criar o próprio trabalho, como abrir uma empresa, é uma das opções, e ele aconselha que, se você trabalha em uma “corporação sem alma”, vá para casa às 17h, faça outra coisa e não se esforce demais
  • Projetos que ele admira e diversidade de navegadores

    • O primeiro projeto que ele admira é o Linux
    • Ele avalia que um mundo com apenas sistemas operacionais proprietários seria muito pior, e que o Linux foi bom para a economia por permitir que não só desenvolvedores de software livre e open source, mas também países e empresas do mundo todo, construíssem negócios gratuitamente
    • O segundo é o Blender, valorizado por ser um projeto open source e uma organização sem fins lucrativos que é usado profissionalmente e compete — e vence — empresas com muito dinheiro e muita gente de desenvolvimento
    • O terceiro é o VLC; ele relembra que, quando contribuiu para o FFmpeg no passado, a organização do VLC pagou os custos de viagem para o VideoLAN Dev Days de uma pessoa que havia contribuído para o VLC ou para uma biblioteca da qual ele dependia
    • O motivo para usar o Firefox é a preocupação com a diversidade de navegadores
    • Depois que a Microsoft encerrou o Internet Explorer, os principais navegadores que restaram foram Chromium, Safari e Firefox, e ele considera problemático para a web que o Chromium ocupe a maior parte do mercado
    • Recentemente ele não tem ficado satisfeito com a Mozilla e diz sentir que, apesar de ser uma organização sem fins lucrativos, há muita corrupção e casos que parecem mostrar desalinhamento com os usuários
    • O Chromium é do Google, o Safari é da Apple, o Firefox parece estar em declínio, então faltam alternativas, e ele acha que não sabe o que fazer até que novos projetos de navegador amadureçam
  • Se voltasse para 2015, começaria o Zig?

    • Ele responde que com certeza começaria o Zig mesmo voltando para 2015
    • O dia em que deixou o OkCupid e começou a trabalhar no Zig em tempo integral foi, tomando como referência a trajetória de vida que veio depois, o melhor dia da sua vida
    • O Zig lhe deu uma profunda sensação de realização, independência, autoestima e de estar contribuindo para a sociedade
    • Ele sente que é, por natureza, uma pessoa difícil de empregar, e que para ser feliz precisava ser seu próprio chefe; depois de alcançar esse estado, encontrou a felicidade

1 comentários

 
GN⁺ 4 시간 전
Comentários no Lobste.rs
  • Espero que pessoas de fora da Zig Software Foundation também reconheçam a paixão e a filosofia que Andrew e a equipe principal têm ao levar o projeto adiante
    Não dá para culpar a JetBrains por tentar deixar a entrevista mais chamativa para viralizar, mas no fim das contas as melhores perguntas não eram sobre Zig vs Rust, e sim sobre o Zig feito com organização sem fins lucrativos, sustentabilidade e carinho
    Acho que Andrew conseguiu mostrar muito bem ao mundo o lado humano que arde silenciosamente por trás do projeto
    • Sinceramente, nem acho que a JetBrains tenha conduzido tanto assim para um lado sensacionalista
      O vídeo parece muito mais direcionado a pessoas curiosas sobre Zig e a quem se interessa por como o projeto é administrado do que a quem já usou bastante Zig, e apenas trouxe temas que esse público provavelmente conheceria, sem evitá-los
      A entrevistadora também deixou as falas do Andrew aparecerem por si só em vez de atiçar o conflito, e para esse tipo de entrevista foi algo muito cuidadoso
      Só achei engraçado ver quais palavras decidiram colocar nas legendas, porque não sei quantas pessoas interessadas em Zig não saberiam o que é Linux ou a definição de abstração
      No geral, fiquei com uma impressão extremamente positiva tanto da forma como apresentaram Zig quanto da equipe de marketing da JetBrains
  • No meio da entrevista, Andrew mencionou uma ferramenta que eu criei para ajudar com o uso de Zig e IA; para quem quiser experimentar, a ferramenta é o zigdoc: github.com/rockorager/zigdoc
    Basicamente, é uma ferramenta para ver na linha de comando a documentação da biblioteca padrão do Zig e das dependências encontradas no grafo de build
  • Gostei muito da parte, nos últimos segundos do vídeo, em que Andrew diz que está feliz
  • A expressão “trabalho de amor sem concessões” cai bem
    A forma como não apressam o 1.0 é atraente, mas o Zig também tem a sorte de contar com usuários dispostos a aceitar a instabilidade das mudanças no ecossistema
  • Na área de embarcados, C foi a principal ferramenta por anos
    Não C++, simplesmente C
    Eu vinha pensando continuamente se faria meu próximo projeto embarcado em Zig ou Rust, e agora sinto que “a hora chegou”
    Esta entrevista pode acabar sendo o fator decisivo para mim, e há aqui uma tonalidade geral com a qual me identifico fortemente
  • A resposta sobre por que o Zig quer se desvincular do LLVM foi realmente muito boa
    Ela tratou muito bem das partes que correspondem às funcionalidades centrais do Zig e nas quais a equipe precisa ter mais controle