Eu vi, aqui nos programadores, a resposta para essa pergunta: como o pensamento sobre padrões de design e práticas de OOP muda em linguagens dinâmicas e de tipo fraco? Lá encontrei um link para um artigo com um título franco: Os padrões de design estão faltando recursos de linguagem . Mas onde encontrei trechos que para mim pareciam muito cativantes e que provavelmente podem ser verificados com base na experiência, pois há um incentivo para isso, como:
PaulGraham disse que "Peter Norvig descobriu que 16 dos 23 padrões no Design Patterns eram 'invisíveis ou mais simples' no Lisp".
ou outra frase que confirme o que vi recentemente com pessoas tentando simular aulas em JavaScript:
Obviamente, ninguém nunca fala do padrão de "função", ou padrão de "classe", ou de várias outras coisas que consideramos um dado adquirido, porque a maioria dos idiomas os fornece como recursos internos. OTOH, programadores em uma linguagem puramente PrototypeOriented? pode ser conveniente simular classes com protótipos ...
Também estou levando em consideração que os padrões de design são uma ferramenta de comunicação . Porque mesmo com minha experiência limitada participando da criação de aplicativos, posso ver como um antipadrão ( ineficaz e / ou contraproducente ), por exemplo, forçando uma pequena equipe PHP a aprender padrões GoF para aplicativos de intranet de pequeno a médio porte. Estou ciente de que escala, escopo e propósito podem determinar o que é eficaz e / ou produtivo, mas ainda não consegui encontrar uma visão geral técnica sobre isso.
Vi pequenas aplicações comerciais que combinavam funcionalidade com OOP e ainda eram mantidas, e não sei se muitos precisariam, por exemplo, em python para escrever um singleton, mas para mim um módulo simples faz a mesma coisa.