←back to thread

392 points mfiguiere | 6 comments | | HN request time: 0.85s | source | bottom
Show context
RcouF1uZ4gsC ◴[] No.35470953[source]
> Buck2 is an extensible and performant build system written in Rust

I really appreciate tooling that is written in Rust or Go that produce single binaries with minimal runtime dependencies.

Getting tooling written in for example Python to run reliably can be an exercise in frustration due to runtime environmental dependencies.

replies(3): >>35471099 #>>35471103 #>>35471569 #
rektide ◴[] No.35471103[source]
Personally it seems like a huge waste of memory to me. It's the electron of the backend. It's absolutely done for convenience & simplicity, with good cause after the pain we have endured. But every single binary bringing the whole universe of libraries with it offends.

Why have an OS at all if every program is just going to package everything it needs?

It feels like we cheapened out. Rather than get good & figure out how to manage things well, rather than driver harder, we're bunting the problem. It sucks & it's lo-fi & a huge waste of resources.

replies(7): >>35471298 #>>35471361 #>>35471433 #>>35471640 #>>35471685 #>>35472010 #>>35472197 #
1. preseinger ◴[] No.35472010[source]
when someone writes a program and offers it for other people to execute, it should generally be expected to work

the size of a program binary is a distant secondary concern to this main goal

static compilation more or less solves this primary requirement, at the cost of an increase to binary size that is statistically zero in the context of any modern computer, outside of maybe embedded (read: niche) use cases

there is no meaningful difference between a 1MB binary or a 10MB binary or a 100MB binary, disks are big and memory is cheap

the optimization of dynamic linking was based on costs of computation, and a security model of system administration, which are no longer valid

there's no reason to be offended by this, just update your models of reality and move on

replies(2): >>35472497 #>>35477524 #
2. rektide ◴[] No.35472497[source]
I never had a problem before. The people saying we need this for convenience felt detached & wrong from the start.

It's popular to be cynical & conservative, to disbelieve. That has won the day. It doesn't do anything to convince me it was a good choice or actually helpful, that we were right to just give up.

replies(1): >>35473094 #
3. preseinger ◴[] No.35473094[source]
"wrong" or "a good choice" or "actually helpful" are not objective measures, they are judged by a specific observer, what's wrong for you can be right for someone else

i won't try to refute your personal experience, but i'll observe it's relevant in this discussion only to the extent that your individual context is representative of consumers of this kind of software in general

that static linking provides a more reliable end-user experience vs. dynamic linking is hopefully not controversial, the point about security updates is true and important but very infrequent compared to new installations

4. cozzyd ◴[] No.35477524[source]
Wait until you use a single board computer with a 4GB emmc OS disk. And don't forget about bandwidth...
replies(1): >>35478191 #
5. preseinger ◴[] No.35478191[source]
i have a few devices like that around, but the thing is that the software i put on them is basically unrelated to the software that's being discussed here

definitely i am not using buck or bazel or whatever to build binaries that go on those little sticks

replies(1): >>35478358 #
6. cozzyd ◴[] No.35478358{3}[source]
sure, but people are suggesting staticly linking everything and many modern languages don't really support dynamic linking.