En su ya séptima edición, JavaScript The Definitive Guide, de David Flanagan (ver precio en Amazon), es el mejor libro de JavaScript que vas a encontrar. Yo lo compré, lo leí completo y al momento de escribir este post lo tengo en mis manos para hacer un repaso y contarte por qué es tan bueno y tan necesario que lo tengas si te dedicás al desarrollo web como yo.
Contenido
Revisiones y ediciones
Si estamos hablando de séptima edición es porque se trata de un libro al que le ha ido bien. La primera edición de este libro es de 1996 y David Flanagan lo fue actualizando a lo largo de los años, siempre de la mano de O’Reilly que es la editorial que lo edita.
Entre 1996 y 2020, Flanagan publicó nuevas ediciones de JavaScript The Definitive Guide a medida que el lenguaje se actualizaba.
La última edición es de mayo de 2020 e incorpora todas las mejoras de ES6 y es la edición que tenés que conseguir. Tené en cuenta que la anterior es de 2011 y ya no sirve.
La séptima edición cuenta con 687 páginas. Estamos hablando de un libro gordo que te va a llevar algo de tiempo leer.
Lineal y técnico
Si hay algo que me encanta de este manual de JavaScript es que es a la antigua. Es un libro de programación como los que se hacían antes. Comienza con tipos de datos, operadores, control de flujo, funciones, objetos, clases, y luego sí, bien adelante, comienza a agregar temas más avanzados.
Para muchos esto puede ser aburrido, pero yo considero que es esencial porque seguramente gran parte del desconocimiento de un lenguaje de programación esté dado por los temas que se abarcan al principio de este tipo de libros.
No hay un libro que explique y ejemplifique mejor JavaScript que JavaScript The Definitive Guide, de David Flanagan.
El lenguaje que emplea David Flanagan en JavaScript The Defitive Guide es técnico. No llega a ser un libro de matemáticas, pero tampoco es un curso online con lenguaje coloquial y algún que otro chiste.
Si bien este tono puede hacer un poco pesada la lectura, nuevamente insisto, considero indispensable que así sea.
Partes del libro
Vamos de lleno al contenido del libro. ¿Qué vas a encontrar en JavaScript The Definitive Guide?
Introducción
Como corresponde, primero un poco de contexto. ¿Qué es JavaScript? ¿De dónde salió? ¿Cómo hemos llegado a la última versión del lenguaje?
A todo esto se le suma un breve y rápido repaso por muchas de las funcionalidades que JavaScript tiene en la actualidad. Ahí Flanagan ya mete un choclazo de código, pero no te preocupes que esto es solamente el comienzo. En lo que viene, va a dar marcha atrás y comenzar desde lo más básico.
Estructura léxica
Empieza lo aburrido, ya sé. Pero es fundamental saber cómo se escribe un programa de JavaScript y dónde se puede ejecutar. Hay que saber cómo se pueden agregar comentarios al código y cuáles son las palabras clave del lenguaje.
Puede ser una sección de rutina y aburrida, pero estoy seguro que algo nuevo vas a aprender.
Tipos de datos, variables, valores, expresiones y operadores
Todos estos temas se ven en los capítulos tres y cuatro. Desde ya, son fundamentales para la comprensión del resto del libro. Es muy probable que varios de los operadores que se explican no los uses en tu vida. Sin embargo, es importante saber que están ahí a la espera de ser útiles.
El tres y el cuatro son capítulos densos y aquí capaz, en algunas partes, se puede ir pegando saltos en la lectura, pero cuidado porque JavaScript tiene comportamientos extraños en algunas circunstancias y aquí se aclaran.
Sentencias de control
El siguiente capítulo explica las sentencias de control: if, switch, for, while, etc. Quizás sea el capítulo más liviano de todo el libro. En general, uno está familiarizado con este tipo de estructuras para controlar el flujo del programa, ya que aparecen en todos los lenguajes.
Objetos, arrays, funciones y clases
Atención con estos capítulos porque son muy importantes y a veces uno cree que sabe pero no sabe nada. Flanagan decidió que cada uno de estos elementos del lenguaje tuviera su capítulo separado.
Aquí hay mucha teoría para estudiar y repasar.
El capítulo de arrays tiene absolutamente todo lo que necesitás saber para manipular arreglos. La parte de funciones, por ejemplo, tiene una mini sección sobre programación funcional.
Quizás la más teórica de estas secciones es la de clases donde se explica cómo están construidas las clases de JavaScript por dentro. Meterse un poco en estos temas te ayuda luego a pensar mejor a la hora de programar. Te diría que es un capítulo para leer y regresar cada tanto.
JavaScript avanzado
Los siguiente capítulos del libro ya se meten con temas de ES6 y otros asuntos avanzados que a muchos les cuesta comprender del todo, especialmente si venís de otro lenguaje (me incluyo).
Entre estos temas avanzados se encuentran los módulos, la Standard JavaScript Library (que agrega algunas estructuras de datos interesantes como el Set y los Maps) e iteradores y generadores.
Un párrafo aparte y un capítulo aparte para JavaScript asíncrono, es decir todo los temas vinculados a promesas, async, await, etc.
Para rematar estos temas avanzados de JavaScript, el capítulo 14 es sobre metaprogramación. Si no sabés qué es te cuento que se trata de funciones y métodos que te permiten modificar algunos aspectos del lenguaje. Si alguna vez estudiaste algo de reflexión o prototipos, digamos que viene por ahí.
El capítulo más largo de todo el libro es la aplicación de JavaScript en el navegador. Aquí se explican muchas de las funciones que el lenguaje tiene solamente en este entorno.
Es un capítulo fundamental para todos los programadores pero seguramente lo es más para los front-end developers. Aquí se detallan los eventos, los gráficos SVG, la API del canvas, la API de audio, la API para navegar, storage, web workers y otros temas vinculados a los navegadores.
JavaScript en el servidor
Así como hay una explicación del uso de JavaScript en el navegador, también hay una explicación del uso de JavaScript en el servidor, es decir de Node.js.
Hay que aclarar que es sólo un capítulo y que no es un curso de Node. Ni siquiera es una introducción ya que si nunca hiciste nada con esta tecnología, te puede parecer confuso.
Lo que hace Flanagan en este capítulo es mostrarte las capacidades que tiene JavaScript en el servidor. Es por eso que va a saltar de un «Hola Mundo!» a buffers, streams, procesos, trabajo con archivos, workers y clientes y servidores HTTP.
Si te interesa aprender Node.js, hay cursos online y otros libros más adecuados.
Extensiones de JavaScript
Por último, el libro cierra con algunos componentes adicionales que se usan mucho con JavaScript. Me refiero a herramientas como ESLint, Prettier, Babel o librerías como Jest. Se explica también lo básico de paquetes como npm, entre otros temas.
La verdad es que es un capítulo que no aporta mucho ya que muchas de estas herramientas en la actualidad se utilizan pero no son parte del núcleo de JavaScript y pueden ser reemplazadas por otras nuevas en cualquier momento.
Por qué este libro es tan importante
Nadie te va a enseñar mejor JavaScript que David Flanagan. El libro está en su séptima edición porque es la principal referencia para desarrolladores webs profesionales.
JavaScript The Definitive Guide es una referencia obligada de todo programador web moderno.
Podés leerlo completo, como lo hice yo, o leer partes concretas. Funciona tanto si lo querés barrer de forma completa como si lo querés usar de consulta.
El lenguaje técnico y la minuciosidad en cada aspecto de JavaScript convierten a este libro en un manual indispensable.
Dónde conseguirlo
Te recomiendo que lo compres en Amazon. Así lo hice yo. Personalmente preferí la versión de papel ya que en formato electrónico la edición es distinta y, en mi opinión, más difícil de leer.
Más contenido en Crónicas Freelancer
Espero que este artículo te haya gustado. Si tenés alguna duda o querés hacer algún aporte, dejame un comentario.
Si estás buscando hosting, te recomiendo Digital Ocean. Seguí este enlace para obtener US$ 200 de crédito para usar en un periodo de 60 días.
Te invito a que me sigas en las redes: LinkedIn, X, GitHub e Instagram. También estoy en CodeWars, plataforma que te recomiendo para practicar ejercicios de programación.
Eso es todo. Muchas gracias por tomarte el tiempo de leerme.
Hasta la próxima.