versiones ventajas tutorial functions ejemplos diferencias desventajas actionscript-3

actionscript 3 - ventajas - ¿Por qué ActionScript no tiene "genéricos"?



actionscript ventajas y desventajas (4)

La nueva clase Vector es una forma de genéricos que Actionscript 3 ahora admite cuando se compila para Flash Player 10. Aún no admiten la especificación de sus propias clases genéricas.

Creo que Adobe implementará el estándar ES4 eventualmente. Sería bueno si tuvieran un competidor que pudiera empujarlos más rápido en la dirección correcta. Esperaba un poco más de las actualizaciones de AS3 cuando se movieron a CS4, pero supongo que la revolucionaria clase Vector tendrá que ser suficiente.

Parece que pasaron mucho tiempo reforzando las bibliotecas para Flex y AIR, por lo que tal vez vuelvan a mejorar el soporte de idiomas más adelante, pero probablemente no sea una prioridad real. Recuerde, Adobe está ahí por el dinero, no por la sensación de hacer el lenguaje más agradable posible.

¿Alguien puede decirme por qué ActionScript 3, un lenguaje estáticamente tipado, no tiene genéricos? ¿Es demasiado trabajo? Una cosa histórica? ¿Hay alguna forma de "falsificarlo" que aún no haya recogido?

Editar : ¡muchas gracias por las respuestas! La clase Vector es básicamente lo que estaba buscando, y la otra información también fue útil.


Primero, obtengamos contenedores y algoritmos apropiados en actionscript y luego preocúpesemos por los genéricos ...

as3 no es muy diferente de javascript, por cierto, por lo que su pregunta también se aplicaría a JS.


Tipos de parámetros (la palabra "genéricos" se usa generalmente en ECMAScript para métodos genéricos , en lugar de la combinación de tipos paramétricos y polimorfismo en tiempo de ejecución utilizados en Java) se proposed como parte de ES4, pero ES4 se fracturó y gran parte del tipo de sistema propuesto para ES (incluidas las partes implementadas en ActionScript) no entrarán en la próxima versión. No puedo decir si Adobe querría ir por ese camino por sí mismo.


Yo creo que es algo histórico. ActionScript se basa en ECMAScript (JavaScript también se basa en ECMAScript). ECMAScript es un lenguaje de tipado dinámico, lo que significa que las variables no tienen su tipo declarado. Los genéricos son más útiles en lenguajes tipados estáticamente, donde el tipo de variable se declara por adelantado. En un lenguaje estáticamente tipado, sin genéricos estás atrapado lanzando todo el tiempo desde el objeto raíz (por ejemplo, Object en Java). Esto no es un problema en ECMAScript, porque puede poner lo que desee en cualquier estructura de datos.

Entonces, ¿por qué ActionScript no agregó genéricos cuando agregaron tipeo estático a ECMAScript? No puedo estar seguro de eso, pero creo que la premisa de tu pregunta está un poco desactualizada: hay contenedores genéricos, como Vector . Podría pensar que mantendrían los contenedores de ECMAScript de tipo dinámico (objetos y matrices) para compatibilidad con versiones anteriores, pero ya lo rompieron entre AS2 y AS3, así que no estoy seguro.