You sometimes hear people on the internet complain that JavaScript is becoming too complex. They reminisce of the old days when you could write some code, plop it in a <script>
tag, and it worked.
Now you need Babel, and Webpack bundling, and transpiling, and a bazillion different versions of JavaScript, and a framework for components, a framework for CSS, and and it's all just one big hairy mess.
Baloney
JavaScript is wonderful. ❤️
The JavaScript community is one of the most welcoming beginner friendly communities I've ever met. Everyone is welcome. Everyone is productive. Everyone can get started.
With experience or without, there is a place for you in the JavaScript world.
Remember that one time I tried to use Kotlin and fell flat on my face?
— Swizec Teller (@Swizec) June 8, 2019
Y'all who only ever used JavaScript don't know how good you have it.
JavaScript is a slice of heaven in the programming world. TypeScript too. No other community spends so much time making life easier. https://t.co/HHYpktVUcs
What I love about the JavaScript community is how hard everyone works to make it even more accessible. There's a wealth of resources to learn from, a bunch of tools making your life easier, abstracting away the complexities. 👌
In my experience other communities (except maybe Ruby/Rails) do focus on making life easier, but their target audience is the engineer with 10 years of experience.
— Swizec Teller (@Swizec) June 8, 2019
JavaScript instead is like "How do we make this more accessible to someone with 10 days experience?"
In the JavaScript world you can find everything from total beginner stuff like "How to write a for loop and why" to complex topics you run into after years of working on real projects.
There's even people streaming their work! I would've killed to learn by watching experts work when I was a kid.
You know how I learned to code?
By opening Turbo Pascal's help files, in a language I barely understood (English), and trying things. It was fun but dear god it was slow.
And I didn't even have the internet. Once a week I could ask my teacher about things and that was it. No Google, no blogs, not even books.
I probably could've had books but have you tried to read a college text book as a 12 year old? It doesn't work very well.
That's what learning how to code used to look like. You can poke around and try stuff, ask one or two mentors, or read books way beyond your level.
Now you have blogs and courses and video streamers and experts answering questions and ... it's amazing. I love it 😍
Beginner friendly helps everyone
The best part is that this helps everyone. Even experts.
And when you make something accessible to people with 10 days experience.
— Swizec Teller (@Swizec) June 8, 2019
You're making my life easier too so I can focus on solving problems instead of programming tricks. And I love that ❤️
When you make something more accessible to beginners, when it's quicker to get started, that helps experienced people too.
Consider this 👇
Would you rather spend an hour setting up Webpack and Babel and your basic file structure and a development server and hot reloading and all the plugins or ...
... run create-react-app
and get started building your app in 30 seconds?
I know what I'd pick 😉
That same CRA tool that makes it easier for beginners to start with React, makes it quicker for an expert, too.
Or how about this 👇
Would you rather spend your time thinking about memory optimization, clearing array buffers, making sure there's no overflows, thinking about deallocation, and memory paging, and swapping and thrashing and all those things ...
... or trust a garbage collector is Good Enough and focus on solving your business problems?
yeah, exactly
We stand on the shoulders of giants
Computer science and software engineering go back many decades. Every generation solved a new set of challenges and we take those solutions for granted.
We love to think the stuff we learned in our engineering youth represents The Fundamental Fundamentals. We scoff at the new kids on the block. Pha, they don't even know how to efficiently write to a drum-memory. Useless
Wait what, a drum memory?
Read The story of Mel my friend, it is amazing.
But here's the thing, you don't know (me neither) about drum memory because we don't need to.
Someone before us solved that problem.
We also don't think about optimizing registry assignment, aligning memory so it's used efficiently, writing to hard drives without leaving huge holes, or cleaning up our own memory. Tools baked right into our environment handle that for us.
And that's amazing.
Time saved thinking about low level concerns, is time you get to use for problems unique to you and your company.
So please, keep adding complexity, keep adding abstractions, the more you come up with, the less time I have to waste on silly little details :)
Enjoy your Monday, ~Swizec
Continue reading about Is JavaScript really getting too complex?
Semantically similar articles hand-picked by GPT-4
- Why everything must change every five years
- Just for fun 👉 React vs. jQuery vs. Svelte, same 🐱 app
- Modern backend is a JavaScript function
- Don't Worry; It's a Compiler Bug
- Arcane JavaScript knowledge still useful
Learned something new?
Read more Software Engineering Lessons from Production
I write articles with real insight into the career and skills of a modern software engineer. "Raw and honest from the heart!" as one reader described them. Fueled by lessons learned over 20 years of building production code for side-projects, small businesses, and hyper growth startups. Both successful and not.
Subscribe below 👇
Software Engineering Lessons from Production
Join Swizec's Newsletter and get insightful emails 💌 on mindsets, tactics, and technical skills for your career. Real lessons from building production software. No bullshit.
"Man, love your simple writing! Yours is the only newsletter I open and only blog that I give a fuck to read & scroll till the end. And wow always take away lessons with me. Inspiring! And very relatable. 👌"
Have a burning question that you think I can answer? Hit me up on twitter and I'll do my best.
Who am I and who do I help? I'm Swizec Teller and I turn coders into engineers with "Raw and honest from the heart!" writing. No bullshit. Real insights into the career and skills of a modern software engineer.
Want to become a true senior engineer? Take ownership, have autonomy, and be a force multiplier on your team. The Senior Engineer Mindset ebook can help 👉 swizec.com/senior-mindset. These are the shifts in mindset that unlocked my career.
Curious about Serverless and the modern backend? Check out Serverless Handbook, for frontend engineers 👉 ServerlessHandbook.dev
Want to Stop copy pasting D3 examples and create data visualizations of your own? Learn how to build scalable dataviz React components your whole team can understand with React for Data Visualization
Want to get my best emails on JavaScript, React, Serverless, Fullstack Web, or Indie Hacking? Check out swizec.com/collections
Did someone amazing share this letter with you? Wonderful! You can sign up for my weekly letters for software engineers on their path to greatness, here: swizec.com/blog
Want to brush up on your modern JavaScript syntax? Check out my interactive cheatsheet: es6cheatsheet.com
By the way, just in case no one has told you it yet today: I love and appreciate you for who you are ❤️