stringtranslate.com

La décima regla de Greenspun

La décima regla de programación de Greenspun es un aforismo en los círculos de programación informática y especialmente de lenguajes de programación que establece: [1] [2]

Cualquier programa en C o Fortran suficientemente complicado contiene una implementación ad hoc , informalmente especificada, llena de errores y lenta 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 incluyen toda la funcionalidad que teóricamente se necesita para escribir cualquier programa informático complejo, y que las características requeridas para desarrollar y gestionar dicha complejidad en otros lenguajes de programación son equivalentes a algún 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 aleatoria 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 los sistemas que incluyen subsistemas complejos y altamente configurables. [3] En lugar de incluir un intérprete personalizado para algún lenguaje específico del dominio , la regla de Greenspun sugiere utilizar un lenguaje ampliamente aceptado y con todas las funciones como Lisp.

Paul Graham también destaca el carácter satírico del concepto, aunque basado en cuestiones reales:

Eso suena como una broma, pero sucede tan a menudo y en distintos grados en grandes proyectos de programación que existe un nombre para el fenómeno: la 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, se trata de un nombre inapropiado. De hecho, no existen reglas anteriores, solo la décima. La razón de esto según Greenspun:

Lo siento, Han-Wen, pero no hay nueve leyes anteriores. Solo estaba tratando de darle a la regla un nombre memorable. [5]

El hacker Robert Morris declaró posteriormente 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 tono de 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 arranque pero que puede ser en sí mismo algo variable en calidad, al menos comparado con un Common Lisp autoalojado limpiamente. [7]

Véase también

Referencias

  1. ^ Greenspun, Philip (1990–2017). «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. ^ "La décima regla de Greenspun: ¿todo proyecto grande incluye un intérprete de Lisp?". Stack Exchange . 2017-04-12 . Consultado el 2023-05-01 .
  4. ^ Graham, Paul (2004). Hackers y pintores: grandes ideas de la era informática . O'Reilly Media . ISBN 978-0-596-00662-4.
  5. ^ Greenspun, Philip (27 de septiembre de 2003). "Décima regla de la programación".
  6. ^ "Citas de Lisp". paulgraham.com .
  7. ^ Rhodes, Christophe (15 de mayo de 2008). SBCL: un Common Lisp con arranque seguro (PDF) . Apuntes de clase en informática . Consultado el 1 de mayo de 2023 .