Ho visto, qui su Programmers, la risposta a questa domanda: come cambia il modo di pensare sui modelli di progettazione e sulle pratiche OOP in linguaggi dinamici e tipicamente deboli? Lì ho trovato un collegamento a un articolo con un titolo esplicito: Le caratteristiche del linguaggio mancano nei modelli di progettazione . Ma dove ho trovato frammenti che a me sembravano molto accattivanti e che probabilmente possono essere verificati rispetto all'esperienza data c'è un incentivo per questo, come:
PaulGraham ha dichiarato "Peter Norvig ha scoperto che 16 dei 23 modelli in Design Patterns erano" invisibili o più semplici "in Lisp."
o un'altra frase che conferma ciò che ho visto di recente con le persone che cercano di simulare le lezioni in JavaScript:
Naturalmente, nessuno parla mai del modello di "funzione", del modello di "classe" o di numerose altre cose che diamo per scontate perché la maggior parte delle lingue le fornisce come funzionalità integrate. OTOH, programmatori in una lingua puramente prototipo, orientata? potrebbe essere utile simulare le classi con prototipi ...
Sto anche prendendo in considerazione che i modelli di progettazione sono uno strumento di comunicazione . Perché anche con la mia esperienza limitata nella partecipazione alla creazione di applicazioni, posso vedere ad esempio un anti-pattern ( inefficace e / o controproducente ), costringendo un piccolo team di PHP ad apprendere pattern GoF per app Intranet di piccole e medie dimensioni. Sono consapevole che la scala, l'ambito e lo scopo possono determinare ciò che è efficace e / o produttivo, ma non sono ancora riuscito a trovare una panoramica tecnica al riguardo.
Ho visto piccole applicazioni commerciali che si mescolavano funzionanti con OOP e che erano comunque mantenibili, e non so se molte persone avrebbero bisogno ad esempio in Python per scrivere un singleton, ma per me un semplice modulo fa la stessa cosa.