A volte le persone fanno riferimento a modelli di progettazione come mancanti delle funzionalità del linguaggio di programmazione. Per evitare il dibattito su cosa sia un modello di design, diciamo che consideriamo solo i pattern GoF originali. Ad esempio, il modello singleton scompare in Scala che supporta oggetti singleton usando la parola chiave object
.Design pattern come lingua mancante (mancante)
Ci sono poche risorse intorno a questo, in particolare Are Design Patterns Missing Language Features dal wiki C2 o Are design patterns really language weaknesses? da SO. Ma non sono riuscito a trovare una copertura non argomentata, obiettiva e completa di questa domanda.
Idealmente, vorrei una matrice con i modelli di progettazione GoF (riga) e alcuni linguaggi di programmazione mainstream (colonne), in cui ogni cella farebbe riferimento a una discussione sul modello nel linguaggio di programmazione specifico.
Per evitare il dibattito su ciò che PL da considerare, possiamo anche risolvere questo problema e scegliere: Java (come rappresentante OO tipizzato staticamente), Smalltalk (come rappresentante dinamicamente tipizzato), Haskell (come rappresentante funzionale), Scala (come rappresentante oo/funzionale ibrido), Lisp (come rappresentante di meta-programmazione), JavaScript (come rappresentante basato su prototipi). E lascia altri PL per appunti o commenti. So che possiamo discutere su questa scelta, ma sarebbe già interessante per queste lingue.
Questa sarà sempre una domanda aperta, ma mi sento come chiesta così com'è, questa è sufficientemente focalizzata per avere una risposta migliore.
Forse questa matrice esiste già da qualche parte? O qualcuno ha abbastanza conoscenze per realizzarlo? O qualcuno è abbastanza appassionato da iniziare e renderlo una risposta wiki in modo che altri possano continuare?
Piuttosto che fare una domanda soggettiva aperta su SO, perché non scrivi semplicemente un post sul blog e lo sviluppi man mano che trovi nuove implementazioni di un pattern? – slugster
Non c'è probabilmente una risposta migliore a questo. Voterò per wiki della comunità. –
@slugster La mia idea è davvero quella di scrivere un post di questo tipo (o un mio amico lo farà), e la domanda riguarda la raccolta di riferimenti alle migliori discussioni sul modello specifico w.r.t in una determinata lingua. Quindi posso compilarlo in un post di blog. Nel frattempo, probabilmente risponderò anche alla mia domanda e abbozzerò una bozza della matrice. – ewernli