1 pontos por GN⁺ 2024-10-02 | 1 comentários | Compartilhar no WhatsApp
  • Mitchell Hashimoto e sua esposa se comprometeram com uma doação de US$ 300 mil para a Zig Software Foundation, apoiando publicamente o desenvolvimento independente do Zig e a operação da fundação
  • A doação será paga ao longo de 2 anos, em parcelas de US$ 150 mil por ano, e a primeira parcela já foi entregue
  • Hashimoto acompanha o Zig desde 2019, começou a usá-lo em 2021 e, desde 2022, vem escrevendo sobre a linguagem e fazendo contribuições ao compilador
  • O projeto de terminal Ghostty, lançado publicamente em 2023, também foi escrito em Zig, e atualmente ele dedica a maior parte do seu tempo de programação ao Zig
  • Embora o Zig ainda tenha caminho a percorrer até alcançar estabilidade e adoção mais ampla na indústria, Hashimoto o vê como um projeto com comunidade forte e um modelo de financiamento sustentável, e recomenda doações

Compromisso de doação de US$ 300 mil

  • Mitchell Hashimoto e sua esposa se comprometeram a doar US$ 300 mil para a Zig Software Foundation
  • O pagamento será feito ao longo de 2 anos, com US$ 150 mil por ano
    • A primeira parcela já foi entregue
  • Em um anúncio separado, a ZSF aborda a missão da fundação e os usos específicos dos recursos

Por que Hashimoto apoia o Zig

  • Hashimoto acompanha o projeto Zig desde por volta de 2019 e compartilhou publicamente seu entusiasmo com o projeto em 2021
  • Ele começou a usar Zig no fim de 2021 e, no início de 2022, passou a escrever artigos sobre Zig e a contribuir para o compilador
  • Desde então, continuou fazendo dezenas de contribuições de código ao repositório do Zig
  • O projeto de terminal Ghostty, lançado publicamente em 2023, foi escrito em Zig, e atualmente Hashimoto dedica a maior parte do seu tempo de programação ao Zig

Avaliação sobre o Zig e a ZSF

  • Hashimoto vê o Zig como um projeto de software independente capaz de gerar mudança e impacto
  • O Zig começou como um projeto de paixão e ainda mantém essa característica, e ele avalia que tanto a operação do projeto quanto a comunidade são fortes
  • Ele considera o modelo de financiamento transparente e sustentável e, do ponto de vista técnico, ambicioso e inovador, mas ao mesmo tempo prático e realista
  • Embora ainda leve tempo para alcançar estabilidade e adoção mais ampla na indústria, ele acredita que o caminho e a oportunidade para isso são claros
  • Cerca de um terço dos recursos da ZSF vem de doações individuais, e ele recomenda que quem puder faça uma doação

1 comentários

 
GN⁺ 2024-10-02
Opiniões no Hacker News
  • A frase “nossas atividades filantrópicas normalmente são privadas, mas, pelo meu histórico, acho que um apoio público ao Zig pode ajudar de fato o projeto, então estou abrindo uma exceção” me tocou de um jeito curioso
    É difícil expressar exatamente, mas há ali uma decência básica digna de elogio

    • Senti algo parecido, mas talvez na direção oposta
      Isso quer dizer que o apoio público não ajudaria as outras atividades filantrópicas? Nesse caso, fiquei curioso sobre que tipo de atividades são essas. Claro, no fim das contas, quando alguém faz filantropia com o próprio dinheiro, pode fazer como quiser, mas a formulação soou um pouco estranha
    • Se existe valor em associar o próprio nome a uma doação, então faz bastante sentido
      Neste caso, esse apoio público pode atrair contribuições adicionais maiores do que o valor doado por ele
    • Acho totalmente natural dizer de forma simples que você apoia algo em que acredita e explicar por que se importa
    • Fico pensando se é por ser um apoio público ou porque as atividades filantrópicas normalmente são privadas
  • Se alguém da Zig Foundation estiver lendo, recomendo fortemente criar um quadro de vagas
    Em lugares com leitores de um nicho específico, isso é quase uma fonte de receita gratuita

    • Eu posso tentar fazer isso
  • Pode ser uma pergunta boba, mas, como desenvolvedor web, normalmente só tenho contato com programação de sistemas/baixo nível por curiosidade
    As pessoas dizem para migrar tudo que for possível para linguagens com segurança de memória, mas o Zig não parece oferecer essa garantia. Se o Zig é uma linguagem nova, seu principal uso deve ser em projetos novos; então não faria sentido começar com uma linguagem segura em termos de memória? Se a vantagem do Zig é ser “mais moderno que C e mais simples que Rust”, entendo o apelo, mas a falta de segurança de memória não enfraquece essa vantagem?

    • Segurança de memória é um conceito útil, mas não é uma panaceia nem uma questão binária
      Se o objetivo final fosse apenas segurança, JavaScript já teria sido suficiente. Rust seguro garante segurança de memória, então é uma grande melhoria para programação de sistemas, mas nem sempre é a resposta definitiva. Há trade-offs conforme a aplicação e, pessoalmente, acho mais importante quão fácil é alcançar segurança do que ter segurança garantida. O problema de C e C++ é que era difícil demais torná-los seguros
    • Nas áreas em que Zig realmente brilha, escrever o mesmo código em Rust provavelmente exigiria muito unsafe, o que na prática equivale a desligar os recursos de segurança de memória
      Ainda precisamos ver se o Zig é de fato menos seguro que Rust. De qualquer forma, para tornar um programa seguro é preciso escrever muitos testes, e Rust não elimina magicamente todos os bugs. Em Zig, testando bastante em modo de depuração, provavelmente dá para pegar a maioria dos bugs de segurança de memória. Ainda assim, se eu fosse criar algo como um navegador web, acho que usaria Rust
    • Também é possível escrever código muito rápido e muito seguro em C/C++
      Basta olhar para a indústria de jogos ou para a indústria em geral na época em que o software precisava ser gravado em disco para distribuição. O problema hoje é que a complexidade das linguagens aumentou, e a proficiência média dos desenvolvedores de software caiu. O Google criou Go em parte para resolver esse problema, e Rust é outra linguagem que colocou segurança de memória no centro do design. Outro motivo pelo qual Rust ajuda a escrever programas mais seguros é que ele é muito menos complexo que C++. Ele está ficando cada vez mais complexo, mas felizmente a comunidade Rust incorporou profundamente o conceito de segurança de memória, então, mesmo que a linguagem fique mais complexa, essa vantagem e os hábitos dos desenvolvedores devem permanecer
      Zig também é uma boa escolha se você valoriza segurança. Ele simplifica coisas com sintaxes como defer e oferece vários alvos de execução e ferramentas para detectar problemas de segurança de memória durante o desenvolvimento. Não é algo imposto pelo compilador; é detectado em tempo de execução em builds de desenvolvimento/não-ReleaseFast, mas ainda assim é uma melhoria em relação a C/C++
    • Não sei se faz sentido rotular o Zig inteiro como “inseguro em termos de memória”
      Ele tem uma quantidade considerável de ferramentas e verificações de segurança de memória que C não tem. Segurança é um espectro. C é menos seguro que C++, C++ é menos seguro que Zig, Zig é menos seguro que Rust, Rust é menos seguro que Java, e Java é menos seguro que Python. Comportamento indefinido e corrupção de memória ainda são possíveis em todos eles; a diferença é quão fácil é que aconteçam
    • Acho que a falta de segurança de memória enfraquece parcialmente as vantagens do Zig
      Mas o Zig ainda não é uma linguagem finalizada, então é difícil cravar isso agora. Zig tem bons recursos de segurança de memória; não está no nível de JavaScript ou Rust, mas também não é igual a C. Quando verifiquei antes, uso após liberação era um grande problema, e, se isso não for resolvido, acho que o Zig não terá futuro
      JavaScript é uma linguagem realmente segura em termos de memória, mas seu runtime e seu nível de abstração não são adequados para programação de sistemas. Para programação de sistemas, acho que é preciso algo que seja seguro por padrão em termos de memória, mas com rotas de escape, e com uma abstração baixa, algo um nível acima do PDP-11 virtual que compiladores e CPUs em geral vêm tendo como alvo. Deve permitir que o programador pense de acordo com o modelo de execução da CPU sem ficar soterrado nos detalhes, além de ter interoperabilidade muito boa com C
      Acho que Rust resolveu bem a primeira parte. O ponto fraco é a segunda. Ele tem recursos de baixo nível, mas eles ficam enterrados sob um monte de complexidade de recursos da linguagem. Além disso, ele não permite alguns padrões de gerenciamento de memória que são completamente seguros, levando a usar unsafe com frequência demais ou a distorcer o código para caber no espaço da solução, não no domínio do problema
      Zig é fraco na primeira parte. Tem bons recursos, mas também grandes lacunas. Por outro lado, é bastante forte na segunda. O que eu gostaria é que o Zig oferecesse segurança de memória por padrão, mas de forma muito mais flexível que Rust, mantendo suas vantagens de baixa abstração e interoperabilidade com C
  • Ao ver a notícia recente de que migraram para self-hosting, fiquei com a impressão de que é um projeto especialmente eficiente, que não vai desperdiçar doações

  • “Querida, tem uma linguagem de programação de que eu gosto muito e queria conversar sobre ela”
    “Hã?…”
    “Eu gosto muito, muito dessa linguagem, então queria fazer uma doação…”
    “……Lá vem você de novo……”

    • Ou pode acabar sendo assim
      “Ótimo! Vamos pegar nosso Cirrus SF50 Vision e entregar pessoalmente para o Andrew Kelley”
  • É claramente uma boa notícia, mas, para colocar em perspectiva, esse valor equivale mais ou menos ao salário de 0,75 a 1 desenvolvedor experiente que trabalha com compiladores
    É especulação, mas imagino que a Microsoft gaste por ano, só com TypeScript, 10 a 20 vezes isso, e muito mais com C++/C# etc.

    • Existem desenvolvedores que ganham isso, e a probabilidade é maior em lugares como Microsoft ou Mozilla, mas, considerando o mercado global e pequenos projetos de compiladores, provavelmente há muitos desenvolvedores de compiladores experientes que ganham menos de US$ 150 mil por ano
      Claro que o custo de um desenvolvedor não se limita ao salário. Ainda assim, senti que vagas semelhantes às de desenvolvedor de compiladores lidando com compiladores de padrão ANSI em grandes empresas de tecnologia, em comparação com trabalhos mais livres, têm um dia a dia bastante desagradável, então há muito de “adicional de periculosidade” embutido
    • Para um projeto relativamente novo e de alto potencial como esse, a função pode ser uma oportunidade bem atraente para quem já acredita no Zig
      Com financiamento adequado, isso vira um catalisador que permite não precisar ter um segundo emprego nem trabalhar só à noite/fins de semana
  • Sinceramente, estou muito animado com o Zig
    Ele é enxuto e ágil, sem excessos, e não é uma linguagem criada por alguém em uma torre de marfim que não se importa com usabilidade real. Também não foi projetada por uma equipe de doutores como Haskell, mas claramente parece ter se inspirado em ideias úteis de Rust, Haskell e afins. Acho que escrever código em Zig deve ser bem interessante

    • Eu também estou animado com o Zig de forma parecida
      As garantias de segurança de memória talvez não sejam tão abrangentes quanto as do Rust, mas seria ótimo ver Zig no Linux Kernel algum dia. Programadores antigos de C do kernel talvez se adaptem mais facilmente ao Zig do que ao Rust
    • Sei que a turma do Zig não vai gostar dessa opinião, mas, quando der para desativar o zig fmt em lugares como vim ou VS Code, volto a apostar no Zig
      Quando preferências de estilo viram imposição, fica um gosto amargo. Parece uma atitude que não respeita desenvolvedores que usam a linguagem como ferramenta. Também pode ser sinal de um problema mais profundo na participação da comunidade e na abertura a outros pontos de vista, e o Zig de fato parece ter esse problema[0]
      Para empresas que precisam de consistência no código, basta rodar um linter; em projetos de fim de semana, não me importo com nada além das minhas próprias preferências de estilo. É uma questão de saber se o Zig é ou não uma linguagem para adultos. Se, de qualquer forma, vou ser obrigado a programar de um jeito específico, não há motivo para não usar Rust, que ainda oferece segurança de memória de graça
      [0] https://github.com/ziglang/zig/issues/16270