| > Wait, you are defending multiple points at the same time: [...] I've been asking all of this time: where to draw the line between striving for simplicity, and just shipping software? How much complexity is acceptable because it's absolutely necessary, and how much of it is acceptable because we're busy doing more interesting things? I keep pulling counter-arguments from both sides, because I don't think this line is clear. The closest thing we have to an objective measure seems to be the patience of the humans who have to deal with said software. > The developer should provide the code open source, and let package maintainers build it and ship it in their distribution. We're going a bit off topic here, but this has proven to be a poor model for many applications - see Linus' lament on trying to ship Subsurface builds for Linux, and his endorsement for AppImage. Also: every single proprietary app in existence, which is a many-trillion-dollars industry. > On the contrary, when the language officially refuses shared libraries, I think it oversteps. Well that's an example of the practical trade-off that Go has made: they'd probably prefer to live in an ideal world, where you ship a static binary 100% of the time and completely refuse non-Go code, but instead they built cgo, which made C interop easy and practical. |
Well I agree: the line is not clear at all. It is a matter of use-case and also of preference. Hence my point: developers should let those who build and distribute the code decide what they want, and organize their code such that both work (usually it does not require a lot of effort from the developer).
> see Linus' lament on trying to ship Subsurface builds for Linux, and his endorsement for AppImage.
I would think that this is his preference. My preference is to be given the sources and to build it myself, which allows me to maintain a package for my preferred distro.
> but instead they built cgo, which made C interop easy and practical.
Yes, I think this is great! On the Rust side, is cargo-c an official project though? It doesn't seem like it...