Algunas veces las personas se refieren a patrones de diseño como características faltantes del lenguaje de programación. Para evitar el debate sobre qué es un patrón de diseño, digamos que solo consideramos los patrones originales de GoF. Por ejemplo, el patrón singleton desaparece en Scala, que admite objetos singleton utilizando la palabra clave object
.Patrón de diseño como característica de idioma (faltante)
Hay pocos recursos alrededor de esto, notablemente Are Design Patterns Missing Language Features de la wiki C2, o Are design patterns really language weaknesses? de SO. Pero no pude encontrar una cobertura no obstinada, objetiva e integral de esta pregunta.
Idealmente, quisiera una matriz con los patrones de diseño GoF (fila) y algunos lenguajes de programación convencionales (columnas), donde cada celda se referiría a una discusión sobre el patrón en el lenguaje de programación específico.
Para evitar el debate sobre lo que PL debe tener en cuenta, también podemos solucionarlo y elegir: Java (como representante OO estáticamente tipado), Smalltalk (como un representante tipado dinámicamente), Haskell (como representante funcional), Scala (como un representante funcional oo/híbrido), Lisp (como un representante de meta-programación), JavaScript (como un representante basado en prototipos). Y deje otros PL para notas secundarias o comentarios. Sé que podemos discutir sobre esta elección, pero eso ya sería realmente interesante de tener para estos idiomas.
Esto de todos modos siempre será una pregunta abierta, pero me siento como preguntado como está, esto está lo suficientemente enfocado como para tener una mejor respuesta.
¿Quizás esta matriz ya existe en alguna parte? ¿O alguien tiene suficiente conocimiento para elaborarlo? ¿O alguien es lo suficientemente entusiasta como para comenzar y convertirlo en una respuesta wiki para que otros puedan continuar?
En lugar de hacer una pregunta subjetiva abierta sobre SO, ¿por qué no simplemente escribes una publicación de blog y la desarrollas a medida que encuentras nuevas implementaciones de un patrón? – slugster
No hay una mejor respuesta posible para esto. Yo votaría por wiki de la comunidad. –
@slugster Mi idea es, de hecho, escribir una publicación de blog (o una de mis amigas lo hará), y la pregunta es sobre la recopilación de referencias a las mejores discusiones sobre el patrón específico w.r.t a un idioma determinado. Entonces puedo compilar eso en una entrada de blog. Mientras tanto, probablemente también responderé mi propia pregunta y esbozaré un borrador de la matriz. – ewernli