Enquanto me educava sobre arquitetura de software e padrões de design, observei que na maioria dos casos alguns recursos de linguagem e detalhes de design estão implícitos na explicação.
Por exemplo, praticamente qualquer artigo ou livro que ilustre as idéias usando classes e interfaces. Tudo o que se pode encontrar facilmente neste tópico mencionaria objetos e conceitos de POO.
E se a linguagem em que o sistema está escrito não tiver tais conceitos? Por exemplo, e se eu usar Python ou Node, que são digitados dinamicamente e não têm noção de interface? E se eu usar o TypeScript onde uma interface é uma construção efêmera, que não existe no tempo de execução? E se eu estiver tentando adotar a programação funcional? Devo ignorar, por exemplo, o SOLID e procurar outros conceitos, adequados ao meu idioma?
Se sim, quais são esses? Infelizmente, todos os paradigmas bem adotados (até onde sei) se referem aos conceitos e tipos de POO de alguma maneira. Se não, quais regras devo seguir ao adaptar os princípios gerais de arquitetura e design ao meu idioma e caso de uso específicos?
Como você descreveria em geral a dependência entre arquitetura e linguagem?