Edit : more up to date and useful comments thankfully below
Edit : more up to date and useful comments thankfully below
Having a WO reference would allow these read_buf APIs to express they only write and never read so the uninitialized memory is safe to pass directly.
I feel like it would've been preferable if they either went all in on riscv or at least made it so all 4 cores could be used at the same time.
But if I were to guess the performance of the riscv cores probably doesn't match the ARM cores so they weren't confident enough in shipping a pure riscv SoC like espressif does.
Any other guesses as to why they might've gone this route?
I am not in the EU but my next iPhone is almost certainly not gonna be an iPhone despite me having used a non iPhone for about 6 months in the last 15 years.
Their throwing their customers under the bus just to throw a tantrum in the EU does not bode well for how they would treat their customers in other situations.
https://www.cnet.com/tech/services-and-software/digital-cont...
It's a legal requirement for drones above 250g to broadcast not only their position but also the position of the operator and their identification number.
* I was surprised how naturally and easily porting the Go code to Rust was. I have been writing Go and I have been happy with it (to my surprise actually). And I have a stereotype in my head that Rust is more cumbersome. But in some cases, the Rust code was much more ergonomic than the Go code.
* Rust appears to be a quagmire of TIMTOWTDI (There Is More Than One Way To Do It). Just looking at the Rust docs for the standard library is a bit stress inducing. In some way Rust reminds me of the old Perl hacker culture which many love but I did not. When I first read the zen of Python stuff, and the idea that there should be one obvious way to do things I knew where my own heart lay.
* Rust is like the Dark Souls of programming. In the linked video there is a moment where the creator is audibly relieved. He did some mutable borrowing stuff across threads and he was deep in a rabbit hole of making the compiler happy. Finally he got it all to compile but he admits he wondered if he was going to find a dead-end. But there is something addictive about that kind of stress - I know it myself. You feel like you accomplished something when you come out the other side. It is some kind of dopamine inducing validation of your ability as a programmer. I think this is a very negative trait in the context of tools used to complete work.
* After implementing large blocks of functionality and getting the code to compile, it "just worked" as Rust programmers like to brag about.
My impression is still that Rust is over engineered. I have a lot of reasons to feel that way, but a recent one is a video from the CopenhagenRustCommunity where Jon Gjengset did a presentation on using `impl` traits in place of generics. It really feels to me that the ergonomics that I praised in my first point are a deal with the devil. I get the impression that maintaining this facade of "easy" is creating some demons under the covers. And things like `impl` trait and some of the decisions around it are layering on top to try to hide those demons. I don't want to call out this feature too hard since I'm just a tourist here and real Rust guys will probably have more useful opinions on it. But whenever I dig deep into Rust you end up with things like "Pin" or whatever and the guys behind it are almost apologetic. They recognize these are weird annoying things but in some sense earlier decisions are forcing them to do the best they can.
All that being said, I'm probably going to finally give Rust a decent try. I've been writing a small personal project in C and I think porting it to Rust is worth the time.
1. https://www.youtube.com/watch?v=BbIEuNscn_E&ab_channel=Tsodi...
2. https://www.youtube.com/watch?v=CWiz_RtA1Hw&t=2234s&ab_chann...
As he mentioned the current situation with return position impl trait + 'a was surprising even to some of the core rustc developers so it's not like they intended for it to be like that.
The report looks like AI slop. This is a meaningless waste of time.