¿Por qué JavaScript está tan mal diseñado?

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”.

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

Jaja. Esta es una gran pregunta. La respuesta corta es una cita del W3:

“JavaScript, que no debe confundirse con Java, fue creado en 10 días en mayo de 1995 por Brendan Eich”

Su objetivo principal era ser un lenguaje de “pegamento” para ayudar a los diseñadores web a hacer las cosas un poco más animadas (lo que hizo).

Luego estuvo en el fondo durante años porque nunca hubo una buena herramienta para trabajar con él. Y luego apareció Google y proporcionó esas herramientas que hicieron que el lenguaje fuera cada vez más atractivo (pero aún mal diseñado).

Últimamente, ha habido una gran cantidad de “reingeniería” de cómo funciona JavaScript y cómo está diseñado, y las últimas versiones de ECMAScript 6 en adelante nos están dando un lenguaje bastante sólido. Es mi lenguaje de referencia para casi todo (tal vez excepto ciencia de datos / IA, aún).

Lea más sobre la historia de JavaScript aquí: una breve historia de JavaScript

Las técnicas modernas de diseño web también se pueden utilizar en Java. El mejor ejemplo es LinkedIn. También he visto algunos de los sitios web bancarios escritos en Java. Pero, la mayoría de los sitios web de Java están escritos en los viejos tiempos y es posible que no hayan cambiado las tecnologías front-end. Supongo que esa es la única razón.

Los creadores de sitios Java (programadores y desarrolladores) no son diseñadores, en la mayoría de los casos; ^)

Porque el diseño a menudo se trata como una ocurrencia tardía. El diseño es DOS COSAS, 1) Cómo se ve, 2) Cómo funciona. Sun probablemente se enfocó en 2 y no en 1.