É uma padronização baseada em scripts para futuras linguagens, além das já existentes.
Padronizada pela Ecma International nas especificações ECMA-262 e ECMA-402.
ECMAScript é a especificação e JavaScript é uma implementação por parte dos navegadores, assim como:
- ActionScript pela Adobe
- UnityScript pela Unity
- JScript pela Microsoft
Últimas versões:
- ES6
Última especificação ES2018, Lançado em 2015.
- ES.Next
É uma especificação que possui futuras implementações, ainda está disponível, mas pode ser testada usando o Babel (bebeljs.io)
TC39 (Comite responsável pela evolução do JavaScript)
A maioria dos colaboradores são integrantes dos navegadores. As propostas são votadas.
Projetos
- Projeto ECMA 262
Mantém e atualiza os padrões javaScript.
- Projeto ECMA 402
Identifica, desenvolve e mantém padrões para as libs que estendem as features (recursos) do ECMAScript.
- Projeto ECMATR 104
Desenvolve swites de teste para que as propostas, especificações possam ser testadas.
Fluxo de Propostas
- Stage 0: Strawman (espantalho)
Submissão formulário com a ideia p evoluir ECMAScript, feita por membro ou contribuidor registrado.
- Stage 1: Proposal (Proposta)
Surge a proposta formal da funcionalidade, precisa ter um campeão, e este precisa ser membro.
Precisa ter bem claro o objetivo, e ter exemplos.
Se proposta for aceita, comite vai examinar e contribuir.
É possível q tenha várias alterações.
- Stage 2: Draft (esboço, projeto)
Primeira versão da proposta, precisa ter descrição formal da sintaxe e semântica da funcionalidade.
A descrição precisa ser a mais completa possível.
Duas implementações são necessárias, sendo q uma delas pode rodar pelo babel.
Pode haver implementações incrementais.
- Stage 3: Candidate
Proposta quase finalizada, precisa de feedback de implementação.
A especificação precisa estar completa nesta etapa.
- Stage 4: Finished
Proposta madura e pronta para ser incluída na especificação.
Ainda tem alguns pontos para progredir.
Obrigatório passar na swite de testes (duas implementações em conformidade com a especificação).
Tem que ter uma experiência prática e explicativa no feedback da etapa anterior.