J'ai vu, ici sur les programmeurs, la réponse à cette question: comment la réflexion sur les modèles de conception et les pratiques de POO change-t-elle dans les langages dynamiques et faiblement typés? Là, j'ai trouvé un lien vers un article avec un titre franc: les motifs de conception manquent-ils de fonctionnalités linguistiques . Mais là où j'ai trouvé des extraits qui me paraissaient très accrocheurs et qui peuvent probablement être vérifiés par rapport à l'expérience, il y a une incitation à cela, comme:
PaulGraham a déclaré: "Peter Norvig a constaté que 16 des 23 modèles de Design Patterns étaient" invisibles ou plus simples "en Lisp."
ou une autre phrase qui confirme ce que j'ai récemment vu avec des gens essayant de simuler des classes en JavaScript:
Bien sûr, personne ne parle jamais du modèle de "fonction" ou du modèle de "classe", ou de nombreuses autres choses que nous tenons pour acquises car la plupart des langages les fournissent en tant que fonctionnalités intégrées. OTOH, programmeurs dans un langage purement PrototypeOrientedLanguage? pourrait bien trouver pratique de simuler des classes avec des prototypes ...
Je prends également en considération que les modèles de conception sont un outil de communication . Parce que même avec mon expérience limitée dans la création d'applications, je peux voir comme un anti-modèle ( inefficace et / ou contre-productif ) par exemple, forçant une petite équipe PHP à apprendre des modèles GoF pour une application intranet petite à moyenne. Je suis conscient que l'échelle, la portée et le but peuvent déterminer ce qui est efficace et / ou productif, mais je n'ai toujours pas réussi à trouver un aperçu technique à ce sujet.
J'ai vu de petites applications commerciales qui mélangeaient les fonctionnalités avec la POO et étaient toujours maintenables, et je ne sais pas si beaucoup auraient besoin par exemple en python pour écrire un singleton, mais pour moi, un simple module fait la même chose.