Software Engineering Still Matters
I have really started studying the best software engineering and framework architects for the past few years, and they have a lot to teach us. In the age of vibe coding where everyone wants to ship lousy MVPs, true software engineering is still a work of art.
Writing More Often
I'm trying to work on making my blogs more concise and publishing new ones more frequently, so excuse the disjointed thoughts. I have recently started battling my crippling anxiety of needing every blogpost, every tweet/post, every YouTube video, every whatever, to be absolutely perfect. This obsession with needing perfectly-generated content stuns me into inaction which yields - you guessed it - no content! So if I sound a little more concise this time, I'm just practicing letting go and relaxing while I write these.
React Footgun
I saw an X post go viral on Reddit today where the X user was discussing how cumbersome and backwards the reactivity model is in React. I read through the comments and was pleasantly surprised to see how friendly the thoughts and opinions were about VueJS which makes me quite happy since I am a heavy VueJS and Nuxt developer. In the midst of people comparing React to Vue and some of the other single page application (SPA) frameworks, I found a fascinating article from a Reddit user who feels that the React reactivity model is quite literally built inversely.
In a nutshell, React overrenders or rerenders components by default which often times leads to garbage performance. Using a C# analogy, it's almost like React tries to rerun class constructors every time a reactive event triggers a render in the UI. To avoid this, a React developer has to implement useMemo
and friends to opt out of this overrendering, but really the overrendering itself should have been opted out by the React architects. Inexperienced React devs often overlook the performance degradation of overrendering, bloating browser operations and wasting machine resources for the end user. This is apparently such a common problem with React apps that even massive sites like GitHub have horrible overrendering performance degradation. I actually followed up this post with a phenomanal Theo YouTube video titled "Why is every React site so slow?". Excellent video, I highly recommend watching it for anyone who is curious.
Contrast this with Vue, for example, where rendering is done in a signal or callback sort of fashion; or perhaps, in lamen's terms, I would say in a just-in-time (JIT) or memory-efficient manner. Vue made the opposite default architectural choice that React did so that overrendering in Vue is an intentional design choice by the developer and not an accidental footgun.
The Masters
That got me thinking about how masterfully Evan You crafted VueJS. I think a lot about how beautifully architected Vue is, same with Vite. In fact, Vite has overtaken the entire web development global community even more than Vue itself has - as if Evan's legacy wasn't groundbreaking enough as it was, the dude just had to accidentally create the best new build tool the webdev community had seen in years while he was writing Vue v3.
I think a lot about Vue lifecycle hooks, I think a lot about the pleasant plugin architecture that Vite offers, I think about Linus Torvalds always talking about wanting Linux kernel contributors who "have good taste". These guys are masters of world-class, fanatically-beloved software products.
They are architectural masters. And the rest of the world has noticed their hard work and loves them for it.
Pleasant Contrast
I really love that. On X, Reddit, and elsewhere, here in the startup world, a concerning number of founders seem proud to ship barely functioning piles of software garbage to users and pat themselves on the back for "shipping fast".
I really hate that. I struggle horribly with perfectionism and the undesirable side effect of procrastination that it causes, so I'm certainly not without my own faults - I have to ship, hence me writing this blogpost at 3am on a Thursday night after I just got back from the beach.
Craft Your Product
But I think true software engineering, true architectural craftmanship, true ingenuity, is still loved and appreciated by users world wide.
Maybe it's more simple than we all think it is: maybe we should just try to craft a beautiful product. And when we do, maybe the product itself becomes a salesman for us. Yes, yes, we still have to do all of the business and marketing, I am well aware and have three years of "paying my dues" doing just that.
But seriously: maybe it is more simple than we think. Everyone always want a magic formula to make this harrowing journey easier, but here's a crazy idea: maybe just make a killer product?
Make users' lives better, reduce their pain, make them feel special. And then let's see what happens to our wallets.