Live data from Hacker News

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

nadh.in

41–50 of 94 posts

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

#42
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 am with you. Don't be embarrassed. I spent a lot of time looking at Vue, React and the others and frankly I don't see how the time and effort are worth it unless you work in a large firm that has a lot of developers working on a large project.

I use npm and node because it allows me to write local tools that I write to help me manage data and convert it. I have a lot of other tools that I have access to but I can thankfully access it via CodeKit on my Mac so I don't have to waste time installing and learning them all.

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

#44

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?

The other side of the coin is that we are getting better tools. Vue 3 with the composition API is a lot easier to work with, reason about and maintain then the legacy API.

However the real counter argument is that vanilla javascript apps are also easier to write these days. If you have only a small interface to something that you have to maintain but only infrequently, perhaps a vanilla app is better suited. Vue apps are better suited if you want/need to a) get things running quickly (e.g. a prototype) and/or b) have a team of developers which need to maintain a large codebase together.

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

#45

I ditched javascript long ago for exactly this reason. Spaghetti dependencies everywhere you look.

Back when I was originally doing web development I wouldn't have touched JS but I actually quite like it now. It might just be a sign of early-onset dementia though.

I doubt that I would have enjoyed developing in JS before JQuery or the new extensions added in ES6

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

#46

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?

Don’t install a UI toolkit dependency because you heard it’s the new hotness on Twitter?

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

#47

This is a rant I can appreciate. Two subjective takes on the same subject: 1) As JavaScript became ascendant, it seems like developers lost their fear of dependencies, for some reason I don't understand. Dependencies came to be seen as "time saved" rather than "something out of your control that can hurt you." 2) When dependencies don't fit together, things fail in a way that makes it look as if the code is simply wr…

I agree strongly and think once you regain your fear of dependencies the JS ecosystem actually isn't that bad. The kinds of packages that save me months or years of work are generally of reasonable to great quality, it's packages that (theoretically) save a couple days or weeks that tend to be the real stinkers.

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

#48

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 websit…

It isn't just JS apps that are like this though. I had to redo a site for a client a few years ago that was done in some horrific php CMS that had a whole site management architecture applied overtop of it. It was a nightmare to even change a page.

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

#49

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?

well you can always write your own framework. I'ver had to do that a few times and the main benefit is that it fits your coding style and you're the only one that can break it.

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

#50
post #16

So, `yarn upgrade` broke something, probably because some package down the road didn't respect SemVer. I guess failing to respect SemVer can happen in any ecosystem, now in other ecosystem you could have sealed dependencies that an upgrade can't break, but then it makes the whole upgrade action moot. In summary, you either, not upgrade, go deep in your lock-file and fix it manually, our you update your main depenency…

Yeah, while I think the blame lies on both Vue and the author, I feel like the author is shifting too much blame off of himself.

Vue messed up because eslint wasn't pinned I assume (looks to be pinned now at ^6.7.2, so it shouldn't happen anymore) so upgrading gave you an incompatible eslint version.

Author messed up by blindly upgrading all dependencies, jumping major versions, and expecting everything to work fine without putting in work to double check. Yarn even has a kind of `interactive-upgrade` command that shows versions/links to changelogs iirc. There is also documentation for upgrading project dependencies at [this link](https://cli.vuejs.org/guide/installation.html#project-depend...) that I came across while playing around with vue cli.

I took the liberty of generating a Vue 2 project and seeing what dependencies are in the package.json

    "dependencies": {
      "core-js": "^3.6.5",
      "vue": "^2.6.11"
    },
    "devDependencies": {
      "@vue/cli-plugin-babel": "~4.5.0",
      "@vue/cli-plugin-eslint": "~4.5.0",
      "@vue/cli-service": "~4.5.0",
      "babel-eslint": "^10.1.0",
      "eslint": "^6.7.2",
      "eslint-plugin-vue": "^6.2.2",
      "vue-template-compiler": "^2.6.11"
    },
I don't think it's too bad if you've ever seen create-react-app unloaded or whatever, although I've never used Vue so I could be missing the equivalent unload step that generates a million more dependencies.
Post reply on HN