Dado que muchos lenguajes de programación dinámicos tienen la característica de escribir pato , y también pueden abrir y modificar métodos de clase o instancia en cualquier momento (como Ruby y Python ), entonces ...
Pregunta 1) ¿Cuál es la necesidad de una clase en un lenguaje dinámico? ¿Por qué el lenguaje está diseñado de esa manera para usar una clase como una especie de "plantilla" en lugar de hacerlo como prototipo y simplemente usar un objeto?
También JavaScript está basado en prototipos, pero CoffeeScript (la versión mejorada de JavaScript) elige la forma basada en clases. Y es lo mismo para Lua (basado en prototipos) y MoonScript (basado en clases). Además, hay clase en ES 6. Entonces ...
Pregunta 2) ¿Sugiere que si intentas mejorar un lenguaje basado en prototipos, entre otras cosas, deberías cambiarlo a clases? Si no, ¿por qué está diseñado de esa manera?
class
palabra clave a partir del próximo estándar ECMAScript (ECMAScript 6). El soporte para las clases en JavaScript se ha planificado durante mucho tiempo. Ahora, para lo que es, las clases son simplemente azúcar sintáctica, una forma más fácil de razonar sobre modelos para objetos del mismo tipo. Es así en JS y así en Python y otros lenguajes dinámicos.