3 ms·
The two big ones for me (neither of which apply to games or embedded) are the lack of a stable ABI and the over reliance on cargo this causes. These two make ru
by flukus 8y ago
The two big ones for me (neither of which apply to games or embedded) are the lack of a stable ABI and the over reliance on cargo this causes. These two make rust more of a platform like c#/nuget and js/npm than a replacement for c and c++, no to mention the extra bloat and security issues they cause. I want my system software to work with the system, not add layers of duplication on top of it.
The rust community has no desire to address either of these.
- jononor 8y agoWhat's the problem with a good integrated package manager? I mean, one can choose to not use it. Is it curated single-source libraries ala Boost/Qt you miss, or something else?
- flukus 8y ago> What's the problem with a good integrated package manager? The problem is that I already have a better one and things like security patches get back-ported to it. I get to make managing that a job for the distro maintainers but with cargo it's my problem. As a user I have absolutely no control or visibility of what versions of dependencies are in there. If I choose not to use it then there's not much point to rust in the first place, I have to work with everything through c interfaces. Then of course there's the binary bloat. All-in-all cargo is just putting developers needs before users.
- wtetzner 8y agoYou seem to be mixing up distro package managers and language package managers. Distro package managers don't let you do versioning in any reasonable way, and they are OS-specific, so they are not good for versioning dependencies of a software project. In particular, if you want reproducible builds, you're out of luck. > As a user I have absolutely no control or visibility of what versions of dependencies are in there. Which is also true of header-only libraries for C, or vendored dependencies. While sometimes shared libraries are used by projects, it's certainly not the only way dependencies are handled in C/C++ land. The only reasonable solution I see to combining a distro package manager with a language package manager is the nix package manager...if only it was more cross platform. As it is now, it only supports Linux and macOS.