TC39 y sus contribuciones a ECMAScript

Mucha gente se confunde sobre qué es JavaScript y qué es ECMAScript. A veces es difícil saber cómo están conectados entre sí y qué papel juegan ECMA International y TC39 en la estandarización de JavaScript.

En esta publicación de blog, voy a discutir TC39 y sus contribuciones a ECMAScript.

Comencemos con todas las terminologías básicas que se utilizan cuando se habla de JavaScript y ECMAScript.

¿Qué es ECMAScript?

ECMAScript es un lenguaje de script estándar, desarrollado con la cooperación de Netscape y Microsoft y derivado principalmente del JavaScript de Netscape. JavaScript es un lenguaje de secuencias de comandos ampliamente utilizado que se utiliza en las páginas web para afectar su apariencia o comportamiento para el usuario.

ECMA-262 es un estándar publicado por ECMA International. Contiene la especificación de un lenguaje de secuencias de comandos de propósito general que se conoce como ECMAScript.

Un poco más sobre JavaScript

JavaScript es un lenguaje de secuencias de comandos que le permite crear contenido de actualización dinámica, controlar multimedia, animar imágenes y hacer prácticamente todo lo demás. (Está bien, no todo, pero es sorprendente lo que puede lograr con unas pocas líneas de código JavaScript).

¿Qué es ECMA?

ECMA es una organización de estándares para sistemas de información y comunicación. ECMA tiene como objetivo desarrollar estándares e informes técnicos para facilitar y estandarizar el uso de tecnología de comunicación de información y electrónica de consumo. Fomenta el uso correcto de las normas al influir en el entorno en el que se aplican, y publica estas normas e informes en forma electrónica e impresa.

Y ahora, presentemos a las personas trabajadoras detrás de ECMAScript: TC39.

¿Qué es TC 39?

TC39 significa Comité Técnico número 39. Es parte de ECMA, la institución que estandariza el lenguaje JavaScript bajo la especificación “ECMAScript”. Trabaja en la estandarización del lenguaje de programación de propósito general, multiplataforma, independiente del proveedor que es ECMAScript. Esto incluye la sintaxis del lenguaje, la semántica, las bibliotecas y las tecnologías complementarias que admiten el lenguaje.

TC 39 funciona en :

  • Mantener y actualizar el estándar para el lenguaje de programación ECMAScript.
  • Identificar, desarrollar y mantener estándares para bibliotecas que amplían las capacidades de ECMAScript.
  • Desarrollar conjuntos de pruebas que se puedan utilizar para verificar la correcta implementación de estos estándares.
  • Contribuir con estándares seleccionados al comité ISO / IEC JTC 1.
  • Evaluar y considerar propuestas de tecnologías complementarias o adicionales.

Desde que salió ES6, TC 39 optimizó el proceso de previsión de propuestas para cumplir con las expectativas modernas. El nuevo proceso utiliza un superconjunto de HTML para formatear las propuestas. Usan solicitudes de extracción de GitHub, lo que ayudó a impulsar la participación de la comunidad. También aumentó el número de propuestas.

La especificación ahora es más un estándar de vida, lo que significa que las propuestas se adoptan más rápido, y no pasamos años esperando que salga una nueva edición de la especificación.

Una vista más general

Al leer la especificación ECMAScript, aprenderá a crearun lenguaje de secuencias de comandos. Al leer la documentación de JavaScript, aprenderá a utilizar ese lenguaje de secuencias de comandos.

Procesamiento de propuestas

Etapa 0: Hombre de paja

Cualquier discusión, idea, cambio o adición que aún no se haya presentado como una propuesta formal se considera una propuesta “de paja” en esta etapa. Solo los miembros de TC39 pueden crear estas propuestas, y hay más de una docena de propuestas activas en la actualidad.

Etapa 1: propuesta

En esta etapa, se formaliza una propuesta y se espera que aborde preocupaciones transversales, interacciones con otras propuestas y preocupaciones de implementación. Las propuestas en esta etapa identifican un problema discreto y ofrecen una solución concreta a ese problema.

En esta etapa, la propuesta a menudo incluye una descripción de API de alto nivel, ejemplos de uso y una discusión de semántica y algoritmos internos. Es probable que estas propuestas cambien significativamente a medida que avanzan en el proceso.

Etapa 2: Borrador

Las propuestas en esta etapa deben ofrecer un borrador inicial de la especificación.

En este punto, es razonable que los implementadores comiencen a experimentar con implementaciones reales en tiempo de ejecución. La implementación podría tener muchas formas: un polyfill, código de usuario que manipula el tiempo de ejecución para que se adhiera a la propuesta, una implementación de motor (que brinda soporte de forma nativa para la propuesta) o podría ser compatible con un compilador en tiempo de compilación como Babel.

Etapa 3: candidato

Las propuestas en esta etapa son recomendaciones de candidatos. En esta etapa avanzada, el editor de especificaciones y los revisores designados deben haber aprobado la especificación final. Es poco probable que una propuesta de Etapa 3 cambie más allá de las soluciones a problemas identificados en la naturaleza.

Los implementadores también deberían haber expresado interés en la propuesta: una propuesta sin el apoyo de los implementadores está muerta en el agua. En la práctica, las propuestas se mueven a este nivel con al menos una implementación de navegador, un polyfill de alta fidelidad o cuando son compatibles con un transpilador de tiempo de compilación como Babel.

Etapa 4: Terminado

Finalmente, las propuestas llegan a esta etapa cuando hay al menos dos implementaciones independientes que pasan las pruebas de aceptación.

¿Que sigue?

Las propuestas que lleguen a la etapa 4 se incluirán en la próxima revisión de ECMAScript. Cuando la especificación pasa por su ratificación anual como estándar, la propuesta se ratifica como parte de ella.

Así es como se aceptan las ideas para la evolución del lenguaje ECMAScript y se agregan a la próxima revisión de ECMAScript. Y todos estamos agradecidos por el trabajo realizado por TC39, que es invaluable.

Con eso, hemos llegado al final de nuestra discusión sobre TC39 y sus contribuciones a ECMAScript.

Gracias por leer.

Fuentes: TC 39 Process, ECMA International