JavaScript Dividido Por Dois? Engenheiro do Google Propõe Divisão
- #JavaScript
Olá, comunidade da DIO!
Vocês sabiam que, um engenheiro do Google chamado Shu-yu Guo, apresentou ao comitê de padronização uma ideia que poderia dividir o JavaScript em duas linguagens diferentes?
Uma seria um núcleo a ser implementado em mecanismos de execução e a outra uma variante mais avançada, que dependeria de ferramentas para compilar para esse núcleo.
A proposta foi discutida em uma reunião do TC39, o comitê da Ecma International responsável pela especificação do JavaScript (oficialmente ECMAScript).
Quer saber mais sobre o assunto?
Então, não deixe de ler este artigo até o final.
Motivos para Mudança
Shu-yu Guo, engenheiro de software no Google especializado em JITs, VMs, compiladores e padronização, fez a apresentação, que contou com a colaboração de outros profissionais da Mozilla, Apple, Moddable e Sony. A Moddable é uma empresa que oferece um SDK de código aberto para programação embarcada, incluindo o mecanismo XS JavaScript.
Os autores defendem que a introdução de novos recursos na linguagem tende a ter efeitos negativos. Eles afirmam que esses recursos quase sempre afetam a segurança de forma adversa, que o desempenho pode ser impactado negativamente e que a estabilidade às vezes se deteriora.
As VMs de JavaScript, segundo eles, já enfrentam grande complexidade devido à necessidade de velocidade, o que compromete a segurança. A situação se agrava quando novos recursos não são amplamente utilizados.
De acordo com a proposta, a tecnologia fundamental do JavaScript deve ser simplificada, pois as falhas de segurança e a complexidade dos tempos de execução têm um impacto global, enquanto os benefícios são limitados a desenvolvedores que conseguem tirar proveito dessa complexidade.
Influência do Google
Embora várias organizações estejam envolvidas, a proposta parece ter uma forte influência do Google, com um slide enfatizando que essa solução é preferida por eles, mas não necessariamente por outros implementadores. A ideia não é reverter recursos já existentes, mas sim mudar a abordagem futura para que a maioria dos novos recursos seja implementada em ferramentas, em vez de diretamente nas VMs de JavaScript.
As novas Linguagens JS0 e JSSugar
A linguagem central, a ser implementada pelas VMs, seria chamada de "JS0", enquanto a variante mais rica, que dependeria das ferramentas, seria chamada de "JSSugar"; esses nomes servem apenas para facilitar a discussão.Essa proposta faz sentido, pois muitos desenvolvedores já utilizam TypeScript e ferramentas como Babel e Webpack para gerar código JavaScript.
Para esses desenvolvedores, o JavaScript se torna JSSugar, enquanto as VMs precisariam se concentrar apenas em JS0. Isso implicaria uma maior conformidade entre as ferramentas em relação aos padrões.
Os Próximos Passos
Se a proposta for aceita, novos recursos de sintaxe seriam destinados ao JSSugar, enquanto apenas recursos de API iriam para o JS0. As VMs teriam que suportar apenas o JS0, transferindo a responsabilidade para os implementadores de ferramentas no que diz respeito ao JSSugar. Isso também poderia exigir uma maior participação dos desenvolvedores de ferramentas no processo de padronização, possivelmente criando um novo grupo técnico.
Conclusão
Após a leitura deste artigo, podemos concluir que a proposta do Google para dividir o JavaScript em duas linguagens—um núcleo simples (JS0) e uma variante mais complexa (JSSugar)—gerou um debate significativo na comunidade de desenvolvedores.
Enquanto a ideia visa simplificar a segurança e a complexidade do núcleo da linguagem, muitos desenvolvedores expressam preocupação com a dependência crescente de ferramentas para desenvolvimento.
A proposta reflete uma tentativa de equilibrar inovação e estabilidade, mas enfrenta resistência, pois muitos preferem uma abordagem que não dependa tanto de intermediários. A discussão destaca a importância de considerar as necessidades e experiências dos desenvolvedores ao implementar mudanças na linguagem.
E você o que acha dessa possível divisão do JavaScript em 2?
Deixe seu comentário e bons estudos!
Referências
DEVCLASS. Should JavaScript be split into two languages? New Google-driven proposal divides opinion. 22 out. 2024. Disponível em: <https://devclass.com/2024/10/22/should-javascript-be-split-into-two-languages-new-google-driven-proposal-divides-opinion/>. Acesso em: 28 out. 2024.