Linked by subterrific on Mon 9th Jan 2017 22:25 UTC
OSNews, Generic OSes

Rux's goal is to become a safe general-purpose microkernel. It tries to take advantage of Rust's memory model - ownership and lifetime. While the kernel will be small, unsafe code should be kept minimal. This makes updating functionalities of the kernel hassle-free.

Rux uses a design that is similar to seL4. While there won't be formal verification in the short term, it tries to address some design issues of seL4, for example, capability allocation.

The code is very approachable for anyone interested in capability-based microkernel design.

Thread beginning with comment 639516
To view parent comment, click here.
To read all comments associated with this story, please click here.
Alfman
Member since:
2011-01-28

kwan_e,

It's the way they go about fixing the issues - "oh, we'll just create yet another language" - that is the problem. All languages will develop cruft, and all languages will paint themselves into a corner. The most ideological ones tend to do that the most frequently.

Only a handful of languages are left where the base is committed to using it cruft and all and not just abandon it for the latest fad in language design.



I realize you are a C/C++ fan, and there was a time I was too. However many problems with C/C++ are very widely recognized and understood, consequently some people look to new languages to solve them. The big players are motivated to work on new languages like D, swift, rust, go, etc, not because of fads, but because of systemic recurring problems they have experienced with their existing codebases.

This video on the topic of new and old systems programming languages is very informative, partly because Bjarne Stroustrup (the creator of C++) is there along with others, and he personally acknowledges the criticism against C++ being made by the employees of google and facebook in their build processes. I personally admire the way they are so friendly with each other with no animosity at all. Stroustrup even humorously takes it in stride "the reason I take this mic back is to say that I don't disagree with that." to everyone's laughter.

LangNext 2014 C++, Rust, D, Go 1HR discussion
https://www.youtube.com/watch?v=BBbv1ej0fFo


You like C/C++, then great. Maybe D-lang would be up your alley too then? Maybe we can discuss that? I enjoy taking about all languages, however in past discussions you seemed to take serious offense to any possibility that another language could have a single benefit over C++.

http://www.osnews.com/comments/29463

My goal is to foster a friendly discussion here, but to be honest, I don't know how to deal with you, haha. So I ask you thusly: what can I do so that we can have a friendly discussion even when rust comes up and we disagree? ;)

Edited 2017-01-10 18:24 UTC

Reply Parent Score: 3

kwan_e Member since:
2007-02-18

I realize you are a C/C++ fan, and there was a time I was too.


I have spoken highly of Ada too. It is another language with roughly the same design goals as C++. Static, compile time typing. Zero cost abstractions. Backwards compatibility.

* I'm NOT a fan of the "old C" part of C++ (or modern C, for that matter), but I accept it and don't run off for greener pastures because it doesn't fit in with some ideology of extreme pureness.

However many problems with C/C++ are very widely recognized and understood, consequently some people look to new languages to solve them. The big players are motivated to work on new languages like D, swift, rust, go, etc, not because of fads, but because of systemic recurring problems they have experienced with their existing codebases.


You miss my point. At some point in the future, languages like D, Swift, Rust and Go will have systemic recurring problems with their existing codebases. At which point, it's obvious they'll leave for greener pastures.

We have already experienced this with the transition to Python 3 and Perl 6. Scheme 7.

Swift has already gone through its first round of complete breaking changes. And what does Swift even fix? Unlike Rust, it doesn't even have a reason to exist other than fancy syntax. And that is my point - it's the attitude of starting over again rather than do the real engineering work of designing past those features.

Stroustrup even humorously takes it in stride "the reason I take this mic back is to say that I don't disagree with that." to everyone's laughter.


You think I don't know Stroustrup's views on the matter. He's one of the biggest pushers, still, of modernizing C++ with better features and leaving old ones behind.

Unlike people who go around inventing Rust and Go, he stuck with C++, cruft and all.

And the people working with Ada are also committed to sticking with the whole language.

I enjoy taking about all languages, however in past discussions you seemed to take serious offense to any possibility that another language could have a single benefit over C++.

http://www.osnews.com/comments/29463


Don't mischaracterize it.

I simply was not convinced by your arguments and counter-examples in that discussion. You tried to make it sound like Rust does theorem proving for thread correctness, when in fact all it does is formalize and lock down ownership semantics. That's not taking offence.

what can I do so that we can have a friendly discussion even when rust comes up and we disagree? ;)


My point in this discussion is not about Rust vs C++. It's about what it takes for a language to become widespread enough to become as embedded as C and C++.

Languages will get big, bloated, and accrue cruft. No language is exempt. Until a language designer and community grows up and accepts this, and is willing to support the language with all its warts like Stroustrup does with C++ and the Ada guys with Ada (you could even say the same about HTML and Javascript, in a perverse way ;) ), their language is a fad language.

Maybe, and let's hope, Rust's designers and its community are mature enough to stick with Rust regardless of how much garbage it accrues over the years. If not, it will not get the hypercritical user mass to prevent the next GoSwiftRust from taking over and for the whole "we just need to get critical mass" game to start again, as it steals users from RustGoSwift and they lose their momentum. At least Rust does have a benefit in that it seems to be serious with zero cost abstractions. So at least it has a better chance of not having to pay for design mistakes. But Rust won't magically avoid paying for syntactical and semantical cruft.

Reply Parent Score: 2

Alfman Member since:
2011-01-28

kwan_e,

You miss my point. At some point in the future, languages like D, Swift, Rust and Go will have systemic recurring problems with their existing codebases.


I don't understand why it means we should stick with C++, which has even more crust, indefinitely? That's not a good plan for many of us.

If today's languages are looking long in the tooth (to borrow from RobG) in the decades to follow, then by all means I hope they do build something even greater yet. This shouldn't hurt our pride, on the contrary the goals they set for themselves in the future will largely depend on the goals we set for ourselves today, which depend on what we've already achieved with C++ and Ada and Pascal all those years ago and even further back to Babbage and Pascal. The evolution of human ingenuity is a beautiful thing.

You think I don't know Stroustrup's views on the matter. He's one of the biggest pushers, still, of modernizing C++ with better features and leaving old ones behind.


That's what D-lang did for the most part. C++ itself faces a major conundrum, it's huge base of legacy code that keeps it popular is also responsible for holding it back. Sometimes to make progress past the local maxima, you have to fundamentally break some of the scaffolding that keeps you stuck there.

Don't mischaracterize it.

I simply was not convinced by your arguments and counter-examples in that discussion. You tried to make it sound like Rust does theorem proving for thread correctness, when in fact all it does is formalize and lock down ownership semantics. That's not taking offence.


I gave examples where rust provided better safety semantics than C++. Anyways I'm not going to revisit that fruitless thread, if you believe that C++ is just as safe as rust, then in the interests of a keeping things lighthearted, then I'll just accept it and move on and I ask that you do the same ;)


Languages will get big, bloated, and accrue cruft. No language is exempt. Until a language designer and community grows up and accepts this, and is willing to support the language with all its warts like Stroustrup does with C++ and the Ada guys with Ada (you could even say the same about HTML and Javascript, in a perverse way ;) ), their language is a fad language.


But that line of reasoning just seems arbitrary and relative. Obviously C++ had a beginning too. Calling something a "fad" now just because it's new doesn't convey anything meaningful at all about merit and just sounds condescending towards a group of professional developers who are genuinely working hard to advance the state of software engineering.



Maybe, and let's hope, Rust's designers and its community are mature enough to stick with Rust regardless of how much garbage it accrues over the years.


But why? Tech gets ditched all the time once it's outlived it's usefulness, and not just software.

In the video Stroustroup says "C++ is obviously too large."

The facebook engineer says of C++'s compilation efficiency problems "I think it's a problem intrinsic to c++. C lang was designed with batch multi-stage processing in mind, and it shows. All these companies share the same problems and that have a huge c++ code base. Have a huge army to babysit the build system, at the end of the day it was an unsolvable problem. No amount of money can make c++ compile fast."

The google engineer says "we measured data went to the compiler. 4.2million factor blow up when using class per header file."

C++ will remain useful to many people for a long time, that's fine. But there are many companies and individuals who are frustrated with it and I find it very hard to make a case that they should not embracing new languages. For many of us, languages that carry the burden of legacy cruft is not a good option. There's no reason different people with different programming language opinions can't co-exist, just look at mainframers. Diversity is the spice of life ;)

Reply Parent Score: 2