If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

Mozilla Updates To Rust 0.9 Programming Language

Phoronix: Mozilla Updates To Rust 0.9 Programming Language

Mozilla developers working on the interesting Rust programming language have updated it to version 0.9 on Thursday as they continue adding new features and functionality to this language that one day could be powering Firefox and other applications...

Out of the 3 major contenders in the new system level languages category (D, Go and Rust) this is the one that I think shows the most potential as something I would like to replace C with. It is still a bit early yet to adopt for my taste, that might change once it reaches 1.0 and the dust starts to settle.

Out of the 3 major contenders in the new system level languages category (D, Go and Rust) this is the one that I think shows the most potential as something I would like to replace C with. It is still a bit early yet to adopt for my taste, that might change once it reaches 1.0 and the dust starts to settle.

See, that's the thing, I don't see Rust and Go as system-level languages. To me, it seems like this:
D is designed to replace System-Level C code (Kernels, Drivers that aren't written in ASM, etc)
Go is designed to replace Application-Level C code (Browsers, music players, etc)
Rust is designed to supersede C++ code in most areas, but seems to focus quite a bit on the Application-Level over System-Level

At least that's what I've seen so far. This is why I don't get it when people are arguing about D vs Go vs Rust; they're not designed for the same thing (even Go and Rust, as they do things in very different ways internally)

According to the guy who started the language, it is meant as a system language that will compete with C and C++; here is an interview with him.

I can't see anything that C or C++ offers that make them more suited for system level uses than Rust. Now I should say that I don't see the Linux kernel moving away from C any time soon and I personally don't limit my definition of system level programs to just the kernel/drivers. In more general terms, I am looking at it as a language I can turn to when higher level languages like Python and such aren't good enough performance wise for the task at hand. Which is generally the only time I turn to C the way it is and why I am looking at Rust as a replacement for the niche C fills for me now.

Linus has stated that he thinks most newer languages-- newer than circa 1975-- are just too high-level for use in the kernel. He likes C because it's easy for him to see how it will compile into machine code. I don't know how most other kernel devs feel, but at least for Linus' tenure, that's the bar. All that said, I don't know enough about compilers, machine code or any of these new languages to say whether or not any of them might meet that bar. My guess is definitely not for Go, maybe for Rust and D. Even if they are I think it would likely be another 10-20 years before they're accepted enough to make the switch.

If you wanna replace C or C++ create exactly these langs but without their historical burden. If you settle for more you're in the alley of failed langs like Vala, D etc who're never gonna replace C/C++ or attract critical mass.

If you wanna replace C or C++ create exactly these langs but without their historical burden. If you settle for more you're in the alley of failed langs like Vala, D etc who're never gonna replace C/C++ or attract critical mass.

That's uninteresting because of the memory safety problems inherent in the languages. What purpose would there be for a language exactly like C except for ... what? What would you change? The syntax? That's not a compelling reason to switch languages, even if it's a mechanical transformation. C++ is far too complex to even possibly recreate.

Linus has stated that he thinks most newer languages-- newer than circa 1975-- are just too high-level for use in the kernel. He likes C because it's easy for him to see how it will compile into machine code. I don't know how most other kernel devs feel, but at least for Linus' tenure, that's the bar. All that said, I don't know enough about compilers, machine code or any of these new languages to say whether or not any of them might meet that bar. My guess is definitely not for Go, maybe for Rust and D. Even if they are I think it would likely be another 10-20 years before they're accepted enough to make the switch.

My problem with that statement is that C compilers do a considerable amount of damage to your code to make it fast. Maybe with GNU extensions you can annotate it enough to be able to understand what it's going to be translated as. I don't think Linux will ever use a different implementation language. Too much inertia.