How to be a Better Dev
What if we are focusing on the wrong set of skills? What if we are getting distracted by all the noise, and our acquired experience is actually irrelevant? Are we really becoming better developers in this case?
This is an obvious issue in the frontend world, where learning a framework is the number one priority for most devs. Never mind a decade of complaints, reworks and breaking changes in the framework space. Companies and developers are still betting on these bloated tech stacks hoping for quick short term wins. The long term results however are complex systems with tons of technical debt, hidden complexity and various workarounds which are actually creating worse developers. Let me explain what I mean by that.
This article was supposed to be a light hearted overview of a small game written in Van JS, but the code Tao Xin is writing is fascinating in its simplicity. If you are not familiar with Van, this is an ultra-lightweight reactive UI framework which offers all the core functionality you would expect from a modern library in under 140 lines of code.
Despite its tiny code base, you can build anything with Van, including browser games. And this is what should raise some red flags. How come it is widely accepted to send tens of kilobytes of JS to the browser to build a basic app when options like Van offer almost the same capabilities in 900 bytes?
To put things into perspective, let’s take a look at the history of the most popular frontend framework. React started as a lightweight library to build UIs, and , in the span of 10 years went through the following phases:
-
Use classes to define components, and lifecycle hooks to run your own code in the React context;
-
Deprecate class components in favor of functional components;
-
Change their API and mark lifecycle hooks UNSAFE;
-
Provide hooks like useMemo() and useCallback() to pass the burden of a poorly design reactive system onto the developer;
-
Decided that the browser is not good enough to build UIs, and introduced Server Components.
This might be a hot take, but we are witnessing entropy in action. It’s far more difficult to maintain and understand a React codebase now compared to 10 years ago, even though the problem we are solving is still the same AND we have access to better hardware and more reliable internet connections.
This is not a React rant. In all fairness, all other popular alternatives went through similar major reworks, with Angular announcing its SECOND renaissance just a couple of weeks back. [Another one] So, back to my question, is fighting framework fires really making you a better developer?
It seems to me that keeping thighs simple is way more difficult than maintaining a complex system, and if you really want to grow as a developer, you should try to achieve more by writing less.
I for one can hold my own in any large React or Angular project with piles of 3rd party libraries doing god know what under the hood. However, I’m not so sure I could maintain Van’s simplicity, Solid’s elegance or the original ideas behind a framework like Qwik.
Thank you for reading!