2 pontos por GN⁺ 2025-02-10 | 1 comentários | Compartilhar no WhatsApp
  • Resumo do argumento de Jonathan Blow

    • A transmissão de informação entre gerações está se diluindo.
    • A prática é mais importante do que a teoria para manter a tecnologia.
    • O software controla o mundo.
    • A abstração incentiva a ignorância sobre programação de baixo nível.
    • Se o conhecimento de baixo nível for esquecido, não será possível manter softwares críticos, e a civilização entrará em colapso.
  • Críticas e contrapontos

    • O argumento de Blow contém muitos erros e mal-entendidos.
    • A veracidade da informação é importante, e a informação de Blow está errada em vários aspectos.
    • A métrica "five nines" (99,999% de disponibilidade) ainda é usada.
    • Softwares robustos continuam existindo, e o avanço tecnológico segue em frente.
    • A afirmação de que a abstração leva à perda de capacidade é exagerada.
  • Avanço tecnológico e abstração

    • Muitos programadores não querem lidar com gerenciamento de memória e ponteiros.
    • Ainda há muitas pessoas escrevendo código em C e Assembly.
    • Novas linguagens, como Rust, dão ênfase à robustez.
    • A abstração contribui para o desenvolvimento de novas tecnologias.
  • A polêmica sobre produtividade no Facebook

    • O verdadeiro produto do Facebook é uma plataforma de entrega de anúncios.
    • Muitos programadores contribuem para melhorar sistemas de publicidade.
  • Comparação entre passado e presente

    • O ambiente de desenvolvimento de software do passado é muito diferente do atual.
    • Os computadores modernos são muito mais robustos do que os do passado.
    • À medida que as expectativas dos usuários aumentam, a complexidade do software também cresce.
  • Abstração e perda de conhecimento

    • A abstração pode acelerar a perda de conhecimento.
    • Porém, a abstração também oferece a muitas pessoas a oportunidade de exercer a criatividade.
    • O importante é manter uma base técnica capaz de sustentar sistemas críticos.
  • Conclusão

    • O argumento de Blow é parcialmente válido, mas em muitos pontos é exagerado e baseado em equívocos.
    • A complexidade do software e a abstração são problemas solucionáveis.
    • O problema maior do mundo digital é a privacidade e a liberdade.

1 comentários

 
GN⁺ 2025-02-10
Comentários do Hacker News
  • Dou aulas de sistemas na Montana State, e muitos alunos muitas vezes não entendem o que é um sistema de arquivos quando começam a disciplina

    • Não concordo com tudo o que o Blow diz, mas acho que é necessário um ensino no estilo NAND-to-Tetris para alunos do ensino médio em diante e estudantes de áreas técnicas
    • Uso modelos "antigos" como Little Man Computer e um emulador simples de MIPS para ajudar os alunos a entender a origem da tecnologia
    • Quando vejo livros modernos sobre arquitetura de 64 bits, dá vontade de rir
    • Conectar a tecnologia em seus fundamentos é um problema difícil
  • Concordo com sua opinião. Assisti à palestra do Blow e acho que a crítica é importante

    • Quando Blow disse que "não conseguimos desenhar um pixel na tela", achei que ele tinha razão
    • Sou programador de engine de jogos em uma empresa de games de porte médio, e está ficando muito difícil contratar pessoas para trabalhar com código gráfico
    • O DX12 exige muito mais dos programadores do que a geração anterior (DX11), e a própria Microsoft admite que aprender DX12 é muito difícil sem experiência prévia com APIs gráficas
    • Essas APIs são voltadas para desenvolvedores que querem superar as limitações das placas gráficas e implementar otimizações de baixo nível, mas agora viraram padrão da indústria e são difíceis de ensinar para quem não tem experiência
    • Se nada mudar, o grupo de candidatos vai continuar encolhendo
  • Quando um velho desenvolvedor web reclama de abstração, ele está mirando nos desenvolvedores React

    • Quando um desenvolvedor Python reclama de abstração, ele está mirando no velho desenvolvedor web
    • Quando um desenvolvedor de aplicações C++ reclama de abstração, ele está mirando no desenvolvedor Python
    • Quando um desenvolvedor de firmware reclama de abstração, ele está mirando no desenvolvedor de aplicações
    • Quando um engenheiro elétrico reclama de abstração, ele está mirando no desenvolvedor de firmware
    • Definir o limite de "abstração excessiva" com base no conhecimento individual e depois chamar tudo além disso de "destruição da civilização" é um ponto de vista peculiar
  • Coisas como JavaScript no servidor e React transformaram a web em uma bagunça de desenvolvimento de software

    • Muitas crianças nem sabem que HTML é renderizado no navegador e acham que é o React que é renderizado no navegador
    • É tolice o CEO da Vercel achar que React é o kernel Linux do desenvolvimento
  • Blow frequentemente aponta coisas excelentes sobre desenvolvimento, mas muitas vezes erra o alvo

    • Ele teve conquistas impressionantes e tem ideias que valem ser ouvidas, mas às vezes fala bobagem
    • Acho que essa conversa sobre o colapso da civilização é uma dessas bobagens, e agradeço à refutação trazida pelo OP
    • Nem vou comentar sobre Casey Muratori; ele tenta fazer o mesmo que o Blow, mas não consegue nem fazer direito a parte boa
  • Há muitos problemas no ambiente moderno de software, e acho que abstração excessiva é um deles

    • Mas o extremo oposto também é ruim, e as pessoas romantizam demais o passado
    • Não eram só problemas de travamento e reinicialização; até sistemas que buscavam compatibilidade sofriam com inconsistências
    • Mesmo no sistema moderno menos confiável (Windows 11), meu computador é mais confiável do que qualquer computador que eu tive antes de 2010
    • Ainda consigo executar software escrito para Windows 95
  • Nem toda simplificação é abstração. Nem toda abstração é simplificação

    • Buscar simplificação costuma ser o que motiva a abstração
    • Não acho que abstração esteja matando o software ou a civilização, mas abstrações ruins prejudicam a flexibilidade e a acessibilidade
    • Quase toda linguagem oferece açúcar sintático como exemplo disso
    • O problema não é que certos elementos façam você errar mais, e sim que é difícil usar bem as ferramentas para resolver problemas complexos
  • Há muitas abstrações ruins. Por causa da "religião da velocidade" e da arrogância na tecnologia, muita coisa para na primeira tentativa

    • Quando algo vira parte de um projeto popular, outras pessoas copiam
    • Quando isso se repete por 10 a 20 anos, surge uma confusão gigantesca
    • Gosto da palestra do Jonathan Blow e volto a assisti-la uma vez por ano
    • Ele diz coisas nada controversas, mas sabe que muitos desenvolvedores não estão dando o seu melhor
  • O autor pertence a uma geração mais nova e não entende o que Blow quis dizer

    • Se você disser que o Figma está destruindo o mundo do design, designers mais jovens vão achar que está tudo bem
    • Como eles não cresceram naquele ambiente, têm menos chance de aprender os equivalentes culturais e de experiência
  • Discordo da afirmação de que "se esquecermos as coisas de baixo nível, a civilização vai ruir"

    • Há complexidade demais em usar sistemas de baixo nível para modelar processos de alto nível
    • Complexidade é o problema, e devemos minimizá-la e evitar complexidade acidental