A lot of people have talked about it being good if there were more courses and information especially for newer Rust learners, so I thought people might be particularly interested in these, and if they seem good enough to point new users at?
The little I poked at seemed pretty good, if perhaps a bit undercooked at points and hardly a complete language guide, but it looks extremely new by commit history. I'm not clear what the history is here; presumably these are publicized versions of internal courses for bringing Microsoft employees up to date?
(Dunno about the announcement tag, seemed closest)
It took me a while to find all those resources that they have mentioned … guess I’ll just have to study even harder now since everyone already knows about them...
I had a look. I was somewhat impressed with myself as mostly it has things I do already know, or at least knew at some time in the past and have now forgotten.
The strange thing is when I am working with Rust mostly I think there is very little to remember (which is just as well as these days my capacity for remembering anything new is very limited), on the other hand when it is laid out in books, it seems quite a lot!
impl<T, const N: usize> Drop for StackBuf<T, N> {
fn drop(&mut self) {
// SAFETY: data[0..len] are initialized — drop them properly.
for i in 0..self.len {
unsafe { self.data[i].assume_init_drop(); }
}
}
}
that is not idea, they should use [T]'s drop instead, like Vec does, their version can leak elements in case of midway panic.
It had some number of thousands (I don't remember exactly) on literally the first day there was content (I took a day or two to post this thread), so I didn't want to assume too much meaning from that: I'm guessing there's some memo that went out to MS employees with "here's the public repo for those courses"
Of course, that's still thousands of devs wanting to star it, I doubt MS of all companies needs to artificially juice a repo's popularity! Just that the "trajectory" bit probably isn't particularly helpful here.
I suspect the material is AI generated or heavily AI assisted.
There are 7 books - all have the same structure and start by
introducing the same "speaker":
Speaker Intro
Principal Firmware Architect in Microsoft SCHIE (Silicon and Cloud Hardware Infrastructure Engineering) team
Industry veteran with expertise in security, systems programming (firmware, operating systems, hypervisors), CPU and platform architecture, and C++ systems
Started programming in Rust in 2017 (@AWS EC2), and have been in love with the language ever since
Weirdly that person is not named - even though they supposedly authored those books.
Is it credible that the same person wrote all 7 books?
They do credit a bunch of other real books/people - but they are broad credits, not linked to any particular section. The books are very uniform and unopinionated. AI generated based on the sources they list as credits is my guess.
I mean I would be surprised either way I guess? It's quite likely it's some MS engineer pipped to write these up for their internal onboarding when they started that years ago, so it's been a long enough time for one person to write them all.
That they aren't named is odd, but perhaps they just didn't want to get shit from people when it was made public, or they left MS and didn't want to be asked to maintain it or take blame for later edits (which would also line up with it being made public)
But also, that's prime MS "find a way that AI is useful in your work" era, so it would be more unusual if this theoretical author didn't use AI writing this in some way.
I am at least somewhat confident it wasn't just "hey look at these sources and write some guides" one shot - not only is the way AI writes pretty damn obvious when they do that, I'm familiar with a lot of what those sources' content looks like and they lean pretty heavily on extremely narrow dives into one specific thing, so it should be incredibly obvious just from the table of contents.
There's a closed issue where some users flame the courses as AI slop, and where the author provides some background. The usual "take is as you will" applies, of course.
My conclusions from reading that is that the world is not divided into "100% not AI slop" and "100% AI slop".
There was also some fingerpointing in the Rust Project recently, when Jack Huey was accused of producing "AI slop" -- which turned quite ugly imo.
I think people who use LLM's should be extraordinarily clear about having done so. But I also think some of the "AI slop" fingerpointing has turned rather ugly (like in the GitHub Issue I references above, and the Jack Huey incident).
Basically:
Users of LLM: Be very open about what you do
"AI slop"-vestigators: Chill
(You'll understand the "Chill" if you read the GH Issue I referenced above, they really take it to 11).
I would like to say thank you for not providing a link to the issue you referenced. (not sarcasm) When I saw you say it went to 11 my curiosity was piqued. I scrolled up and did not find the link. I am to lazy to go search for it. If you had provided a link, I would have jumped at the opportunity to click and would have wasted 20 minutes of my day.
This is the originator of the content chiming in. First off, it's heartening to see that the overall response to the content has been positive, and it's fantastic to see forks in other languages (both human (Chinese) and machine (JavaScript, Go).
The initial reaction on Reddit and also a thread on Github was "interesting." It seems that some people have a Pavlovian reflex to immediately label any content that leverages LLMs as "AI slop" that can be summarily dismissed. A slightly more than cursory examination would have made it obvious that some content is based on actual lessons from attempts to translate C++ code bases. A good question to ask might have been whether it's possible to generate the content with casual structured prompting.
Personally, I find it odd that discourse about such topics seems to happen only in an inflammatory and accusative framework. But I suppose it's just a symptom of the times, so it's best to try and engage constructively as possible, then move in. BTW, the comment about the "anonymous person" who wrote the content was mildly amusing. The content was actually used for in-person training, so it would have been a little odd to include my name in it . Also, the material has undergone transformation over the course of the last 1.5 years, including merging of the two separate, but overlapping books for C and C++ and so forth. Several examples stemmed directly from insights into attempts to translate internal C++ code bases to Rust. Naturally, such content had to be anonymized with LLMs to protect IP. Other examples were inspired by questions came from internal training teams that were bootstrapping on Rust (example: preventing generic parameters explosion using associated types).
Regardless of provenance, we can all agree the overarching objective is to benefit the Rust community, and if some people take umbrage to the use of LLMs, so be it.
Hey! Welcome here, and congratulations on what looks like it's been a pretty successful release!
I've begun to refer to this effect as "slop slop" - referring to everything as slop regardless of the actual effort involved, in a way that ironically allows the accuser didn't put any effort in themselves.
It's because generative AI changed the calculus. Before if you put in enough effort to create lots of stuff, it was fair to give you the benefit of the doubt that you were trying in earnest. But now it's trivial to generate a ton of stuff, so the only sustainable thing is to nope out as soon as you see signs of "oh, might just be useless because it's AI".
I don't have the bandwidth to figure out which largely-AI things are good and which are junk. And the AI can't help me with that, because if it could then the training would have used that.
Not to mention the excessive promises like supposedly "autofixing security issues" -- but clearly not, in practice, spotting availability issues -- which makes me primed to assume that anything they make and put out will underdeliver.
"The strange thing is when I am working with Rust mostly I think there is very little to remember"
Absolutely -- one of the most beautiful things about Rust is how much it gets right out of the box. In fact, I am hard pressed to think of anything it doesn't off the top my head, but I am biased and am sure that others are more nitpicky.
I used to be huge C++ fan a few years ago, and fragments of the various Scott Meyers book still linger in memory. The biggest difference is that one doesn't need to have a Phd. in the language to get it right -- the language itself starts most of us at the MS level :). The only task of training material is to delve into some of more advanced topics that usually stem from experience.
I summarized this a while ago as, roughly: GC languages require you to be a genius to get good performance, other systems languages require you to be a genius to not have security bugs, Rust requires you to be a genius to get past the compiler errors