Prefacio
Estoy seguro que te has dado cuenta, pero la abreviatura JS" en el titulo de la serie de libros no es utilizada para ofender a JavaScript. Aunque maldecir peculiaridades del lenguaje es algo con lo que nos podemos identificar.
Desde los primeros días de la web, Javascript a sido una tecnología imprescindible que impulsa la experiencia interactiva en torno al contenido en el que navegamos. Si bien el parpadeo de los rastro del cursor, mensajes molestos y las ventanas emergentes pudieron ser el comienzo de JavaScript, casi dos décadas después la tecnología y capacidad de JavaScript a crecido en magnitud de muchas maneras y pocos dudan que es el corazón de la plataforma de software mas ampliamente disponible en le mundo: LA WEB.
Pero como lenguaje, ha sido constantemente objetivo a gran cantidad de criticas, Debido en parte a su herencia, pero aun mas a su filosofía de diseño. Incluso el nombre evoca, como Brendan Eich dijo una vez "El pequeño hermano tonto" que esta junto a su hermano mayor, mas maduro "Java". Pero el nombre intencional por políticas y marketing. Los dos lenguajes son muy diferentes en muchos aspectos importantes. JavaScript es a Java como Carnaval a Carro.
Si bien JavaScript es quizás uno de los lenguajes mas fáciles de poner en marcha, sus excentricidades lo hacen un lenguaje solido, una ocurrencia poco común entre muchos otros lenguajes de programación. Cuando se necesita un profundo conocimiento de lenguajes como C o C++ para escribir programas a gran escala, programas JavaScript a gran escala en producción pueden, y a menudo la hacen, utilizar solamente la parte superficial de lo que el lenguaje puede hacer.
Conceptos sofisticados que están profundamente arraigados en el lenguaje tienden a emerger en formas aparentemente simples, como pasar en las funciones un retorno de llamada, que fomenta al desarrollar JavaScript a utilizar solo el lenguaje en que se esta programando y no preocuparse demasiado acerca de lo que esta pasando tras bambalinas.
Simultáneamente es un lenguaje simple y fácil de usar; eso es un gran atractivo. Una colección compleja y matizada de su mecánica hace que sin buen estudio se produzca un falsa comprensión del lenguaje incluso para el mas avanzado de los desarrolladores de JavaScript.
Ahí está la paradoja, el talón de Aquiles del lenguaje JavaScript, el desafío que estamos abordando actualmente. Ya que JavaScript se puede utilizar sin la comprensión del lenguaje, comprensión que a menudo nunca se alcanza.
Misión
Si cada vez que se encuentre con algo inesperado o frustración en JavaScript, y su respuesta es mandarlo a la lista negra, como algunos están acostumbrados a hacer, pronto estará en un cascarón hueco sin la riqueza de JavaScript.
Si bien este subconjunto es famosamente denominado "Las partes Buenas"(de Javascript), le imploro querido lector, que lo considere mas bien como "Las partes Faciles", "Las partes Seguras" o incluso "Las partes Incompletas".
Esta serie de libros YDKJS ofrece un desafío diferente: aprender y entender profundamente todo sobre JavaScript, incluso y especialmente "Las partes Duras".
Aquí, seremos claros frente a la tendencia de los desarrolladores de JavaScript que aprenden "Lo suficiente" para salir del paso, sin tener que forzarse y entender exactamente como y por que se comporta el lenguaje de la manera en que lo hace. Ademas, evitaremos la acción mas común; retirarse cuando el camino se pone difícil.
No estoy conforme, y no debería estarlo, al momento de detenerme solo por que algo funciona sin saber porque. Gentilmente te reto a viajar por ese rocoso "camino poco transitado" y abrazar lo que es y puede hacer JavaScript. Con ese conocimiento, sin técnicas, sin frameworks o sin populares siglas/palabras de moda, su conocimiento/comprensión estará mas allá.
Cada uno de estos libros toma una parte especifica del lenguaje que comúnmente no son comprendidos o no los son por completo, y nos adentraremos completamente en lo profundo de ellos. Al terminar de leer estos libros usted debería tener una solida confianza y comprensión, no solo en la teoría, sino también en la practica "de lo que necesita saber" bytes.
Tal vez el JavaScript que sepa ahora son partes enseñadas por otros que han sido quemados por una comprensión incompleta. Ese JavaScript es solo una sombra del verdadero lenguaje. En realidad usted no sabe JavaScript, aun, pero si usted se sumerge dentro de estos libros, usted lo hará. A leer, mis amigos. JavaScript espera por usted.
Resumen
JavaScript es increíble. Cierta parte es fácil de aprender, la otra es mucho mas difícil de aprender por completo (por lo menos lo suficiente). Cuando los desarrolladores se encuentran confundidos, por lo general culpan al lenguaje en lugar de su falta de entendimiento. El objetivo de estos libros es arreglar eso, inspirar tanta confianza en el lenguaje como se pueda, y profundamente se deba saber.
Nota: Muchos de los ejemplos en este libro necesitan un entorno JavaScript moderno de desarrollo, como es ES6. Probablemente algún código no funcione como se espera si se ejecutan en entornos JavaScript antiguos a la versión ES6 del lenguaje.