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

Go is produces (mostly) statically compiled binaries by default. No runtime, no interpreter, no dependencies.

Python, Java, JavaScript, C#, etc. can't say the same.



In my experience, I've always had to install Go and it's ecosystem to `go install foo` for Go programs to work. Is anyone distributing binaries?


you'll usually find binaries in github releases (see the assets section: https://github.com/mr-karan/doggo/releases )


Oh duh, thanks!


Correct me if I am wrong. but this is the feature of C#/.Net as well as of recent versions.


I'm a C# dev, but I'm not up to date on the latest C#/.Net developments. Could you tell me more?

Specifically, I mean that by default, Rust and Go binaries only rely on libc, so you only need to download the binary and `chmod +x` it (on libc distros). No distro-specific dependencies, no frameworks like `java` or `dotnet`, etc.


dotnet publish -o . -p:PublishAot=true :)

To be fair, I do not think the author understands what static binaries are and why they may or may not want them, and how what Go does differs to what C/C++ toolchain does. I’d be very surprised if they do, being a Go developer. Next time they will learn another excuse to promote their language.


For starters, I develop C# professionally, and I use Go almost exclusively as a consumer :) Your assumptions about me are wrong, and static compilation is not a complicated idea.

Go or Rust programs are standalone by default. You just download the binary, `chmod +x` it, and drop it in your $PATH. Caddy, Helix, Micro, ripgrep, fd-find, eza, bat, and bottom are all programs I install that way.

Some C/C++ applications release as standalone binaries, but that's not the default. and I have not encountered a single C#/.NET application that distributes as a standalone binary.

The only difficulty is if you're on non-libc distros like Alpine (which uses musl) or an uncommon OS-architecture combo like Arm64 Windows or RISC-V anything. These are usually rare and intentional choices and you would be used to building from source. A nice thing is that it's usually much easier to compile Rust or Go projects from source than it is for C/C++.


Also to be fair, they did say "by default", and those options you provided must be set because they are not default.




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

Search: