Live data from Hacker News

The JavaScript ecosystem is a hot mess and so is software development

nadh.in

31–40 of 94 posts

Re: The JavaScript ecosystem is a hot mess and so is software development

#31
post #6

I'm embarrassed to admit that for web development, I'm afraid to try frameworks like React/Vue/Angular as well as package managers like NPM/Yarn. So I settled on writing raw (X)HTML code and using only vanilla JavaScript APIs provided by the browser (ECMAScript standard library, DOM, multimedia, etc.). Because of this, I can't bang out complicated software quickly and easily like the stereotypical front-end developer…

Sounds like a solid/healthy strategy to me.

With ignoring package managers, do you mean that you instead of running "npm/yarn install/add " you inspect said package (which does what you need) and cherry-pick the functionality into your own codebase (or just outright copy it if its functionality is elementary to you), or that you try to write/reimplement it yourself?

Re: The JavaScript ecosystem is a hot mess and so is software development

#33
I stick to pretty minimal dependencies (and more recently, simple build systems like esbuild or parcel) and I don't have a terrible time maintaining things over the years. But I can sympathize (to a point) with folks who haven't learned this lesson.

The more packages you bring in the harder it will be for you to upgrade (anything).

You have to learn over time what you must have implemented in a third party library and what would be better for you to maintain yourself.

I do wish there were a public grading system for JavaScript libraries that failed them if they bring in X dependencies or have low tests coverage. Any automated way that publicly guided/shamed library developers toward fewer dependencies would be welcome.

Re: The JavaScript ecosystem is a hot mess and so is software development

#34
I agree and have quit Javascript completely. The ecosystem just feeds on layers and layers of abstractions. It seems the mantra is complex is better than simple in JS land.

Been developing with an HTMX/Django stack[0], and it has been a wonderful experience so far!

https://htmx-django.com

Re: The JavaScript ecosystem is a hot mess and so is software development

#35

Out of curiosity what is the best counter argument to the general thesis, eg either what positives come entangled in the hot mess or reasons it’s not a hot mess?

That while it might be difficult to articulate, the churn of technologies does represent a meaningful search and forward march of progress. The churn is the result of ever more rapid progress on an increasingly abstract knowledge system. However, it is hard to recognize positive structural change as just another worker bee in the hive.

I don't buy this. The whole thing is enabled by hard work of browser developers enabling all this hot mess without much performance impact. JS is blazing fast and it creates a massive wild-wild-west of framework gold rush. Instead of being responsible, they create ever more bloatware that doesn't stand for 6 months.

Re: The JavaScript ecosystem is a hot mess and so is software development

#36
The JS Ecosystem + The AWS / Serverless ecosystem is a love story of the likes of Harley Quinn and the Joker.

This week I picked up a gig working on a website for a non-profit organization, the needed some basic changes to a few forms. The reason they had to hire me, a web app developer, the site was built by some agency with Next.js / Jam Stack technologies, Contenful, AWS Lambda, AWS Amplify etc.

This simple website, is one of the most complicated monstrosities I've ever worked with. Every page downloads multiple megabytes of JSON from the Contentful API just to render dead simple pages with text and images. Every time there's a change in contenful, a new build in AWS Amplify is triggered to generate the site to static content... only the React code is so complicated with so many round-trip, nested server requests (n+1+1+1 etc) that the builds fail constantly because the API server (on lambda of course) which serves the Contentful content basically gets DOSed. I had to write logic to retry all app API requests just to get the builds to consistently work so I could work on the website. The code that transforms these megabytes of JSON into webpages must have been written by a mad man.

Also screw AWS for not building proper tools to debug AWS Lambda. Not having to manage servers sounds awesome, so everyone has started using lambda, but the developer experience of having to wait 10 - 15 minutes just to add a console.log line is like pulling out your own finger nails and then scraping them on a chalkboard. Then AWS built the most noisy, difficult to use and hard to navigate log management solution on the planet (CloudWatch), and started sipping their beers.

You can avoid these technologies all you want, but one day you're going to have to work with a project that choose to use them, and you can't control that. I believe library authors and service providers have a responsibility to think about developer experience that's being ignored. Or perhaps, since developers don't always have a choice in the technologies they use, building easy to use developer tools isn't worth it.

Re: The JavaScript ecosystem is a hot mess and so is software development

#37
post #15
post #6

I'm embarrassed to admit that for web development, I'm afraid to try frameworks like React/Vue/Angular as well as package managers like NPM/Yarn. So I settled on writing raw (X)HTML code and using only vanilla JavaScript APIs provided by the browser (ECMAScript standard library, DOM, multimedia, etc.). Because of this, I can't bang out complicated software quickly and easily like the stereotypical front-end developer…

> I made an exception for TypeScript I was nodding my head until TypeScript. I still don't like it even after years of people telling me it's the future. Maybe this is what it feels like to be older.

TypeScript's the first thing that's made JS tolerable, if I have to touch or use anyone else's JS code. It's pure misery, otherwise.

Writing solo and using no libraries, plain JS is... OK. Anything else, TS is the only thing that keeps me from hating life the whole time I'm working in JS.

FWIW I'm a huge curmudgeon who's usually (eventually) proven right when I hate some new thing that everyone else seems to think is great. TypeScript is wonderful.

Re: The JavaScript ecosystem is a hot mess and so is software development

#38
This reads more like an issue with Vue (social, not technical) than a valid criticism of the JS ecosystem.

Vue.js is a great project for front-end enthusiasts, but if you look at business objectives (aka getting things done) you would want to use React for any web app: The ecosystem in terms of libraries, help articles, developers is at least 10x bigger.

The release of Vue 3 definitely makes this situation worse for a couple of years in which using Vue 2 is still an option. Effectively fragmenting the Vue-camp further.

TLDR: Use React with vite and pin your dependencies to avoid everything mentioned in the article.

Re: The JavaScript ecosystem is a hot mess and so is software development

#39
I have recently come back into web development after a long hiatus and this article really touches on a lot of issues I have had with JS development and trying to learn new tools and libraries. I really feel what that author is saying.

All of these cli tools that people use make me think of that boiling frog metaphor.

Re: The JavaScript ecosystem is a hot mess and so is software development

#40
tl;dr blindly upgrading 100s of dependencies didn’t work out. But, is this instability due to the ecosystem, or the choices of the developer?

I work on a large, highly interactive web app that does a lot of the fancy stuff like code push to native apps, offline caching, heavy use of browser storage, real time collaboration. Our stack is React, Express, Typescript, built with Webpack. Every year or so we upgrade one of these major components, like Webpack, which does take a week, following a semver major migration guide, but usually nets us some performance and developer productivity wins. I’m sure if I tried to upgraded all our dependencies at once, it’d explode. So, we don’t do that.

Maybe I sound like a C developer arguing “C unsafety is fine, just don’t make mistakes”. There’s a ton of hype around JS libraries — of course there’s bigger hype waves in this ecosystem given its population and ease of publishing (compare to Java where you need to open a JIRA ticket to publish to maven central) but it’s a personal choice to follow fads like installing this ChakraUI thing or to use boring tools that you already know work.

Post reply on HN