Originally posted on my personal blog
Just finished You don't Know JS series by Kyle Simpson. It took me almost 4 months to get through the 6 books, and I will definitely go back to reread certain parts of it.
Kyle Simpson has a unique way in explaining complex CS concepts and ideas in simple words.
This book is not as interesting or intriguing as other books in the series because it goes through the basic stuff then it's basically a list of Gotchas and quirks in the language logic. I gave it 5 stars because Kyle's explanations and examples are amazing even if the material itself is dull.
Kyle in the last chapter proposes his own design pattern OLOO (Objects Linked to Other Objects) which aims to solve many of the issues of trying to code JS in an traditional OO pattern. I have my reservations on the pattern and how readable it's syntax is.
The fact that he wants each object to have it's unique method names and prohibits overriding at all is beyond me, it makes code more complex, less intuitive and also doesn't make it any easier for new engineers to work with an already existing codebase. However, he lays down some strong arguments against writing JS code in traditional OOP style, which ignore or "hide" the dynamic nature of the language and try to tame it into a static one.
Overall, the books are amazing and mind opening, and I highly recommend them.