poo não é estritamente sobre classes porque também existe herança por prototipação, mas isso só existe no javascript e numa linguagem morta da xerox criada nos anos 80.
mas é interessante como introduziram a palavra "class" em javascript, não? por que o fizeram? não é um erro conceitual meu. em javascript existe class que por baixo dos panos não é class, literalmente com o nome class.
as linguagens mais tradicionais que suportam este paradigma não se aproximaram do javascript, mas javascript a cada atualização traz mais syntax sugars e conceitos pra se aproximar dessas linguagens. a última atualização recebeu itens relacionados a encapsulamento, o que já é muito maduro em java e c#, por exemplo, há décadas.
se é pra aprender poo, por que aprender primeiro em uma linguagem que tem muitas particularidades neste paradigma, ao invés de aprender em linguagens mais comumente utilizadas no mercado com este paradigma e cujos conceitos são comuns entre elas?
mas é interessante como introduziram a palavra "class" em javascript, não?
Eles fizeram como fazem com o C++. Agradar todo mundo.
itens relacionados a encapsulamento
JS sempre teve. Só não tinha a sintaxe que o alguns gostam kkkk Closuses sempre estiveram no JS.
se é pra aprender poo, por que aprender primeiro em uma linguagem que tem muitas particularidades neste paradigma
Para aumentar a inteligencia e ter uma bagagem melhor para criar coisas novas e criativas! Para isso é preciso conhecer e aprender coisas como essa que são bem diferentes!
Além de que, JS continua sendo prototipico. Pegar algum lib super otimizada vai ver prototipos lá! E não conhecer isso vai ser um grande problema!
Outra questão! JS já era comum no mercado de back com node desde 2009(ou rihno e outros). Mesmo sendo es5, com o es6(2015) e posteriormente implementado(a pra se dizer que totalmente em 2017). O povo fazia grandes maravilhas do mesmo modo.
O que a TC39 quis foi melhorar o inicio do programador que já programava em linguagens comuns. Que não queria aprender JS! Um programador velho é um programador que não gosta de aprender.
cujos conceitos são comuns entre elas?
Os conceitos sempre estiveram lá!
- encapsulamento
- herança
- herança multipla
- polimorfismo
Mas não com a sintaxe que alguns estava acostumados!
OBS: Self(da qual JS deriva) foi criada na Sun e Lua(criada na puc) são prototipicas! Lua foi criada sem class e o povo na época achou um tipo de desrepeito kkkk Mas lua é super bem conceituada e usada no mundo todo.
OBS2: O modo prototipico do JS não é bonito! Não da pra negar não! Mas eu acho que deveriam melhorar isso, no lugar de inserir outra forma! :)