Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I just find working with Node to be gross.

Look at this:

https://github.com/Shopify/cli/blob/main/package.json

but wait...this too:

https://github.com/Shopify/cli/blob/main/packages/app/packag...

https://github.com/Shopify/cli/blob/main/packages/cli-hydrog...

https://github.com/Shopify/cli/blob/main/packages/cli/packag...

https://github.com/Shopify/cli/blob/main/packages/create-app...

etc, etc, etc

VS

https://github.com/Shopify/shopify-cli/blob/main/Gemfile

What am i missing? Why do you have to rely on all that junk to run a CLI? It feels like people choose Node because creating a Rube Goldberg machine creates job security.



You are missing a few things about the Ruby based CLI:

1. dependencies for Gems are specified in the gemspec file and not the Gemfile. See https://github.com/Shopify/shopify-cli/blob/main/shopify-cli... for example. There's a few non-development dependencies.

2. since it's difficult to package up a Ruby gem for distribution, maybe dependencies were vendored directly in the codebase: https://github.com/Shopify/shopify-cli/tree/main/vendor

This isn't meant to be a comparison of the number of dependencies or anything. Just pointing out a few nuances to how the Ruby dependencies were handled.


The dozens of ESLint dependencies are really what frustrate me... I wonder when someone will make a "batteries-included zero-config" JS linter with the most useful rules included, since that's what people seem to want in JS crazy land. See: Vite, Parcel, and the endless complaints about Webpack configs. Of course, people will inevitably want plugins and extensibility and you end right back up with Webpack again.


xo and eslint-config-xo

https://github.com/xojs/xo


All they need now is a sexy website!


One reason is because ruby has a large standard library. Also people just pick what they know - there are more js devs than ruby devs. Also neither ruby nor node are a good choice for a cli, so it is kind of a moo point.


> there are more js devs than ruby devs.

Not at Shopify there ain't.


It's like a cow's opinion.


The project looks extremely messy, so many packages inside packages. It feels like java, but less performant


That's not Node's issue but NX's monorepo. Having a mega monster root package.json just makes your ci/cd incredibly slow, one way to solve it, is to have per app package.json


They think of it as a benefit: "Node’s module system allows having multiple versions of the same transitive package without conflicting with each other"




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: