Eloquent JavaScript 4.ª edición (2024)
Recepción general e impacto
- Muy elogiado, considerado por muchos comentaristas como su libro favorito de JavaScript; varios dicen que “me enseñó JavaScript” o que fue su primera introducción real a la informática.
- Se ve como adecuado para personas que ya saben algo de programación y quieren profundizar en JS, más que como un libro ideal para aprender a programar por primera vez.
- A menudo se recomienda junto con otros recursos como “You Don’t Know JS”, JavaScript.info y varios libros de JS “impacientes” / “profundos”.
- A algunos lectores no les gusta especialmente el estilo personal del autor, pero aun así consideran el libro extremadamente valioso.
JavaScript vs TypeScript para quienes aprenden
- Un grupo sostiene que los principiantes deberían empezar con JS puro:
- Evita la confusión sobre qué es el lenguaje base y qué es la herramienta.
- Refleja problemas pasados en los que la gente culpaba a “JavaScript” por las rarezas del DOM/navegador.
- TS podría cambiar o desaparecer con el tiempo; JS es la base estable.
- Otro grupo recomienda empezar directamente con TypeScript:
- Se describe como el estándar de facto en gran parte de la industria.
- Cualquier JS es TS válido, y la inferencia de tipos mantiene baja la sobrecarga sintáctica.
- Gran ventaja para refactorización y proyectos grandes.
- Se expresan preocupaciones de que TS pueda dar una idea equivocada a los recién llegados sobre los tipos en tiempo de ejecución; se mencionan bibliotecas de validación en tiempo de ejecución (p. ej., librerías de schema/parse) como complementos importantes.
Actualizaciones y formato de la cuarta edición
- Descrita como “ajustada a las realidades de 2024” y, en general, pulida.
- Entre las actualizaciones técnicas señaladas están: campos privados (
#), imports ESM en Node,Object.hasOwn,**en lugar deMath.pow, y más cobertura de generadores y async. - Varias personas piden un changelog claro; otras señalan los diffs en GitHub entre la 3.ª y la 4.ª edición.
- La versión en línea es gratuita y de código abierto; la edición impresa está prevista pero aún no está disponible.
Explicaciones conceptuales: variables, async, errores
- Largo subhilo sobre explicar las variables como “bindings” (nombres que apuntan a valores) frente a “cajas”:
- Quienes lo apoyan dicen que “binding” se ajusta a la especificación, funciona uniformemente para primitivos y objetos, y es una mejor abstracción.
- Quienes son escépticos temen que la terminología y la metáfora de los “tentáculos” confundan a los principiantes y que el modelo de “caja” sea más simple al principio.
- El capítulo de async se destaca como especialmente bueno en la nueva edición; la antigua analogía del “cuervo” en una edición anterior se consideró confusa por algunos.
- Un comentarista critica un ejemplo que lanza excepciones para condiciones esperadas de entrada del usuario, argumentando a favor de objetos de retorno explícitos al estilo Result con códigos de error; otros defienden que las excepciones con códigos y la propagación ascendente son patrones aceptables.
Detalles del lenguaje JavaScript discutidos
- Varios comentarios sobre números y aritmética entera:
- Se aclara que el
Numbertradicional de JS es un flotante; BigInt y los arrays tipados ahora existen para casos de uso enteros. - Algunos señalan que las implementaciones de BigInt pueden ser asintóticamente rápidas.
- Se aclara que el
- Subdebates sobre tipado fuerte vs débil, garantías en tiempo de ejecución vs tiempo de compilación, y los límites de los sistemas de tipos en las fronteras de las API.
Recursos de aprendizaje y hábitos de estudio
- Muchos lectores comparten estrategias para aprender con libros técnicos: tomar notas activamente, hacer ejercicios, escribir ejemplos, repetición espaciada y tratar la versión interactiva en línea como un flujo de trabajo “leer–programar–leer–programar”.