Hacker News new | ask | show | jobs
by ushakov 1494 days ago
does this require Node.JS?

edit: it looks like you need to install 1276 npm dependencies to use this tool

https://github.com/artilleryio/artillery/network/dependencie...

i'll pass, the risk is unacceptable for value it offers, especially in corporate environments

5 comments

> Think mini-curl with better UX for common use-cases, plus a couple of extra features.

> it looks like you need to install 1276 npm dependencies to use this tool

Sincere question (probably highlights my lack of understanding Node package management): how can this be a "mini" curl with that many dependencies?

“mini” in the sense that it doesn’t do everything that curl does. curl does a whole lot. this tool focuses on more common use cases and makes them friendlier. plus with request waterfalls and assertions it does things curl can’t do.

the number of packages is a bit of a misnomer anyway. Artillery Probe is part of Artillery which does load testing, with multiple protocols, support for multi-step scenarios, publishing to a variety of monitoring systems (Datadog, Prometheus etc) and more. That’s what most of those packages enable.

I see. Thanks for the info and thanks for creating/sharing a great tool!
1276 deps... how is that even possible for a simple HTTP fetcher. Does node have no standard library? actually amazing.
This is essentially what I was referring to with my comment below. If you can improve the installation experience such that I don't have to care that you developed with node.js, so much the better. If I were a node.js developer I surely wouldn't want my global package name space polluted like that.

npm is not for end users.

the solution is not write CLIs in JavaScript, unless you have a JS-library that you also want to make available as a CLI

packaging Node in a binary won't solve the problem of JavaScript's plagued ecosystem and in fact i'd rather prefer to be able to mitigate the issues/update packages myself rather than waiting for a new binary to release

I agree with your conclusion to not write cli tools in Javascript.

However, packaging node in a binary is pretty much what electron does today, albeit with a GUI.

Regardless, it's not a problem I wish to spend any effort to solve since it's not my problem and I've (we've) already dismissed the premise (writing CLI tools in js) lol.

Another option is using Deno!
sure, that’s a valid concern in some environments. fwiw we use Snyk.io for dependency scanning
no, this is a valid concern in all environments, but in some environments this is more of a concern

> Snyk.io for dependency scanning

so what? does the CLI update itself automatically?

Yes, those dependency trees can be large. Yes, supply chain attacks are a real threat. But Node isn’t that different than Python or Ruby in that regard. How far down the stack do you personally choose to go? I trust you’re familiar with that famous paper published by a certain mr Thompson in the mid-80s?

The world is a big place. There’s a lot of software out there written in Node.js, used happily and productively by millions of developers, many of them in corporate environments.

Given the opinions you expressed elsewhere in the thread here I think it’s clear that this tool is not for you. I hope no one is forcing you to use it.

honest question to the authors: why cannot this tool not be written in JavaScript?

what technically prevents you from designing the tool independent of the Node.JS and JavaScript ecosystem?

Maybe it's what they know. Common advice for startups is to not get mired in language/framework debates: use what you already know.