Eu acidentalmente um esquema

Uma postagem de blog brincalhona sobre “criar acidentalmente” uma linguagem parecida com Scheme provoca trocas sobre o que realmente conta como Scheme, abordando a regra de Greenspun e as origens do JavaScript como um Scheme que teria sido executado no navegador, limitado por decisões de marketing e sintaxe. Os comentaristas desvendam o título baseado em meme e sem verbo para leitores não familiarizados com gíria da internet, além de compartilhar recursos, anedotas e opiniões sobre aprender e usar vários dialetos Lisp, como Common Lisp, Scheme, Clojure, Janet e Racket. O fio destaca tanto o poder conceitual quanto as peculiaridades culturais das linguagens da família Lisp, de sistemas de macros e coleta de lixo ao prazer (e à dor ocasional) de escrever compiladores e interpretadores por diversão.

Título, Memes e Gramática Ruim Deliberada

  • Muitos comentários perguntam sobre o verbo ausente em “I accidentally a scheme.”
  • Outros explicam isso como um velho meme da internet (“I accidentally [verbo ausente] X”) e o conectam a memes semelhantes (“one does not simply…”, estilo LOLcat).
  • Vários falantes de ESL acham esse uso confuso ou irritante; outros argumentam que ele sinaliza um tom brincalhão e informal e é trocadilho intencional, não um erro.
  • Alguns o dissecam linguisticamente (verbo omitido, piada de advérbio-como-verbo, efeito de caminho de jardim).

O que Conta como um Scheme (e a Relação do JavaScript com Ele)

  • Debate sobre se JavaScript é “um Scheme”, “influenciado por Scheme” ou nem sequer Scheme.
  • Um lado diz que Scheme é bem definido (pelos seus relatórios), então o JS inicial não se qualifica.
  • Outros observam que designers de linguagens respeitados chamaram JS de um Scheme, e argumentam que a taxonomia é nebulosa e um tanto vazia.
  • Anedotas históricas: o JS foi inicialmente pensado como Scheme no navegador, depois alterado por gestão e marketing; descrito como “Lisp em roupa de Java”.
  • A regra de Greenspun é invocada: sistemas complexos/DSLs tendem a “accidentally a Scheme” com o tempo.

S-Types e S-Expressions

  • Um comentarista lembra de obscuros “S-types” de um estágio de pesquisa: essencialmente S-expressions bem especificadas usadas como formato de intercâmbio de dados.
  • Outro relaciona isso à sintaxe padronizada de S-expression para sistemas criptográficos (SPKI/SDSI); surpreendido que a especificação tenha sido revivida.

Aprender e Usar Lisp

  • Forte entusiasmo por aprender um Lisp; muitos dizem que programadores Lisp parecem se divertir mais.
  • Recomendações:
    • Common Lisp: rápido, maduro, ferramentas poderosas.
    • Clojure: boas perspectivas de emprego; ensina imutabilidade e composição elegante; sites de quebra-cabeça são elogiados.
    • Racket: citado como especialmente agradável.
    • Janet: leve, embutível; comunidade divertida, mas sem cons cells tradicionais, o que a faz parecer menos “lispy” para ზოგიuns.
  • Várias pessoas recomendam SICP e suas aulas.
  • Projetos “write your own Lisp” (como MAL) são sugeridos como caminho de aprendizado, mas outros alertam que inventar seu próprio dialeto em isolamento pode limitar a compreensão da cultura e dos conceitos mainstream de Lisp.

Detalhes de Implementação, GC e Estruturas de Dados

  • Discussão sobre REPLs, desenvolvimento orientado a imagens e restarts como partes centrais da experiência Lisp “divertida”.
  • Alguns não gostam do modelo de imagem/distribuição do Common Lisp; outros contornam isso com fluxos de trabalho orientados a source.
  • O foco de Janet em arrays/tuplas provoca um debate de desempenho entre listas encadeadas e arrays; alguns argumentam que listas encadeadas raramente são a resposta certa, outros enfatizam trade-offs dependentes do problema.
  • Coletores de lixo são brevemente discutidos: um comentarista é amplamente hostil ao GC, outros mencionam interesse em GCs alternativos (por exemplo, Whiffle) e em testar GCs em outros projetos.

Estilo de Escrita do Artigo Vinculado

  • Vários elogiam a prosa do ensaio como brincalhona, densa e “pomposa no bom sentido”.
  • Alguns observam que esse estilo é delicioso para blogs, mas seria ruim para documentação técnica.