ES6 made me love JavaScript 😍
I consider myself a full stack JavaScript developer, but that wasn’t always the case. PHP used to be my backend programming language of choice and when paired with the Laravel framework, it was an absolute joy to be able to release web apps so quickly.
So, what exactly changed? Why am I all in on JavaScript despite all the time I put in to learning PHP? Well, I never actually felt like a seasoned PHP developer because my concentration was constantly split between frontend (JavaScript) and backend (PHP) code & tools. This is an issue I refer to as context switching – shifting your thinking back and forth thus reducing how productive you are on each task.
Node.js, the technology that allows you to write JavaScript on the backend, was released during a time when I felt like JavaScript was not that elegant of a language. Simple tasks felt so primitive, and it was still just something that I’d sprinkle on top of my already working web app.
ES6, a new features spec for JavaScript in 2015, completely changed that thinking for me. This was the starting point for so much awesomeness that we can utilize now to make our code more powerful and descriptive. Googling how to write multiline strings again? Just use a template literal. Extending objects/arrays and grabbing a few props? Spread and destructuring to the rescue. Pesky issues due to scoping? Not with const, let, and arrow functions. Don’t even get me started on asynchronous code with Promises and async/await syntax.
The switch to JavaScript
It was quite an obvious moment for me. I opened up my PHP project in my editor, started writing JavaScript syntax, and was confused by the error messages. A facepalm later, I decided it was time to switch.
Keep in mind that I did not say anything bad about PHP. I still follow the Laravel community and respect many people in it that are building awesome things. The point that I want to get across is to not take the sunk cost of investment you put in to learning something to prevent you from taking leaps. It made a lot of sense for me in terms of the context switching and where I see the JavaScript language going in the future.
Hopefully I’ll write more about this topic in the future, or I’ll extend upon this when I publish it to my blog. Help me out by giving me your thoughts on this topic by emailing me back or tweeting, and of course I appreciate anyone that recommends this newsletter to their friends. If it provides value to you, of course!
🗂 Tab Dump
Speaking of value, I have a ton of resources to share with you. These have been open in my Chrome tabs for way too long and my RAM is non-existent at this point.
- Flexible data tables with CSS Grid - A tutorial by Adam Lynch on creating responsible tables utilizing CSS Grid.
- Speed at Scale: Web Performance Tips and Tricks from the Trenches (Google I/O ’19) - Jam-packed talk from Google I/O on web performance.
- styled-css-grid - A tiny CSS grid layout for React
- CSSFX - Beautifully simple click-to-copy CSS effects
- dinoql - A customizable GraphQL style query language for interacting with JavaScript objects.
- Reakit - Build accessible rich web apps with React
- Blackspace - Add blank spaces to OS X’s Dock
- Klokki - Precise time-tracking without all the hassle
- Podcast Stuff Notebook - A tool to help you plan, research and tell stories for all your podcast 🎧 episodes!.
📅 Updates
This week I released a new podcast episode on Lessons in podcasting with Pradip Khakhar. It was awesome to hear Pradip’s valuable perspectives on podcasting and what we both learned throughout our journeys. There are some audio mishaps on this one, but that ties in well to what we talk about so I definitely hope you tune in.
I’m also back to working on the next major iteration of IronMic. The team and I have a ton of awesome ideas to help make podcasting even easier, which I hope to openly share and even stream live.
As always though, more content is incoming and I hope to catch up with this longer weekend.
See you next Sunday, same inbox? 👋