Vi, aquí en Programadores, la respuesta a esta pregunta: ¿cómo cambia el pensamiento sobre patrones de diseño y prácticas de OOP en lenguajes dinámicos y de tipo débil? Allí encontré un enlace a un artículo con un título abierto: Son patrones de diseño que faltan características del lenguaje . Pero cuando encontré fragmentos que me parecieron muy pegadizos y que probablemente se pueden verificar con la experiencia, hay un incentivo para eso, como:
PaulGraham dijo que "Peter Norvig descubrió que 16 de los 23 patrones en Design Patterns eran 'invisibles o más simples' en Lisp".
u otra oración que confirma lo que vi recientemente con personas que intentan simular clases en JavaScript:
Por supuesto, nadie habla nunca del patrón de "función", del patrón de "clase", ni de muchas otras cosas que damos por sentado porque la mayoría de los idiomas los proporcionan como características integradas. OTOH, ¿programadores en un lenguaje puramente prototipo orientado? bien podría resultarle conveniente simular clases con prototipos ...
También estoy teniendo en cuenta que los patrones de diseño son una herramienta de comunicación . Porque incluso con mi experiencia limitada participando en la creación de aplicaciones, puedo ver como un antipatrón ( ineficaz y / o contraproducente ), por ejemplo, lo que obliga a un pequeño equipo de PHP a aprender patrones de GoF para aplicaciones de intranet pequeñas y medianas. Soy consciente de que la escala, el alcance y el propósito pueden determinar qué es efectivo y / o productivo, pero aún así no pude encontrar una descripción técnica al respecto.
Vi pequeñas aplicaciones comerciales que combinaban funcionalmente con OOP y aún se podían mantener, y no sé si muchas necesitarían, por ejemplo, en Python para escribir un singleton, pero para mí un módulo simple hace lo mismo.