On 2018-01-20, John Paul Adrian Glaubitz <adrian.glaubitz@suse.com> wrote:
This is actually a huge change as librsvg is a core library with a large number of reverse dependencies now partially written in a programming language with limited architecture support.
Yes, I agree this is a problem -- maybe we should keep around an old version of librsvg purely for "tier 2" architecture support?
Finally, one problem with Rust that I ran into when working on the Rust compiler code itself is the high volatility of the language and the code. Things that used to build fine with Rust 1.19 would break with 1.20 and so on. From a distribution maintainer's point of view, this can be very tedious and annoying.
This is not correct for the *stable* compiler, because they provide stability guarantees for it and they do regular "crater runs" (rebuild every crate in the Rust ecosystem, checking if there are any new errors or warnings). I find it quite improbable that you hit this issue in the *stable* compiler (and if you did, it was a bug, and I hope you reported it). The *unstable* compiler (by it's nature) doesn't provide any such guarantees.
Overall, I think the move to memory-safe languages is generally a good idea. However, I'm still a bit worried with the move to Rust as I think the language isn't yet as stable as it should be for writing core libraries in it.
My main concern with Rust at the moment is that their ecosystem is very similar to Node. I was trying to write some simple tools in Rust for my own usage, and found that for simple things like email message parsing there are at least 5 libraries which are all incomplete or overly naive. Compare this to Python or Go which has effectively one "common" library that is great and widely used because everyone contributes to the same thing. A common argument is that the Rust ecosystem is young, but I think it's a symptom of their Node-like packaging design. There are some examples of a "one good library", such as nix or tokio, but those are the minority (from what I've seen). I hope this is something that will improve in the near future, because it makes it difficult to get started on a project (or maintain it). -- Aleksa Sarai Senior Software Engineer (Containers) SUSE Linux GmbH <https://www.cyphar.com/>