Announcing the Second Edition of "Refactoring"
Choosing JavaScript was deeply ironic for me, as many readers may know, I’m not a fan of it. It has too many awkward edge cases and clunky idioms. ECMAScript 2015 (ES6) introduced a rather good class model, which makes many object-oriented refactorings much easier to express, but still has annoying holes that are built into the fabric of the language from its earliest days. But the compelling reason for choosing it over Java is that isn’t wholly centered on classes. There are top-level functions, and use of first-class functions is common. This makes it much easier to show refactoring out of the context of classes.
Source: Announcing the Second Edition of “Refactoring” - Martin Fowler
Nice. Last time I picked it up, it seemed a bit dated in a lot of ways.