JavaScript fue diseñado en 10 días bajo la presión de Netscape para ofrecer rápidamente un lenguaje de secuencias de comandos ligero y ventoso para el navegador web. No hubo suficiente tiempo para pensar y preocuparse. Se inspiró en Lisp / Scheme, así como en Self, para obtener funciones y cierres de primera clase, y prototipos de objetos. Irónicamente, perdió algunas de las cualidades definitorias de Lisp (tipo de datos de lista; homoiconicidad y macros). También bajo la presión de Netscape, el lenguaje adquirió una sintaxis similar a Java que básicamente hizo que JavaScript fuera aún menos parecido a Lisp.
En consecuencia, el resultado fue un mestizo de un lenguaje que carecía de consistencia interna y cohesión. En resumen, era un lenguaje de programación muy descuidado.
Con los años, la aplicación de JavaScript superó sus intenciones originales (realizar pequeñas y simples manipulaciones del DOM). Este desajuste causó mucho dolor a los desarrolladores.
Mientras tanto, ECMA TC39 ha luchado para hacer un bolso de seda con la oreja de una cerda. Solo podían hacer mucho sin romper la red. ECMAScript creció y creció, sin corregir la mayoría de los defectos flagrantes de JavaScript. El resultado podría describirse mejor como “poner lápiz labial en un cerdo”.
- ¿Puedo diseñar una habitación del 0% al 100% con mis propias ideas siendo un decorador de interiores y no un diseñador de interiores?
- ¿Qué es el tono en el arte y el diseño?
- ¿El uso innovador de la tecnología permite a los arquitectos producir conceptos y propuestas de diseño iniciales a un costo y tiempo relativamente bajos?
- ¿Cómo es LNCT, Bhopal?
- ¿Cómo los mejores diseñadores de UX / UI integran contenido en sus diseños?
Entonces, para resumir, la razón por la que JavaScript está tan mal diseñado se reduce a:
- política corporativa (Netscape vs Sun Microsystems)
- impulso del uso mal considerado de JavaScript más allá de la intención original del lenguaje
- falla por parte de TC39 para corregir realmente los defectos del lenguaje