Olá @Pilati, obrigado por trazer esses pontos para a discussão. Seus exemplos, na verdade, reforçam a tese central do meu artigo.
O que tu trouxe foi exatamente a falta de diferenciação técnica que estou tentando abordar para novatos entenderem de onde vem e se aplicam os fundamentos.
Colocar tudo no mesmo "saco de ferramentas", conceitos que operam em camadas completamente diferentes da computação é fundamentalmente incorreto.
Java 6 e Java 21, dizer que são "duas linguagens diferentes" é um erro profundo. Java 21 é a evolução da mesma linguagem. Ele introduz conceitos poderosos como Virtual Threads, Records e Pattern Matching, mas o faz sobre a mesma fundação: a JVM, o mesmo modelo de objetos, a mesma sintaxe base e, crucialmente, um altíssimo grau de retrocompatibilidade. Um desenvolvedor Java 6 se tornaria um desenvolvedor Java 21 infinitamente mais rápido do que aprenderia Rust ou Go. A base é a mesma.
PHP 6 e PHP 8 a mesma lógica se aplica aqui. O PHP 8 modernizou a linguagem com um sistema de tipos mais forte, JIT compiler, etc. Foi uma evolução massiva e necessária, mas ainda é PHP. Não é uma linguagem nova.
A confusão começa ao chamar ".NET" de linguagem. .NET é uma uma plataforma/ecossistema, C# é a linguagem.
Confundir os dois é como como confundir a rodovia com o carro. Meu ponto é que a "rodovia" (.NET) pode ser reconstruída, mas o "carro" (C#) apenas evolui, mantendo sua essência.
Da mesma forma, dizer que Java 6 e Java 21 são "linguagens diferentes" é como dizer que o portugês de 1980 e o de 2025 são idiomas diferentes. Não são. É uma evolução sobre um núcle estável, não uma substituição, que é o que acontece o tempo todo com frameworks.
A estabilidade que menciono das linguagens não significam que elas sã
o estáticas, mas que seu núcleo paradigmático e sintático é estável. As mudanças são, em sua maioria, incrementais e adicionais.
Compare isso com a mudança de um framework: migrar um projeto de Angular.js (v1) para Angular (v2+) não é uma evolução, é uma reescrita completa. A filosofia mudou, a arquitetura mudou, a linguagem (de JavaScript para TypeScript como padrão) mudou. Isso sim é uma "ferramenta diferente".
A transição de .NET Framework (legado, focado em Windows) para .NET Core (moderno, multiplataforma) foi uma mudança na plataforma, no "andaime". A linguagem C# evoluiu junto com essa mudança, mas ela continuou sendo C#.
Já o fato do "C" uma linguagem de 50 anos evoluir através de revisões padronizadas e incrementais, mantendo um núcleo tão estável que código de décadas atrás ainda é relevante, prova que ela é um alicerce sólido.
Ninguém está reescrevendo o kernel do Linux a cada 5 anos porque "surgiu um framework de C mais novo". As mudanças são cuidadosamente adicionadas a uma base sólida.
Espero que isso ajude a esclarecer a minha tese. A estabilidade de aprendizado com foco na linguagem quanto as entrevistas de emprego vs devs quererem usar apenas fundamentos, é o que estou tentando restaurar: um vocabulário técnico básico que parece estar se perdendo por não haver mais quem oriente num nível técnico mais profundo, criando superficialidade na nossa comunidade que cria um débito técnico nas pessoas e geram frustrações em processos seletivos que exigem conhecimento em uma linguagem mas só estudaram fundamentos.