Un-frameworking myself
Anonymous Duck
Posted on August 20, 2024
Recently my Youtube feed has been filled with videos talking about how "people rely too much on frameworks" or "devs don't really know how things work anymore" etc. And it has gotten me thinking, are we (especially web developers) just monkeys learning to connect one super abstract tool with another to fit our use-case? Seemingly throwing existing libraries and solutions at the problem until one sticks?
Maybe.
Background
I'm a gen z developer, I started programming from Java and C, and only in my first "real" job I began using JavaScript seriously. Because of that, I felt a bit "superior" to my fellow junior devs, as if knowing what is a pointer was the same thing as writing your own compiler or OS.
And yet, having worked pretty much exclusively with JS/TS for the past 2.5 years, I feel like my brain has rotten. Any new project I make uses TS by default, with tons of cool and shiny libraries and tools piled on top.
Because you can't just use node, you gotta use Bun! and maybe elysia for the api, connected to EdgeDB; Perhaps NextJS for the website, with additional dependencies like React Query, Redux, Tailwind and so on. Then you might use something like Turborepo or NX to put everything in a monorepo...
When me and our company's architect were arguing about this topic, he actually said:
In every case, ever, if there is a library for it, we should use it.
I feel like this is just insane...
Sure, existing libraries have already been written, and they are more standard, maintainable*, and so on. And in many cases I agree, we shouldn't re-invent the wheel, especially when it comes to standards.
But using all those tools often eventually leads to:
- Worse performance
- INCREASED complexity
- Lower security and overall lowers developer satisfaction and skill. (Not to mention that we're still stuck on Material UI 4 with no prospects of upgrading)
Don't get me wrong, I'm not advocating for inventing your own standards, or (god forbid) using XML. I just feel like doing away with some of our libraries or even excluding big extensive frameworks, could bring really nice benefits to many companies and solo devs.
My Plan
I want to do something stupid, I want to undergo a "trial by fire" of sorts to purge my brain, and train my hands to build complex things without relying on code I don't know or don't understand.
Making a game from scratch
I figured that making a game engine (from as much scratch as I can manage) is a pretty stupid idea. Many have already said that:
If you want to make a game - do not make an engine
I figure building an engine is a complex thing, that actually necessitates using a low-level language like C/C++ or Zig. Which will give me plenty of opportunity to suffer, and implement basic things, very terribly, just to prove that I can (...or can't).
So that's the plan, build a 2/2.5D game (currently in Zig) while using as little dependencies as I possibly can, and share the process with you guys β€οΈ.
Signs that things are getting better
Despite the mess that most JS/TS startups and developers find themselves in today, I feel like many are realizing it, and the industry is moving in the right direction. More and more companies are switching to greener pastures like Go and Rust. While frameworks are moving things to the backend and trying to simplify your infrastructure.
But I feel like as long as people keep using JavaScript (and they will), our dependency trees will continue growing and flourishing.
Because when all you know is JS, everything looks like a JS problem.
Posted on August 20, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.