Accidentalmente creé un scheme

Una entrada de blog juguetona sobre “crear accidentalmente” un lenguaje parecido a Scheme provoca intercambios sobre qué cuenta realmente como Scheme, tocando la regla de Greenspun y los orígenes de JavaScript como un posible Scheme en el navegador, limitado por decisiones de marketing y de sintaxis. Los comentaristas desmenuzan el título basado en memes y sin verbo para lectores no familiarizados con la jerga de internet, al tiempo que comparten recursos, anécdotas y opiniones sobre aprender y usar varios dialectos de Lisp como Common Lisp, Scheme, Clojure, Janet y Racket. El hilo destaca tanto el poder conceptual como las peculiaridades culturales de las familias de lenguajes Lisp, desde los sistemas de macros y la recolección de basura hasta la alegría (y el dolor ocasional) de escribir compiladores e intérpretes por diversión.

Título, memes y gramática deliberadamente mala

  • Muchos comentarios preguntan por el verbo que falta en “I accidentally a scheme.”
  • Otros lo explican como un viejo meme de internet (“I accidentally [verbo faltante] X”) y lo conectan con memes similares (“one does not simply…”, estilo LOLcat).
  • Varios hablantes de ESL encuentran este uso confuso o irritante; otros sostienen que señala un tono juguetón e informal y que es un juego de palabras intencional, no un error.
  • Algunos lo desmenuzan lingüísticamente (verbo omitido, chiste con adverbio como verbo, efecto de jardín engañoso).

Qué cuenta como un Scheme (y la relación de JavaScript)

  • Debate sobre si JavaScript es “un Scheme”, “influenciado por Scheme” o no es Scheme en absoluto.
  • Un bando dice que Scheme está bien definido (a través de sus informes), así que el JS temprano no califica.
  • Otros señalan que diseñadores de lenguajes respetados han llamado a JS un Scheme, y argumentan que la taxonomía es difusa y algo vacía.
  • Anécdotas históricas: JS se pensó inicialmente como Scheme-en-el-navegador, luego fue alterado por la dirección y el marketing; descrito como “Lisp con ropa de Java”.
  • Se invoca la regla de Greenspun: los sistemas complejos/DSLs tienden a “accidentally a Scheme” con el tiempo.

S-types y S-expresiones

  • Un comentarista recuerda unos obscuros “S-types” de una pasantía de investigación: esencialmente S-expresiones bien especificadas usadas como formato de intercambio de datos.
  • Otro lo vincula con la sintaxis estandarizada de S-expresiones para sistemas criptográficos (SPKI/SDSI); le sorprende que la especificación haya sido retomada.

Aprender y usar Lisp

  • Mucho entusiasmo por aprender un Lisp; muchos dicen que los programadores de Lisp parecen divertirse más.
  • Recomendaciones:
    • Common Lisp: rápido, maduro, con herramientas potentes.
    • Clojure: buenas perspectivas laborales; enseña inmutabilidad y composición elegante; se elogian sus sitios de acertijos.
    • Racket: citada como especialmente agradable.
    • Janet: ligera, embebible; comunidad divertida, pero sin celdas cons tradicionales, así que a algunos les parece menos “lispera”.
  • Varias personas recomiendan SICP y sus conferencias.
  • Se sugieren proyectos de “escribe tu propio Lisp” (como MAL) como camino de aprendizaje, pero otros advierten que inventar tu propio dialecto en aislamiento puede limitar la comprensión de la cultura y los conceptos principales de Lisp.

Detalles de implementación, GC y estructuras de datos

  • Se habla de REPLs, desarrollo basado en imágenes y restarts como partes centrales de la experiencia Lisp “divertida”.
  • A algunos no les gusta el modelo de imagen/distribución de Common Lisp; otros lo sortean con flujos de trabajo basados en código fuente.
  • El enfoque de Janet en arrays/tuplas provoca un debate sobre rendimiento entre listas enlazadas y arrays; algunos sostienen que las listas enlazadas rara vez son la respuesta correcta, otros enfatizan los compromisos según el problema.
  • Se comenta brevemente sobre los recolectores de basura: un comentarista es ampliamente hostil al GC, otros mencionan interés en GCs alternativos (p. ej., Whiffle) y en probar GCs en otros proyectos.

Estilo de escritura del artículo enlazado

  • Varios elogian la prosa del ensayo por ser juguetona, densa y “pomposa en el buen sentido”.
  • Algunos señalan que este estilo es delicioso para blogs, pero sería malo para documentación técnica.