stringtranslate.com

La décima regla de Greenspun

La décima regla de programación de Greenspun es un aforismo en la programación de computadoras y especialmente en los círculos de lenguajes de programación que dice: [1] [2]

Cualquier programa C o Fortran suficientemente complicado contiene una implementación ad hoc , especificada informalmente, lenta y plagada de errores de la mitad de Common Lisp .

Descripción general

La regla expresa la opinión de que la flexibilidad y extensibilidad argumentadas diseñadas en el lenguaje de programación Lisp incluye todas las funciones que teóricamente se necesitan para escribir cualquier programa de computadora complejo, y que las características requeridas para desarrollar y administrar tal complejidad en otros lenguajes de programación son equivalentes a algunas subconjunto de los métodos utilizados en Lisp.

Otros lenguajes de programación, aunque afirman ser más simples, requieren que los programadores reinventen de manera desordenada una cantidad significativa de funcionalidad necesaria que está presente en Lisp como una base estándar y probada en el tiempo.

También puede interpretarse como una crítica satírica de sistemas que incluyen subsistemas complejos y altamente configurables. [3] En lugar de incluir un intérprete personalizado para algún lenguaje de dominio específico , la regla de Greenspun sugiere usar un lenguaje ampliamente aceptado y con todas las funciones como Lisp.

Paul Graham también destaca la naturaleza satírica del concepto, aunque basado en cuestiones reales:

Parece una broma, pero sucede con tanta frecuencia y en diversos grados en grandes proyectos de programación que existe un nombre para el fenómeno: Décima Regla de Greenspun. [4]

La regla fue escrita alrededor de 1993 por Philip Greenspun . Aunque se la conoce como su décima regla, es un nombre inapropiado. En realidad no hay ninguna norma anterior, sólo la décima. La razón de esto según Greenspun:

Lo siento, Han-Wen, pero no existen 9 leyes anteriores. Sólo estaba intentando darle a la regla un nombre memorable. [5]

El hacker Robert Morris declaró más tarde un corolario que aclara el conjunto de programas "suficientemente complicados" a los que se aplica la regla:

…incluido Common Lisp. [6]

Este corolario se refiere en broma al hecho de que muchas implementaciones de Common Lisp (especialmente aquellas disponibles a principios de los años 1990) dependen de un núcleo de bajo nivel de C compilado , que evita el problema del bootstrapping pero puede ser en sí algo variable en calidad, al menos en comparación. a un Common Lisp limpiamente autohospedado . [7]

Ver también

Referencias

  1. ^ Greenspun, Philip (1990-2017). "La investigación de Philip Greenspun" . Consultado el 23 de diciembre de 2020 .
  2. ^ Graham, Paul (mayo de 2002). "La venganza de los nerds" . Consultado el 1 de mayo de 2023 .
  3. ^ "Décima regla de Greenspun, ¿todos los proyectos grandes incluyen un intérprete Lisp?". Intercambio de pila . 2017-04-12 . Consultado el 1 de mayo de 2023 .
  4. ^ Graham, Paul (2004). Hackers y pintores: grandes ideas de la era de las computadoras . Medios O'Reilly . ISBN 978-0-596-00662-4.
  5. ^ Greenspun, Philip (27 de septiembre de 2003). "Décima regla de programación".
  6. ^ "Citas ceceantes". paulgraham.com .
  7. ^ Rodas, Christophe (15 de mayo de 2008). SBCL: un ceceo común que se puede ejecutar con cordura (PDF) . Apuntes de conferencias sobre informática . Consultado el 1 de mayo de 2023 .