slowin
5 days ago
I really wish people would mention their stack when they have these curl install scripts. I'd rather use a real package manager, but I'm not totally against installing a compiled binary this way. I am, 100%, not going to install some Java/Type-script nightmare like this though. How is it resolving the dependencies? Is it installing some version of node, bun... on my machine? How's that working with other versions I have installed?
Related: please don't write command line tools in non-compiled languages! Don't make the runtime your user's problem.
alaudet
5 days ago
I don't know man, seems like a cool project and is open source. I guess he could have just sat on it and used for himself exclusively. It's auditable and totally fine for an open source project and nobody is forced to use it. It's free to use under the MIT license, what else can you really ask for.
slowin
5 days ago
I actually don't mean to bag on the author, but I think my complaint is valid. Maybe if they had a note right next to the curl command that said "This installs a single bun bundled executable. Here's a link to the GitHub releases if you'd like to install it yourself", that would be helpful.
My point about interpreted languages stands though. These bundled javascript runtime "apps" eat at least 500M of RAM on boot. That's totally not needed for a CLI tool. If it's not bundled, then it's even worse as you hit the supply chain and tooling interference problems (and you still use the same RAM). There are a lot of good, modern, compiled languages. CLI builders should pick up those stacks imho.
massysett
5 days ago
In case the author is, like so many people, sensitive to this kind of criticism, I will say this:
Thank you for giving the world your free software. Feel no compunction to undertake extra work to please people who criticize your work. They are not paying for your software and are not paying your bills. If your install eats enormous amounts of ram or uses a programming language they do not like, that is their problem. In your case for example they are free to get Bloomberg.
If you want to do free work to please critical people, ok. But I wouldn’t bother. Thank you for all the work you did to write your software and then the even more work you did to share it. I write my own software but don’t bother sharing it because it’s a lot of work, so I appreciate you.
xerox13ster
3 days ago
I don’t know, man. Maybe if they’re that sensitive to criticism they should leave the industry.
This kind of hug boxing might have been fine five years ago during the ZIRP era, but in an age where two sticks of RAM is becoming $800 (and data centers are causing dirty sin power that can wear down electronics), I think the developers have a duty to be efficient with their programs and to do what is necessary to not ship a 500 MB ram sink with every single app.
It is frankly unforgivable and it’s a drain on the skill of the industry to just say “yeah no man it’s OK. It’s OK don’t worry don’t worry about your app being completely inefficient and a drain on your users resources. Don’t worry about it. Your app is so good that nobody will ever be using any other application on their PC“
Is this developer paying for my RAM? I run local models on consumer hardware. I can’t afford a 500mb of RAM for a CLI app. Thank you for that. Thank you for writing your CLI software in a way that I have to close it in order to use other parts of my computer.
Not to mention interpreted languages are slower than compiled languages, and we are talking about a financial terminal. Talk about not even understanding the functional requirements of the thing you are building. I might go get Bloomberg terminal instead of this just because I know it’s gonna actually be faster and make me money. This might actually lose me money.
Just because they built an application that “competes” with a closed source tool does not mean that their open source tool is good or worth adopting.
I mean, have some respect for and actual thought about who your end user is.
Imagine in the 80s or 90s telling a software developer not worry about porting their Amiga fintech application to another architecture like sparc. Imagine telling a developer in the 90s and 00s not to worry about browser compatibility and thanking them for making it only for IE to protect their fragile ego.
Imagine telling the creators of UNIX “yeah, no PDP 11 is good. You could stop there anyone who wants to run it on a different architecture is just an ingrate who doesn’t respect the effort you put in.” Because they already did so much work.
This is a farce. GP had a valid constructive criticism and a valid input worth considering when you take into account the functional requirements of a financial terminal.
Just because you are willing to cut corners on things that you don’t release does not mean that it is OK to release a piece of software with cut corners. But you know that, or you would release your software. I’m certainly projecting because I know that that’s why I write tools for myself that I don’t publish, but even then I use compiled languages and go out of my way to avoid JavaScript type script, python, and all of that.
But if this project were to ever take off and they were to monetize or start charging enterprise licenses the very first thing I would ask for is the compiled version that doesn’t rely on interpreted languages or a 500 MB node folder.
nemomarx
5 days ago
Is it? I see some kinda subscription, so there's gotta be some non MIT portion of it
alwa
5 days ago
That page seems to indicate that the subscription is to a real-time data feed, rather than the software itself—am I mistaken?
nemomarx
5 days ago
Unless you're paying to turn on access to purely a third party feed (which would be odd to me) there's some server side code taking those feeds and that the app is calling. Is that server code MIT licensed?
An open source interface to a proprietary backend isn't really fully auditable.
ryukoposting
5 days ago
It's a completely legitimate complaint. If anything, it's an even stronger complaint because of the lack of provenance. And even stronger when you consider that there is intent to monetize: https://gloom.sh/cloud
It doesn't take a genius to realize this entire project was probably vibe coded. What does the script actually do? What assumptions does it make about the user's system? Has any human actually looked at it to figure that out?
CharlesW
5 days ago
The source is prominently linked: https://github.com/gloom-sh/gloomberb
> please don't write command line tools in non-compiled languages!
Around 40% of Linux CLI tools are written in interpreted languages.
antonvs
5 days ago
The standard Linux CLI tools are installed by a package manager, which has addressed the issues raised upthread. Installs via curl | bash don’t automatically benefit from that.
rtaylorgarlock
5 days ago
Let those be the 40% we prefer less :) Revealing stack does not validate the framework, but we appreciate some foss sauce 'round these parts.
rtaylorgarlock
5 days ago
[flagged]
slowin
5 days ago
> The source is prominently linked: https://github.com/gloom-sh/gloomberb
This is how I found out it's a javascript project and didn't install it. I only even bothered to do that because I actually wanted to try it. I'm just saying it would be awesome to have that right there next to the curl command.
> Around 40% of Linux CLI tools are written in interpreted languages.
And I prefer not to use those. Everything I said for Javascript holds for Python, Perl, Ruby... as well.
alpha_trion
4 days ago
Using JS for anything finance related is incredibly naive
cztomsik
4 days ago
I think the point was that even Bash is interpreted.
slowin
4 days ago
I definitely do not think Bash scripts should be distributed.
bobajeff
5 days ago
I know where you're coming from. I've been worried about all the supply chain attacks on npm too. And I'm far from a security expert. However, if you're okay with installing binary packages via `curl somesite.com | sh` I don't think you are in a better position with regards to security.
slowin
5 days ago
Security is just one of my concerns. I'm actually more worried about borking my system because it's doing some out of band stuff with various javascript pieces that already exist on my system (not by my choice!).
rbanffy
5 days ago
I write command line tools primarily with Python and one thing I always try to do is to limit myself to the standard library, which, with Python, is quite sufficient for most of what I do.
Anyway, most of what I write is designed to be installed in a virtualenv, which restricts the blast radius to one specific application.
Pooge
5 days ago
And in the GitHub release page they include compiled binaries anyway... Why would you advertise `curl | bash` as a way to install if there's a binary available?!
Download it, put it wherever you like (probably `~/.local/bin/`) and you're good to use it.
Sometimes I truly wonder...
munksbeer
5 days ago
It seems to have become "the thing" to do. I can't figure out if it is bad as it feels. Why would I run `curl | bash` on something that could be doing literally anything. It feels crazy that all the lessons we've learned just get thrown away.
On the other hand, just because I run `brew install someapp`, it somehow feels safer, but why? That app could be doing anything too.
wett
5 days ago
I just learned these two:
1. If the connection dies mid transfer, bash will still execute it.
So `rm -rf ~/.local/bin/whatever` can become `rm -rf ~`
The author can avoid this by wrapping everything in a function. But you wouldn’t know if they did so if you aren’t outputting it to a file first.
2. Say the link points to an S3 bucket and it gets compromised, there’s no record of the payload to analyze.
I’m sure there’s a plethora of other subtleties, but I’ve always had the same question as you and thought I’d share.
seanw444
5 days ago
Convenience. That's usually the answer.
rbanffy
5 days ago
One thing I dislike is that the installer wants super user permissions. That’s a big no-no with JavaScript apps installing global components. All global machine state should be managed with package managers, preferably only one package manager.
zombot
4 days ago
The project is vibe-coded slop and coding LLMs are not famous for using obvious or minimalistic approaches.
lavela
5 days ago
Agree. If you really want to know what's used here: probably uses bun single-file executables[0] so shouldn't clash with anything else on your system.
mistercheph
5 days ago
lmao curling and exec'ing a vibe coded script running in a vibe-coded runtime, what could possibly go wrong!
otabdeveloper4
5 days ago
Don't worry about it, it was code reviewed by Claude.
tingletech
5 days ago
you can test it out with
bunx gloomberbzeroq
5 days ago
disclaimer: I haven't seen the code
TS/JS is not the problem.
You can, and you should eject your dependencies and package them with your releases. And I don't understand why it's not a common practice.
You can even bundle your releases with a runtime, but that's not always the best solution. For something like this I'd actually prefer interpreted code I can inspect line by line rather than having a blob of unknown origin.
fragmede
4 days ago
If you're gonna be particular about it, that's on you, dude. curl | bash is a stupid way to install software in the first place! But we're all lazy and it's too easy to just copy and paste that. If you're gonna be lazy about it, you don't get to complain about it. curl | less is right there!
user
5 days ago
veltas
4 days ago
In defense given the amount of web content being processed it makes a lot of sense to use JS and related tech. It's put to good use here.
AgentME
5 days ago
A command line tool in a non-compiled language is still much better than an network-connected tool in a non-memory-safe language.
qurren
5 days ago
You can always bundle the runtime for interpreted languages and pretend it's compiled.
zombot
4 days ago
It does have a GitHub link where all these questions are answered: Claude-generated TypeScript slop. So no, you don't want to pipe this into your bash.
YeGoblynQueenne
5 days ago
>> Related: please don't write command line tools in non-compiled languages!
... unless, of course, it's Perl. Right?
baist0
5 days ago
yeah! agree. this shity approach when user solves technical problems.
talentedcoin
5 days ago
I really wish this was not the top comment on HN. It’s a cool project! Maybe try it??! Or just be silent!
Pooge
5 days ago
I agree with you that the author of this project is catching a stray bullet, but I also have to agree with GP that `curl | bash` got way too out of hand.
I don't know where that came from but it should definitely disappear.
At least the developer includes the binaries for all platforms in the GitHub release page.
enquirewithin
5 days ago
You can have any opinion, so long as it’s mine.
talentedcoin
5 days ago
[flagged]
xp84
5 days ago
How is it "adding no value"?
It's not crazy to prefer a package manager package to a curl|bash YOLO. OP is stating that preference, which various people have agreed with. If you posted "I love curl|bash install method - please do more of this" that is also fine. Either way it's a signal for both the author and anyone considering shipping this type of software, that their audience may have a certain preference.
nemomarx
5 days ago
I know it's kind of a nitpick, but is there really no value at all in "your install is just curl | bash and that seems insecure and risky"
I would want to know that about any project before I try and evaluate it personally.