Let's talk about Eloquent Javascript

Photo by

Happy new year my boys! Here we are in 2017, I hope it'll be great for all of us and that it will bring a fresh ton of new things. With this post I hope to start a long series of review of books that I want to read about programming. I know it's a bad thing to say, but I'm absolutely not used to read programming books because I've always learned programming through blogs, articles, guides, tutorials and above all practice... a lot of it. Everything in the sphere of computers that I learned, I learned it in this way and this until the university got me with the books-mania... in colleges here it's the complete opposite (and I think that's not right too), everything you learn, you learn it through books. But now let's talk about Eloquent Javascript by Marjin Haverbeke available for free here: eloquentjavascript.net.

What this book talks about?

This is a very famous book and I'll pretend, of course, that you've never read it (it's not even unlikely anyway). It's a not-very-basic first approach to the world of JavaScript and I wanted to read it not because I needed to, but because I wanted to experience this new approach for me in a clean manner and start with the basic. It begins talking about JavaScript in general and the tools that this programming language has to offer in the browser. Then it starts with some OOP with this language (that's a bit peculiar and different from any other language that isn't object driven) and tries to illustrate some common API like the XMLHttpRequest object and others. It then ends up talking about Nodejs and how to do a full-stack web application using all the things you learned through the book.

What has this book to offer?

This book is written in a magistral way for a new entry in the JavaScript world. Things that I spent days to know were written in ten pages of this book. It's full of fantastic quotes (I saved them all) and the strong point of it are the excercises. Everytime you arrive at some page where the author thinks that up to that you grouped some useful skills, he builds with you a pretty much original and not-already-seen project. There is a Paint app, a text-life simulation run in the console of the browser and other great stuff.

Woooa even Nodejs is in this?

Yeah but don't get too excited, it's a very very basic introduction to Nodejs (server side JavaScript), it barely explains events and how a webserver works and I think that's obvious considering that if he wanted to add everything there, the book would have been huge.

But there is one defect (or not?)

It never talks or show ES6 (due to the book's date) and this can be an awesome thing or a very bad one. I honestly think that to understand well JavaScript you gotta see how things worked before that the sintactic sugar was introduced by the new ES standard, so in my opinion if you want to do things in a proper way, you should learn JavaScript with this book first and then take a book that fully introduce you to all the new practices, maybe even one that illustrates how it used to be and how it is now and when I'll find this book, I'll make a little review for it too :)

In the mean time be happy with these few words written in a hurry, I'll leave you to all the quotes I liked of this book (yes, there are awesome quotes that the writer, Haverbeke, put in it).

Fantastic quotes in Eloquent JavaScript

And my heart glows bright red under my filmy, translucent skin and they have to administer 10cc of JavaScript to get me to come back. (I respond well to toxins in the blood.) Man, that stuff will kick the peaches right out your gills! why, Why's (Poignant) Guide to Ruby

On two occasions I have been asked, ‘Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?’ [...] I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question. Charles Babbage, Passages from the Life of a Philosopher (1864)

There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. C.A.R. Hoare, 1980 ACM Turing Award Lecture

The problem with object-oriented languages is they’ve got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle. Joe Armstrong, interviewed in Coders at Work

The question of whether Machines Can Think [...] is about as relevant as the question of whether Submarines Can Swim. Edsger Dijkstra, The Threats to Computing Science

Some people, when confronted with a problem, think ‘I know, I’ll use regular expressions.’ Now they have two problems. Jamie Zawinski

A student asked ‘The programmers of old used only simple machines and no programming languages, yet they made beautiful programs. Why do we use complicated machines and programming languages?’. Fu-Tzu replied ‘The builders of old used only sticks and clay, yet they made beautiful huts.’ Master Yuan-Ma, The Book of Programming