I’ve started to relearn JavaScript after taking a long hiatus. When I first started coding I certainly had the naiveté of youth and jumped on the bandwagon when it came to dissing JavaScript. Thanks to libraries like Prototype , I realized it had a lot of really interesting features such as first class functions and closures. At the same time, web development was always frustrating. Testing in the different browsers was painful and slow. Finding the right lowest common denominator when it came to browser support was a challenge, with CSS box models not making anything easier. Thankfully jQuery came along, but by that time I had managed to divert my career lower down the stack and stuck with RESTful APIs and services.
Now that I’m ramping up a new team that will need to be fluent in front end web development, it is clearly time I reintroduce myself with modern JavaScript.
The biggest change has been the ecosystem. JavaScript is not something you include as a script tag and you’re done. Working with a modern JavaScript stack involves an entire toolchain that takes modules and puts everything together intelligently. The browsers support an amazingly consistent API (at least from what I can tell) that makes the woes of cross browser compatibility much more manageable. Having tools like Node.js makes it trivial to serve an app locally or allow proxying some elements to a live site.
The frameworks are also really impressive. I’ve been playing with React recently, but I’ve also taken short looks at Vue.js and Ember . I had a short stint where I was passively exposed to Angular when it first came out and the progress since then has been really amazing. All these frameworks seem to greatly improve the default event handling, but what is more, they address how you maintain the actual application. There is helpful structure that reminds of when I first really understood the benefit of Rails. Intelligent decisions are made for you so you can focus on other things. Clearly, I’m not an expert with my short time working with these tools, but compared to including jQuery in a page and figuring everything else out, the structure and features feel much more mature.
The other aspect that has been fun to experience has been the community. As I’ve searched to find interesting articles and talks, the tone and presentation has felt exceptionally inclusive. The community is diverse, kind as well as deeply technical. I’ve been really grateful to the folks at work that have answered my questions and generally provided guidance. They have been open, knowledgeable, and accepting.
In short, it has been a lot of fun! I made a little site on glitch to try out React, so take a look, especially if you have a new pet you want named by a 3 year old.