Not everybody wants to work on hot new things, some want focus on having their tools to stable and working as designed. We need both kinds of work.
The ROI on improving widely used tools is quite large Yes indeed. You probably wanted to say: The ROI on reinventing widely used tools is quite large" There are some extremely used binaries that have a stagnant development and have not adapted to modern ergonomics. I beautiful example of that subset of widely used tools is cat. Cat is extremely used and yet, the rust rewrite bat is far superior, because among other things, it has color and code higlithing :0
For a rust rewrite to be successful you need the following conditions: You have ideas of improvments not present in the current tool. Your ideas are not on their roadmap. The current tool has not had too much of man/hours, which you can interpret heuristically as: the current tool has less than a few thousands of commits.
Here we're talking about systemd which has 42,600 commits. By the time rustysd will have as much features as current* systemd, the original developer will be dead.
As an end user I have almost zero benefits in this kind of rewrites, as I'm aware it's a far poorer software by design.
If it was 1) a new kind of software or 2) a reimplementation of a tool that they can realistically manage to outcompete or 3) the development that will in the very longterm replace an old complex tool that has stopped development, then I would have been interested.
Anyway if it's for fun/learning purpose, they do what they want, but utilitaristically there would be better choices.
I think you are missing the point completely. We are talking about rust, memory safe performant language, and systemd, core system in many Linux distributions, written in C++. I would love to be able to replace systemd (and kernel and core libraries too) with something that was safer at least in this aspect (memory safety).
Big kudos to Mozilla for identifying the cause of many security bugs and for finding a way to solve it while keeping performance intact.
BTW by the time of the rewrite, c++ will have memory safety mechanisms similar to rust: https://news.ycombinator.com/item?id=18037566
In particular, C++ has been engineered from the beginning to create expressive, powerful libraries, much moreso than Rust. The gap today is bigger than it was five years ago. This matters because every use of an idiomatic, powerful, mature library replaces code not using it that would have had bugs. Yes, Rust programs do have bugs.
Powerful is important in libraries because it translates to actually usable where you need it, without compromise. Any library you can't or don't use does you and your users no good.
Code that uses a good library will have none of the problematic, buggy constructs that Rust is supposed to protect you from.
Rust and C++ have different emphases. C++ has a huge head start, but also massive backward-compatibility anchors. It is certain that, over time, Rust will get better at expressing powerful libraries, but C++ is not sitting still.
It is very far from clear whether Rust will be important, ten years from now. It is far from clear that it is more beneficial to put resources into rewriting C things from scratch in Rust than to transition existing development from C to C++, and start replacing subsystems in-place.
What is clear is that the difference in benefit to starting any new project in Rust or in C++ is absolutely overwhelmed by the absolute benefit of starting in one of those, and not C.
No, I mean the stuff dang has already commented on.
You also did not explain the point in detail, you responded to what I said with a whole bunch of off-topic things, and then insinuated that I did not have the point.
The parent said that C++ would have "memory safety mechanisms similar to Rust," and my point was that while they are similar in some ways, they are not as comprehensive. That's an important distinction!
All of this other stuff you're talking about has nothing to do with that.
It was an honest question, and was not answered.
If you say that you mean it sincerely as a question and not as a swipe, I believe you. The problem is that lines like that are routinely used to take cheap shots at others, imply that they don't have a point, and so on. If that wasn't your intention, the burden is on you to disambiguate that by making clear that you're asking sincerely and making your question more specific.
I really can't fault Rust developers for choosing to put aside the whole C++ ABI mess by refraining from developing their own "Stable ABI" and sticking to the lowest common denominator of C FFI for the time being. And perceived ABI issues are the only thing that might stop you from building "expressive, powerful libraries" in the language. (Const generics and specialization are often-requested features that do impact this area, but they're in the pipeline already, and coming soon.)
This statement makes no sense. What stops you from building expressive, powerful libraries in Rust is the absolute lack of the corresponding features in the language that are necessary to the task.
No amount of testing and bug-fixing solves badly created software. Systemd is begging for a rewrite.
Now, I don't know if this one will be complete enough to replace the original. But yours is not a promising argument.
For a while it would ignore the system DNS settings, so it didn't only require it to be configured twice, but the systemd settings had an habit of changing in format every so often.
Udev failed a bit at the time it was being included on the package.
Oh, there was the time when the simple service launcher didn't conform to the documentation so a lot of daemons could fail to launch in unpredictable ways.
But the first I started using it was at the Debian migration. So the earlier bugs were all solved already.
s/C++/C
Most of the security vulnerabilities reported (https://www.cvedetails.com/product/38088/Freedesktop-Systemd...) would not have existed in modern C++. Including all the heavy ones implying stack smash due to VLA buffers that do not exist in C++.
Many will hate me for that, but preferring old-C over C++ for a system software after 2011 is a non-sense. Even the maintainers of GCC understood that.
> For now that is just out of interest how far I could come with this and what would be needed to get a somewhat working system. It is very much a proof of concept.
It sounds to me like this was more of a project that was just for fun and not really meant to be a genuine attempt at producing an alternative to systemd.
But I would like to keep an open mind about works like this one. This is work that could beget all kinds of neat things! Systemd targets Linux, where as this is a bit higher level & might be portable to other environments. It allows other people to not have to create their own process management systems, not have to create their own init system. The recreation brings the availability of the giant's shoulder to many many more places, distributes it's promise to really new & interesting targets.