interfaces, sobrecarga de métodos e construtores, enums, necessidade de implementar coisas simples como "classes" abstratas na unha...
ter que implementar na mão, fazer workarounds, usar libs... claros indicativos de que "os conceitos sempre estiveram lá" é uma meia verdade.
Agora entendi seu ponto. Elucidou as minhas dúvidas!
Tudo isso que você esta dizendo não é nada relacionado aos conceitos OOP diretamente.
Principalmente de Simula e Smalltalk que são a origem de OOP.
Ter que implementar na mão é algo estranho, pq nesse caso o programador não quis mudar sua forma de pensar. Ele esta querendo trazer o que sabe de outra linguagem e socar em JS. Esse é um erro comum. Mas que não deveria acontecer.
É isso que eu digo sobre programador velho! Ele não quer aprender. Ele quer socar o que sabe de outra linguagem na nova! E isso gera grandes frustrações!
Por isso uma linguagem que implementa OOP de uma forma diferente não é bem aceita. Pois não querer aprender e querer usar as mesmas coisas que usava em outra linguagens gera problemas!
os conceitos sempre estiveram lá
Quais são os conceitos de OOP pra você? você segue a definição de Peter Wegner no artigo dele?
Estou bem curioso! esta discussão esta muito boa!
Abraços