2010-02-24 12 views
12

He estado buscando información sobre la versión descartada de ECMAScript 4th sin mucho éxito, incluso en SO. Sé que el 1.7 de Mozilla implementó muchas (¿todas?) De las nuevas funciones ofrecidas en la 4ª edición y pensé que recordaba una buena publicación de John Resig, pero parece que ahora no puedo encontrarla en su blog.¿Por qué se eliminó por completo la cuarta edición de ECMAScript?

En particular, quiero saber por qué fue descartado por completo a favor de ECMA-262 5th Edition y por qué no solo se mejoró. Algunas de las características son geniales, como generadores, iteradores, let, nuevos operadores de asignación y (mi favorito particular) asignación de desestructuración.

Sé que todas esas características en particular arrojarían errores en los navegadores con implementaciones ECMAScript obsoletas, pero ¿por qué no incluirlas de todos modos con el conocimiento de que algún día esas implementaciones serían pocas? ¿Había otras razones también? ¿Es probable que veamos algunas de las características desechadas reaparecer en una versión futura, o los proveedores tienen tanto miedo de romper la compatibilidad que probablemente nunca veamos tales mejoras en el estándar?

Por otro lado, sería bueno conocer algunas opiniones al respecto, ¿le molesta ver algunas características recortadas de la 5ª edición o cree que es mejor así? ¿Vale la pena jugar con las implementaciones de ECMAScript 4?

Respuesta

15

En pocas palabras, era no ECMAScript 4th Edition. Del 5th edition specification:

Se realizó un trabajo importante para desarrollar una cuarta edición de ECMAScript. Aunque ese trabajo no se completó y no se publicó como la cuarta edición de ECMAScript, informa la evolución continua del idioma. La presente quinta edición de ECMAScript (publicada como ECMA-262 5ª edición) codifica las interpretaciones de facto de las especificaciones del lenguaje que se han vuelto comunes entre las implementaciones del navegador y agrega soporte para las nuevas características que han surgido desde la publicación de la tercera edición.

Básicamente, había una gran cantidad de opiniones muy fuertes acerca de cómo mover JavaScript adelante, muchos de los cuales no son incompatibles, algunas de las cuales en su mayoría se habían reunido lo que pensaban que sería la cuarta edición antes de que todo se vino abajo (no menos importante debido a la falta de apoyo de algunos implementadores importantes). Algunas personas siguieron su propio camino, pero una nueva edición de la norma estaba muy, muy retrasada, por lo que Brendan Eich (inventor de JavaScript) y la ECMA y una amplia gama de colaboradores se juntaron y trataron de aclarar las cosas. Y se estancó horriblemente sobre algunas características, hasta que finalmente Eich fue capaz de superar un enfoque "harmony".

Armonía aplazarse algunas cosas, poner algunas cosas completamente fuera de la mesa para siempre (espacios de nombres, paquetes, enlace temprano), y - importante - permitido que el comité para seguir adelante con la primera actualización de la especificación desde 1999.

+0

+1. Gracias por el enlace de la lista de correo, fue una lectura excelente y parece que responde mucho a lo que pregunté, en particular la parte sobre los proveedores que se oponen a las mejoras sintácticas del estándar. Me complace ver que no solo ven implementaciones futuras que tienen mayor/solo extensiones de objetos y otras cosas aún están en juego. –

2

Básicamente se estaba convirtiendo en un fregadero de la cocina con demasiadas características para ser implementado.

1

Hubo una discusión de la en las entrevistas de Coders At Work, dos de los entrevistados estaban en lados opuestos de este problema.

Parece haber llegado a un desacuerdo fundamental sobre lo que debe contener el lenguaje entre los que trabajan en v4 y algunos otros miembros respetados de la comunidad.

(Recomiendo este libro por cierto)

Cuestiones relacionadas