Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

With that memory model its not surprising.

On the other hand, i really really would encourage any new developers to read the rust docs before learning c++ etc. It is amazing to have a language that puts its mem model first. The docs tackle the very basics really well.

The k&r c book is amazing but did a poor job of dealing with the true memory model because that was common knowledge at time of writing. Its short because of assumptions

the best java (top 0.01%) developers are the only ones I encounter often who understand the x86 + javas basterdised memory model

The rest just take it for granted. Even c++ developers (I'm one).



I actually doubt Rust puts the memory _model_ first, but it provides a path through which you effectively don't have to worry about it at all. Which is wonderful and good enough, really.

IIRC Rust has a similarly confusing underlying memory model. However, due to a lack of direct shared mutable state being available, you don't get to see this often. In fact, one might call Rust's model more confusing than C++ since you have `noalias` everywhere which can enable more aggressive optimizations. But it's mostly irrelevant since you don't deal with it unless you're writing unsafe code.

On the "encourage new devs to read the Rust docs" front I agree, though. We've had tons of people saying that they code better C++ after learning Rust. Also I've heard of companies wanting to start programming in C++/Rust-y things with a majority of python/ruby/js/etc devs use Rust because "Rust teaches a lot of things to the programmers that they no longer have to". Something like that.


  > IIRC Rust has a similarly confusing memory model
In fact I believe that at a fundamental level Rust is forced to more-or-less adopt C11's memory model thanks to its usage of LLVM, though, as you say, Rust's concurrency safety mechanisms mean that the theoretical soundness issues that apply to C11 are toothless in Rust.


Agreed. What i meant was they start talking about the memory model at the very beginning of their online book, more than most languages bother with.

https://doc.rust-lang.org/book/the-stack-and-the-heap.html


Yeah, this is because we want people who may not have a systems backround to be able to use Rust. That's just general info on the concept of stack vs heap, it's not Rust-specific.


I feel far too many books make assumptions that things are "common knowledge". I think they are afraid of putting too much remedial and review stuff at the beginning or in the book in general.

But in reality, the percentage of people who understand something fully at the 'expert' level is very small. Best way to find out if you know something or not is too teach someone else.


This is exactly on point, for any kind of teaching. And reviewing the 'basics' can help situation information in context you already know.

Ironically, I often use a paging metaphor here, for stuff that I learned, but haven't thought about recently... going over something again to refresh my memory is just swapping that page back in.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: