Briar only works on Android so it's inherently flawed.
Of course, Cabal being written in javascript is also a major minus. As an oldschool Unix hacker, I don't really get the node.js fixation for command line tools. It's a certainty that they'll never be used by a significant chunk of knowledgeable, expert Unix users that want nothing to do with node.
Finally, there is no protocol documentation anywhere that I can see. This is yet another way that these modern tools fail spectacularly. In the golden age of the Internet, published protocol documentation that allowed for multiple clients to be developed was the norm rather than the exception. Which led to robust, long living protocols and services (e.g. IRC).
Even though we're being drowned in apps, this isn't happening today and we're worse off for it.
I don't brush aside Node programs just because they're Node. I brush them aside because they usually drag in a few MB of dependencies, and melt my (mid-level) computer with compilation (often OOM-killing everything else I'm doing on the machine, before dying to the OOM-killer itself) – but for all that, I then need to keep the entire thing on my hard drive because the compilation was mere caching, and hasn't given me an executable; I've still got the runtime overhead of Node, and everything that comes with it.
There are a few Python programs I also brush aside for this reason, though substantially fewer. Virtually every Node project I've seen is a spidery mess of dependencies bringing in dependencies bringing in yet more un-auditable dependencies; the worst Python tends to get is Tensorflow, and it's ready to run immediately (compiling C modules aside – though pip does that at installation time, making that a one-time annoyance for all but obscure C packages).
Melt your computer with compilation? A Node program?
More to the point, did you audit Tensorflow? If no, then what's your point to begin with? If yes, what made you conclude that auditing Tensorflow is doable, but usually simple NPM modules are "un-auditable"?
I didn't audit Tensorflow. But I don't install Tensorflow programs, anyway, because I don't have the resources.
The point isn't auditing, though; it's auditability. If it's auditable, then somebody's probably done it – but if it's not, you can't rely on just a spot check of a few dice-picked dependencies.
There are hundreds of them, and they are very large, and many have no clear purpose, and they keep getting new versions that change seemingly nothing, but actually change a lot.
I wouldn't describe myself as that, but I think I'm a little bit past noob at this point.
I don't "brush aside" a program because it's node, but it's definitely a strike against it. I don't like dealing with the massive amount of dependencies that always seems to follow along with it.
I can't speak for Perl or Python, but for Ruby I have never seen a single Ruby tool that pulls in anything close to the same order of magnitude of discrete dependencies that some JS tools end up doing. I of course stand to be corrected.
I don't mind installing tools like Rollup and TypeScript. I do very much mind installing tools like Webpack and Babel.
> If anything, lots of small dependencies is more Unix-y than one big dependency.
Of course, as evidenced by much-used programs such as curl and git having 400 dependencies each and OpenSSL being shipped as separate libraries for every single crypto function.
We've all taken some git precommit hook that a coworker has helpfully provided, and rewritten it in bash so you don't need the entire node runtime to append a ticket number to a string.
> I don't really get the node.js fixation for command line tools.
It's simply because most developers are web developers. They use the programming language and tooling they're familiar with. I do also wish that there wasn't so much of a move to webify everything, particularly since web dev is so prone to constantly changing fads and dependency sprawl. It tends to lead to code/software that breaks all the time.
I’d say that JS desktop/web applications are becoming more prevalent due to most alternative GUI frameworks not being as simple and feature rich. I’d also say that this is most likely a side effect of most UI resources being targeted towards JS and therefore reducing the attention all other GUI tooling receives.
Of course, Cabal being written in javascript is also a major minus. As an oldschool Unix hacker, I don't really get the node.js fixation for command line tools. It's a certainty that they'll never be used by a significant chunk of knowledgeable, expert Unix users that want nothing to do with node.
Finally, there is no protocol documentation anywhere that I can see. This is yet another way that these modern tools fail spectacularly. In the golden age of the Internet, published protocol documentation that allowed for multiple clients to be developed was the norm rather than the exception. Which led to robust, long living protocols and services (e.g. IRC).
Even though we're being drowned in apps, this isn't happening today and we're worse off for it.