This is going to come across as a rant, so I’ll do my best to refrain from blaming any one project or source and just make a generalized statement.
The ecosystem of JavaScript frameworks is almost unbelievably unstable. Yes, even now in the year 2021.
From backend ORMs and headless APIs to frontend site generators, package managers, and build tools—it’s a miracle any of it actually works properly in production!
I’ve to agree with a lot of what the author is writing there.
Far to often I’ve came back to a somewhat older phoenix project - where the assets pipeline is still relying on webpack - only to discover that some dependencies are considered outdated (and maybe even associated with a security risk) and updating introduces breaking changes. Frankly it’s a pain in the a**.
Yes, I suffered the same, it was before esbuild and I was so pissed off that I moved that entire project to ClojureScript/ShadowCLJS, I have been free of cursing and swear words for two years now (it’s also been two years since I last used JS professionally, no relation, just saying), but every time I see run into JS codebase, I feel tested.
Not sure if this should be a good thing to do, but maybe we could open up a thread where we talk about technologies we dislike and get to share horror stories… in the spirit of October!
I’m a frontend developer and though have come to expect the churn and other issues associated with frontend development, that doesn’t make it enjoyable.
I don’t think you can really say there is a cohesive community around JavaScript. After all this is a language that started out as a little scripting language to add a bit of interactivity to a web page. Like all the languages of the web it had to expand its functionality without breaking backwards compatibility. Additionally, there’s a lot of ideas tugging at JavaScript. After all if you building a service or app in insert any other language here you are going use JavaScript for the frontend bits to varying degrees and in different ways. If you choose to use a framework, that choice will be based on what fits within your needs, coding style and values (perhaps also a business decision based on hiring).
Node and npm brought more cohesion but many problems and issues as well. It’s creator, Ryan Dahl essentially wanted a do over in the form of Deno.
So for me, as someone looking to the future of JS, I have to wonder a few things:
Will the recent trend of devs creating zero dependencies packages reducing bloat and making packages potentially less buggy, more code stable and more secure actually stick?
It’s understandable why there is no cohesion in the JS community. At the end of the day, when you have an open source driven community with a LOT of devs it’s bound to be a lot of churn for the reason that there is no one company that is driving the direction on where dev effort should be be focused.
The unfortunate thing about that is obviously we have day to day devs that need to solve real world business problems using frameworks and libraries built by people that are just constantly evolving proof of concepts LOL. Unlike mobile that is more focused on building consumer facing apps, the JS community is basically a hotbed of experimentation which is only bad when devs need to deliver value for a business. Otherwise it’s great for validating techniques that the dev community wants to coalesce around. We could argue that React validated building declarative UIs (even though it was around before React). But because of the JS community us mobile devs got Jetpack Compose and SwiftUI.
For this reason, I appreciate the JS community but I want nothing to do with it. In my eyes, it’s just there as an R&D community that will have ideas spill out in to other communities that are more cohesive.
As devs, I think one thing that we have to accept is that we got in to this to BUILD stuff. It’s the build process that drives a lot of us to create. You will often see people on GitHub ask the author of a lib/framework “Why did you create this instead of extend library/framework X?” And the answer to that question, is why be a dev if all you do is cobble together other peoples work? LOL
I hope Webassembly might be a “turning point”, letting us to use almost any language and compiling them to wasm.
However I don’t see that being really popular any time soon.