This story is unavailable.

Hey look, it’s yet another rant article attacking your typical Node/JS ecosystem straw men. I swear I see one of these on Medium on a monthly basis and they somehow always attract huge amounts of attention despite the fact most of the arguments are either no longer relevant or are just the author complaining about always having to learn new stuff (welcome to programming).

It’s well known that the JS community has a high churn rate at the moment, but contrary to popular belief that is not a bad thing, because that’s what has enabled such a rapid progression of new technologies.

The issues you mention with Node/NPM can essentially be summed down to “I don’t like JavaScript, I don’t like composable micromodules” so there isn’t really anything to rebut, other than your remarks on the fragility of NPM’s ecosystem. There’s services like Snyk and Greenkeeper to automate dependency management if you find reading dev/security news sites and running npm-check-updates occasionally is too hard.

Most new front-end frameworks (namely Cycle.js but also Vue.js and React) enable a clean pure functional programming style, so by building your app in one you’re not locked to it (because your components are just functions). You can even use a Cycle.js component directly in React by configuring React to use streams (e.g. viaRxJS) for it’s I/O.

You’re complaining about Babel/PostCSS? What year is this? 2015? Y’all need TypeScript and TypeStyle.

Pretty much any modern front-end framework/library can be ran universally/isomorphically, so yes, do build an “SPA”. Implementing Controllers and Views for user interface in back-end frameworks is now an anti-pattern. Write your UI structure and logic once in a single codebase that gets rendered on the server in response to the initial HTTP request and then loaded on the client side to render updates. Use your Express/Rails/Laravel/Django/Play/whatever server for what it is actually designed to do; implement the API your UI consumes, and maybe serve your static assets if they’re not in something like S3.

It really seems like this rant must have been written in 2015 or early 2016. Maybe you lost interest in Node.js (seems you’re into Go now) just at the wrong point, because using TypeScript + TypeStyle via Webpack with HMR enabled, you get an incredibly fluid and rich development experience.

I get that it can be scary starting new projects when frameworks seemingly disappear overnight, but with proper planning and use of functional programming you can construct your applications to be framework-agnostic, allowing you to use those sexy new tools today with the confidence that if the ship sinks tomorrow you can easily hop to the next one.

Rather than attacking the JS ecosystem, how about you be constructive and offer some suggestions on how to improve things?

Like what you read? Give Damon Poole a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.