Speaking JavaScript

Author: Axel Rauschmayer
Publisher: O'Reilly
Pages: 460
ISBN: 978-1449365035
Print: 1449365035
Kindle: B00INES03O
Audience: JavaScript Programmers
Rating: 4.8
Reviewer: Ian Elliot

If you need a "big book of everything JavaScript" this might be the one you are looking for.


If you have read any of Axel Rauschmayer's web articles on clever ways to use JavaScript then you will have high hopes of this book - but be warned in this book he tends to concentrate on core uses of JavaScript rather than imaginative or creative ways of doing things. However, the book does explore the depths of JavaScript without trying to turn it into a pale shadow of some other language. It attempts to present a pure JavaScript approach to the language. 




The book is divided into four parts. The first is called JavaScript Quick Start and in many ways it is the least successful section. It is an extremely brief reference style introduction to JavaScript, but it goes beyond the basic language definition and offers ways of doing common things. For example, in discussing function parameters it tells you that JavaScript doesn't check the number of parameters you are using, i.e. arity, but then goes on and shows how to use if(arguments.length...) to enforce arity. Useful but not basic JavaScript.

You get the feeling that while trying to produce a reference work the author can't help pointing out clever ways of doing things and twists. As a result it is a tiny bit too clever for an introduction to JavaScript. It almost works and I'm sure that if you read it carefully you will get a lot out of it, but there is also a lot that you will probably misunderstand on first reading - the rest of the book should clear up any such problems.

Part II is a short account of JavaScript - where it came from, its history and what ECMAScript is all about. This really should be Part I. If you either already know about JavaScript's origins and current position you can skip this part of the book without any worries. 



Part III is why you need to buy the book. It consists of in-depth looks at most of the difficult areas of using JavaScript. It starts off with the basic syntax, values, operators, booleans, numbers, strings, statements, exception handling and functions. A lot of the material goes over the ideas introduced in Part I and you have to ask why a two-stage approach is a good idea. Why not simply expand the descriptions in Part III and drop Part I? In this case going over the language twice doesn't seem to serve any real purpose. 

Next comes a set of chapters on the difficult topic of object-orientation in Javascript, starting with one that explains functions. Rauschmayer then moves on to scope and closure, objects and inheritance. He provides a good account of JavaScript's prototype and constructor approach to object-oriented programming but it could do with a bit more explanation of how to actually use these facilities. That is, what is the best way to think about objects in JavaScript or do we simply have to use the language to synthesise a mock up of what class- oriented languages have?

From here Part III tackles some easier and more traditional topics - arrays, regular expressions, dates, math, JSON, standard globals, unicode and finishes on a look at ECMAScript 5. 

Part IV is about Tips, Tools and Libraries. This has chapters on style, debugging, subclassing built in objects, JSDoc, libraries and module systems. 



Overall this is a good book, but it could be improved. Parts I and II simply make the book a bit thicker than it need be and don't really help the complete beginner. Part II could be reduced to a single chapter at the start of the book and Part I should be incorporated into Part II. This would make the book more suitable for more expert programmer - it isn't suitable for the complete beginner in its present form anyway. 

Despite these minor criticisms the book is a good read and if you are serious about JavaScript you probably need a copy, if only to find out what a JavaScript-oriented position on a given topic is. You really don't want to be reading books written by C++ or Java programmers desperately trying to make JavaScript look like a class-based language and this one at least approaches the language on its own terms. 

See Building A JavaScript Library for other recommended books on JavaScript reviewed on IProgrammer.



Clean Craftsmanship

Author: Robert C. Martin
Publisher: Addison-Wesley
Date: November 2021
Pages: 416
ISBN: 978-0136915713
Print: 013691571X
Audience: General
Rating: 4
Reviewer: Mike James
Well, I'm a clean craftsman - are you?

Software Mistakes and Tradeoffs (Manning)

Author: Tomasz Lelek and Jon Skeet
Publisher: Manning
Date: June 2022
Pages: 426
ISBN: 978-1617299209
Print: 1617299200
Audience: C# developers
Rating: 4
Reviewer: Mike James
We all make mistakes - do you want to read about them?

More Reviews



Last Updated ( Saturday, 28 November 2020 )