0- Prefacio

Estoy seguro de que se dio cuenta, pero "JS" en el título de la serie de libros no es una abreviatura de palabras utilizadas para maldecir sobre JavaScript, aunque maldecir a las peculiaridades del lenguaje es algo con lo que probablemente todos se pueden identificar.

Desde los primeros días de la web, JavaScript ha sido una tecnología fundamental que ha impulsado la experiencia interactiva en torno al contenido que consumimos. Mientras que el apuntador parpadeante y los molestos avisos emergentes podrían ser donde comenzó JavaScript, casi dos décadas después, la tecnología y la capacidad de JavaScript ha crecido en muchos ámbitos de magnitud, y pocos dudan de su importancia en el corazón de la plataforma de software más ampliamente disponible: La web.

Pero como lenguaje, ha sido perpetuamente un blanco para mucha crítica, debido en parte a su "herencia", pero más aún debido a su filosofía de diseño. Incluso el nombre evoca, como Brendan Eich una vez lo dijo, "el hermano bebe estúpido" comparado junto a su hermano mayor más maduro "Java". Pero el nombre es simplemente un accidente de la política y el marketing. Los dos idiomas son muy diferentes en muchos aspectos importantes. "JavaScript" está relacionado con "Java" como "Carnival" es a "Car".

Debido a que JavaScript toma conceptos y sintaxis idiomáticos de varios idiomas, incluyendo orgullosas raíces procedimentales de estilo C, así como raíces funcionales sutiles, menos obvias de estilo Scheme/Lisp, es sumamente accesible a una amplia audiencia de desarrolladores, incluso aquellos con poca o sin experiencia en programación. El "Hello World" de JavaScript es tan simple que el idioma se hace atractivo y es fácil de ponerse cómodo con la comprensión temprana.

Mientras que JavaScript es quizás uno de los idiomas más fáciles de poner en funcionamiento, sus excentricidades hacen que el dominio sólido del lenguaje sea una ocurrencia mucho menos común que en muchos otros idiomas. Cuando se necesita un conocimiento bastante profundo de un lenguaje como C o C++ para escribir un programa a gran escala, la producción a gran escala de JavaScript puede, y con frecuencia lo es, apenas se raya con la superficie de lo que el lenguaje puede realmente hacer.

Los conceptos sofisticados, que están profundamente arraigados en el lenguaje, tienden a aparecer en formas aparentemente simplistas, como pasar las funciones como devoluciones de llamada, lo que anima al desarrollador de JavaScript a utilizar el lenguaje tal como está y ha no preocuparse demasiado por lo que está pasando bajo la capucha.

Es simultáneamente un lenguaje sencillo y fácil de usar que tiene un amplio atractivo y una colección compleja y matizada de mecánica del lenguaje que sin un estudio cuidadoso escapará a la verdadera comprensión, incluso de los más experimentados desarrolladores de JavaScript.

Ahí radica la paradoja de JavaScript, el talón de Aquiles de la lengua, el desafío que estamos abordando actualmente. Debido a que JavaScript se puede utilizar sin comprender, la comprensión del lenguaje a menudo nunca se logra.

Misión

Si en cada punto que encuentres una sorpresa o frustración en JavaScript, tu respuesta es añadirlo a la lista negra, como algunos están acostumbrados a hacer, pronto serás relegado a una concha hueca de la riqueza de JavaScript.

Si bien este subconjunto ha sido conocido como "The Good Parts", le pediría a usted, querido lector, que lo considere "The Easy Parts", "The Safe Parts" o incluso "The Incomplete Parts".

Esta serie de libros de Javascript ofrece un desafío contrario: aprenda y entienda profundamente todo Javascript, incluso y especialmente "las piezas resistentes (The Tough Parts)".

Aquí, nos dirigimos a los desarrolladores de JS que tienen en la cabeza la mentalidad de aprender "lo suficiente" para continuar, sin nunca obligarse a aprender exactamente cómo y por qué el lenguaje se comporta de la manera que lo hace. Además, evitamos el consejo común de retirarse cuando el camino se vuelve áspero.

No estoy contento, ni debes estar, en parar una vez que algo funciona correctamente, y no saber realmente por qué. Le desafío a viajar por ese "camino costoso" y abrazar todo lo que JavaScript es y puede hacer. Con ese conocimiento, ninguna técnica, ningún framework, ningún acrónimo popular de moda, estará más allá de su comprensión.

Estos libros toman partes específicas del lenguaje que son las comúnmente mal entendidas o no comprendidas, y se sumerge muy profundamente y exhaustivamente en ellas. Usted debe termina la lectura con una firme confianza en su comprensión, no sólo de lo teórico, sino lo práctico "lo que necesita saber".

El JavaScript que usted conoce ahora mismo es probablemente la partes dada a usted por otros que han sido "quemados" por una comprensión incompleta. Ese JavaScript es sólo una sombra del verdadero lenguaje. Realmente no sabes JavaScript, pero si crees en esta serie, lo harás. Sigue leyendo, amigos. JavaScript te espera.

Resumen

JavaScript es impresionante. Es fácil de aprender en parte, y mucho más difícil de aprender por completo (o incluso lo suficiente). Cuando los desarrolladores encuentran confusión, suelen culpar al idioma en lugar de su falta de comprensión. Estos libros apuntan a arreglar eso, inspirando una apreciación fuerte del lenguaje para que usted pueda entenderlo ahora, y deba, profundamente entenderlo.

Nota: Muchos de los ejemplos en este libro asumen los entornos de motor de JavaScript modernos (y futuros), como ES6. Es posible que algunos códigos no funcionen como se describe si se ejecutan en motores anteriores (pre-ES6).

Last updated