[Ed. Note: The first link seems to have been pulled from the web after this story was accepted. We apologize that we have been unable to find a link to replace it.]
Arthur T Knackerbracket has found the following story about the progress of the Rust programming language and its growing usage:
"The Results are in! Thank you to all 3103 of you who responded to our first Rust community survey. We were overwhelmed by your responses, and as we read your comments we were struck by the amount of time and thought you put into them. It's feedback like this that will help us focus our energy and make sure Rust continues to grow the best way. A big reason for having the survey was to make the results available publically so that we can talk about it and learn from it together. In this blog post, we'll take a first look at the survey responses, including themes in the comments, demographics, and quantitative feedback.
Do You Use Rust?
We wanted to make sure the survey was open to both users of Rust as well as people who didn't use Rust. Rust users help us get a sense of how the current language and tools are working and where we need to improve. Rust non-users give us another perspective, and help shed light on the kinds of things that get in the way of someone using Rust. I'm happy to report that more than a third of the responses were from people not using Rust. This gave us a lot of great feedback on those roadblocks, which we'll talk about in this (and upcoming) blog posts.
But first, let's look into the feedback from Rust users.
Rust Users
How long have you been using Rust?
Almost 2000 people responded saying they were Rust users. Of these, almost 24% were new users. This is encouraging to see. We're still growing, and we're seeing more people playing with Rust now that could become long-term users. Equally encouraging is seeing that once someone has become a Rust user, they tend to stick around and continue using it. One might expect a sharp drop-off if users became quickly disenchanted and moved onto other technologies. Instead, we see the opposite. Users that come in and stay past their initial experiences tend to stay long-term, with a fairly even spread between 3 months to 12 months (when we first went 1.0).
There is much more to be found in the full story for Rust aficionados.
Related Stories
Linus Torvalds' Initial Comment On Rust Code Prospects Within The Linux Kernel
Kernel developers appear to be eager to debate the merits of potentially allowing Rust code within the Linux kernel. Linus Torvalds himself has made some initial remarks on the topic ahead of the Linux Plumbers 2020 conference where the matter will be discussed at length.
[...] Linus Torvalds chimed in though with his own opinion on the matter. Linus commented that he would like it to be effectively enabled by default to ensure there is widespread testing and not any isolated usage where developers then may do "crazy" things. He isn't calling for Rust to be a requirement for the kernel but rather if the Rust compiler is detected on the system, Kconfig would enable the Rust support and go ahead in building any hypothetical Rust kernel code in order to see it's properly built at least.
Linus Torvalds Wishes Intel's AVX-512 A Painful Death
According to a mailing list post spotted by Phoronix, Linux creator Linus Torvalds has shared his strong views on the AVX-512 instruction set. The discussion arose as a result of recent news that Intel's upcoming Alder Lake processors reportedly lack support for AVX-512.
Torvalds' advice to Intel is to focus on things that matter instead of wasting resources on new instruction sets, like AVX-512, that he feels aren't beneficial outside the HPC market.
Related: Rust 1.0 Finally Released!
Results of Rust Survey 2016
AVX-512: A "Hidden Gem"?
Linus Torvalds Rejects "Beyond Stupid" Intel Security Patch From Amazon Web Services
(Score: 0) by Anonymous Coward on Monday June 27 2016, @01:57PM
Coming Dec 2016:
https://www.amazon.com/Programming-Rust-Jim-Blandy/dp/1491927283/ref=sr_1_1?ie=UTF8&qid=1467035602&sr=8-1 [amazon.com]
https://www.amazon.com/Learning-Rust-Paul-Johnson-ebook/dp/B01CR5GCWA/ref=sr_1_4?ie=UTF8&qid=1467035685&sr=8-4 [amazon.com]
Available now:
https://www.amazon.com/Rust-Essentials-Ivo-Balbaert-ebook/dp/B00YEVZ70Y/ref=sr_1_2?ie=UTF8&qid=1467035685&sr=8-2 [amazon.com]
https://www.amazon.com/Never-Sleeps-Young-Crazy-Horse/dp/B000002KDG/ref=sr_1_2?ie=UTF8&qid=1467035730&sr=8-2 [amazon.com]
https://www.youtube.com/watch?v=GQhEvfeJocM [youtube.com]
(Score: 2, Insightful) by Anonymous Coward on Monday June 27 2016, @01:58PM
Seriously? Is that the way they spread news these days...?
After the pay wall... we have the login wall...
(Score: 0) by Anonymous Coward on Monday June 27 2016, @04:14PM
And before you know it you'll be in a walled garden ... oh wait.
(Score: -1, Offtopic) by Anonymous Coward on Monday June 27 2016, @05:51PM
(Score: 2) by Dunbal on Monday June 27 2016, @01:58PM
I tried Rust and got shot in the face by a naked guy with an AK-47. Wait, we're talking about a different Rust here aren't we?
(Score: 2, Interesting) by Anonymous Coward on Monday June 27 2016, @02:44PM
are you sure it was an AK-47 ;)
(Score: 3, Funny) by VLM on Monday June 27 2016, @03:44PM
Is he sure it wasn't DAYZ?
(Score: 2) by Gravis on Monday June 27 2016, @02:47PM
frankly, the syntax it a bit alien but if Rust proves itself to be superior to C++ by being baptized in fire [wiktionary.org] then the world will embrace it. right now, it's slightly above the D programming language because it only has a singular compiler but there is an operating system language written in Rust [github.com], so that's a plus. it's head and shoulders above hyped languages like Ruby and oddly popular scripting languages like Python, so it has that going for it but the world is going to need a good reason to switch to Rust and I'm not sure that "n00bs are shitty at memory stuffs" is going to be enough.
(Score: 0) by Anonymous Coward on Monday June 27 2016, @06:45PM
side comment on Python.
I remember being bewildered years ago at people saying that python is such a breath of fresh air, since everything is so easy with C/C++ anyway. I've since grown to love python.
Reasons: I don't need to learn bash, I can do postprocessing of most things directly in Python and I can easily extend it with C when things become too slow, and I can have a single package that handles everything from data generation to making great looking figures for articles.
I would not write an OS in Python, but why would I use C for working with files and folders and stupid string stuff?
(Score: 2) by The Mighty Buzzard on Monday June 27 2016, @02:52PM
Bender (python): 97MB res (stable)
MrPlow v1 (perl): ~60MB res (stable)
MrPlow v2 (C): ~15MB res (ninja-sneaky of memory errors)
MrPlow v3 (Rust): 17MB res (uptime > two weeks, some bugs that are on me but no crashes or memory corruption)
Honestly, the more I write in Rust the more I dig it as a language for things that aren't trivial command line scripts.
My rights don't end where your fear begins.
(Score: 4, Touché) by VLM on Monday June 27 2016, @03:58PM
https://doc.rust-lang.org/book/raw-pointers.html [rust-lang.org]
My experience with this mindset:
Sometimes, when writing certain kinds of libraries, you’ll need to get around Rust’s safety guarantees for some reason.
Is if you permit programmers to write bad C in Rust you'll get people writing bad C in Rust and shooting themselves in the foot.
Its a variation on the theme of everyone who actually codes (as opposed to manages) agrees gradual typing is a complete loss because people will only implement types where its very easy to implement and therefore bug free and not where its hard to figure out, slow to compile, and therefore right where its necessary to catch the most weird bugs. So if you want the benefits of types then use a typed language and if not then do not because the security blankie of gradual typing has a hold big enough to drive a truck thru (to march an army of bugs thru? Leinengen, is that your ants?)
I also don't like that Rust is medium power. If you need high power for a very complicated thing just use Clojure and some libraries. If you are doing something low power then if its ultra low level like a micro controller go C or assembly, or if its a low level thing on an advanced system use a hundred lines of C or two lines of perl/CPAN. And in between, well, there isn't much but if there's something there then I guess put rust there.
(Score: 3, Interesting) by The Mighty Buzzard on Monday June 27 2016, @05:05PM
Eh, you see an assembly window, a huge C window, a huge high-level-language-of-choice window, and possibly a narrow Rust window in between the last two. I see Rust taking most of C's window and a bit of the high-level language window.
Here's my reasoning... If you don't need to do inline assembly (not from a library) or explicitly tell something it should stay in a register rather than getting pulled from ram, there're very few valid reasons not to use Rust instead of C. So, yeah, I could see Rust being ill suited for video encoding or other speed-critical applications but for anything where being dangerous-bug-resistant is more important than speed-at-any-cost, C is likely to end up being a foolish choice once Rust is a bit more mature. But pretty much every single executable that runs with root privileges that is currently written in C, for instance, should eventually be either ported to something more shoot-yourself-in-the-foot-resistant or undergo formal verification.
Yeah, I know good C coders can write a program in C without making noob-assed errors. I also know that given a large enough codebase or long enough time spent on a project, they're will make them anyway.
My rights don't end where your fear begins.
(Score: 2) by RamiK on Monday June 27 2016, @11:09PM
It's not about what C has, it's about what it doesn't have. C doesn't have object-orientation, generics and lambda-calculus that get in the way of electrical engineers who write kernel drivers. When a physicist, statistician or even sys-admins pick up a binding library that interacts with C in their interpreted language-of-choice, they don't need to invest more then a few minutes to figure-out how it all works.
Overall, Rust is too cumbersome for plumbing and too low-level for casual user-land work. I think Rust could challenge C++, Java and D. But it's no substitute for C in the systems-language space.
compiling...
(Score: 2) by The Mighty Buzzard on Monday June 27 2016, @11:42PM
Teach EEs to write code with guaranteed zero overflows and I'll totally agree with you. Otherwise they need to be banned from using C. Leave that to the people who at least in theory know what they should never be doing.
My rights don't end where your fear begins.
(Score: 2) by RamiK on Tuesday June 28 2016, @01:28AM
But EEs aren't going away anywhere. They're the people who write drivers since they're the people who design the hardware. At the very least, they're going to be documenting, debugging, maintaining and reviewing the code as part of a team. So, you have to accommodate for their inability to acquire and use advance language features.
compiling...
(Score: 2) by The Mighty Buzzard on Tuesday June 28 2016, @02:14AM
Oh nobody's saying they have to use them. Just teach them to grok memory ownership and borrowing and they'll be able to write secure code in Rust just fine. Doesn't have to be Rust even. Pick any language that forces you to jump through special hoops to write buggy code and is nearly as close to the metal as C. Just do not let someone who can't explain how to overwrite the next instruction on the stack, and prevent such in their own code, play with C.
My rights don't end where your fear begins.
(Score: 2) by RamiK on Tuesday June 28 2016, @09:26AM
Well, I can tell you right away that C won't be substituted just for the sake of type safety. Otherwise, I would be procrastination working on a pascal driver instead of a C driver right now... :D
At the same time, I can also tell you that deviating from that high-school math function syntax towards lambda calculus and generics is simply asking too much from none-CS scientists and engineers. They're just too preoccupied with their own field to be able to learn anything but the basics of structured programming.
I guess Go could fit the bill. It's a very easy and small language that, at least in theory, can be used for safe system-programming. But it will still need a huge corporate push.
compiling...
(Score: 2) by The Mighty Buzzard on Tuesday June 28 2016, @10:00AM
Yeah, it's not really type safety that bugs me, though I suppose that's important as well. It's being able to easily, hell with gusto, stuff user input past the end of an array and start overwriting memory the programmer didn't intend to be user editable. Or any form of race condition that can achieve similar pwnage. Rust prevents all three out of the box unless you specifically mark a block of code using the "unsafe" keyword. Even EEs should pause long enough after having to type that to think "is doing it this way wise?"
As for the math? I'm not sure why you think math in Rust has to be done that way; I haven't been doing anything but highschool level math that looks exactly like highschool level math, except for dealing with bitmasks which looks pretty much exactly like dealing with bitmasks in C. Occasionally I've had to cast a signed int to an unsigned but that hardly makes highschool math into lambda calculus.
My rights don't end where your fear begins.
(Score: 2) by RamiK on Tuesday June 28 2016, @11:53AM
type safety that bugs me...able to easily, hell with gusto, stuff user input past the end of an array
That's all under the type safety umbrella implementation wise. When you check for bounds, your types are safe. When they're safe, you can't overflow them.
Regarding the math, I wasn't talking about actual math. I was talking about math-like syntax. Declarative vs procedural. Monads, closures and generics. Object orientation and functional programming... All those fancy advance topics that take a couple of extra courses the none-CS never pick up.
Another point-of-view worth mentioning: The reason we have all these new safe languages is thanks to the advances in precise, embedded and real-time garbage collectors. Alone, Pascal style checking bounds just for safety isn't worth it. But if you're also keeping track of heap and freeing memory automatically and without pauses like Java, Go and Rust do, it suddenly make sense to have everything type-safe and garbage collected.
compiling...
(Score: 2) by maxwell demon on Monday June 27 2016, @07:00PM
I'm rustproof. No Rust to be found here.
The Tao of math: The numbers you can count are not the real numbers.