Porque não é divertido o suficiente: por que as linguagens fracassam

O sucesso de uma linguagem de programação, argumentam alguns, tem menos a ver com elegância técnica e mais com fatores humanos como “diversão”, força do ecossistema e apoio de grandes plataformas ou empresas. Comentadores rejeitam reduzir tudo à diversão, apontando em vez disso para perspectivas de emprego, bibliotecas e ferramentas, cultura da comunidade e acidentes históricos que ajudaram linguagens como C, JavaScript, Python e Rust a prosperar enquanto opções mais refinadas ou expressivas (Lisp, Haskell, Scala, Objective-C) permaneceram de nicho. Vários paralelos são traçados com a programação assistida por IA, vista como rápida e conveniente, mas frequentemente produzindo código medíocre, reforçando a ideia de que ferramentas vencem por praticidade e integração, e não por pura sofisticação.

IA e Geração de Código

  • Vários comentários relacionam a analogia do artigo “sampler vs musician” à IA: a IA pode gerar código rapidamente, mas carece de “alma” e de visão de design.
  • Alguns argumentam que a IA é “ótima em produzir código”; outros discordam fortemente, relatando saídas inchadas, mal fatoradas e difíceis de direcionar para designs elegantes ou idiomáticos.
  • Consenso: código gerado por LLM é rápido e conveniente para scripts descartáveis ou componentes não críticos, mas ainda não é consistentemente “bom” ou arquitetonicamente sólido.

Por que Linguagens Têm Sucesso ou Fracassam

  • Muitos dizem que o sucesso raramente depende apenas da elegância da linguagem; adequação à plataforma, timing e apoio importam mais.
  • O status de “nativa de uma plataforma” (por exemplo, JS em navegadores, Swift para Apple, Java para JVM) é repetidamente citado como decisivo.
  • Ecossistema (stdlib, bibliotecas, ferramentas, documentação, mercado de trabalho) é considerado mais importante do que a sintaxe central.

Plataforma, Ecossistema e Política

  • O impulso do fornecedor é visto como crucial: Apple para Swift, Microsoft para C#/VB, Mozilla para Rust.
  • Alguns argumentam que a popularidade de uma linguagem é fortemente política: dominada por comunidades anglófonas e promotores “do grupo interno”.
  • Disponibilidade comercial vs gratuita (por exemplo, ColdFusion vs PHP) é citada como fator que moldou a adoção inicial de linguagens web.

Debates sobre Linguagens Específicas

  • Objective‑C vs Swift: discordância sobre se ObjC “fracassou” ou foi simplesmente descontinuada pela política da Apple, e não por falta de diversão.
  • JavaScript vs Python: discordância sobre qual é “boom” vs “bust”; JS vence pela ubiquidade no navegador, Python pelo ecossistema e legibilidade.
  • Scala: atribuída, de formas שונות, a uma comunidade elitista, ferramentas lentas e uma longa reescrita do compilador que não resolveu os principais pontos de dor.
  • Lisp: elogiada por REPL, macros e diversão; criticada por ecossistemas fracos e fragmentados.
  • C/C++: rejeitadas por alguns pela complexidade, mas reconhecidas por desempenho e incumbência histórica.
  • Kotlin vs Java: Kotlin é visto como mais agradável, mas incapaz (até agora) de deslocar a posição enraizada de Java.

“Diversão” vs Praticidade

  • Vários comentaristas dizem que “diversão” é subjetiva e insuficiente como preditor de sucesso.
  • Linguagens “chatas” ou rígidas (Go, Java, C) podem prosperar porque são previsíveis, apoiadas e “apostas seguras”.
  • Alguns mantenedores contratam explicitamente pessoas que gostam de programar; outros enfatizam que os empregos priorizam estabilidade, não prazer.

Ferramentas, REPLs e Experiência do Desenvolvedor

  • Bons gerenciadores de pacotes, ferramentas de build e GUIs multiplataforma são vistos como grandes impulsionadores de adoção.
  • Fluxos de trabalho dirigidos por REPL (Lisp, outras) são contrastados com fluxos centrados em testes unitários; vistos como complementares, não intercambiáveis.
  • Rust é descrita como sintaticamente “sem graça”, mas redimida por excelente tooling (cargo, crates).