CupricTea
Joined 1 year ago
Joined 1 year ago
bevy_app 0.17.3
bevy_derive 0.17.3
bevy_ecs 0.17.3
bevy_ecs_macros 0.17.3
bevy_input 0.17.3
bevy_macro_utils 0.17.3
bevy_math 0.17.3
bevy_platform 0.17.3
bevy_ptr 0.17.3
bevy_reflect 0.17.3
bevy_reflect_derive 0.17.3
bevy_state 0.17.3
bevy_state_macros 0.17.3
bevy_tasks 0.17.3
bevy_time 0.17.3
bevy_utils 0.17.3
The fact that Tiny Glade was even able to just turn off Bevy's renderer while keeping the entire rest of the needed infrastructure so that they could write their own custom renderer on top of it is nothing short of remarkable.For me the actual toughest thing to learn were procedural macros, and the reason for that is because actually implementing them is more on the niche side of programming compared to using them, so most "learning Rust" resources just hand wave them away, and their usage is so special cased that all the limited learning resources around them target specific niche use cases that might not be what you in particular would use them for.
Netflix is a little better in this regard, but Neflix in particular goes out of its way to obnoxiously clutter the screen when I pause...even though I paused specifically to try and read something on screen or mine vocabulary from subtitles.
Perhaps "Embedded async Rust vs. C RTOS"
I don't understand why this mentality is so common. Zig and Rust are both fine languages with markedly different design goals and they can coexist.
When creating a dynamic sized array type, it's much simpler to reason about its invariants when you assume only its public methods have access to its size and length fields, rather than trust the user to remember to update those fields themselves.
The above is an analogy which is obviously fixed by using opaque accesor functions, but Rust takes it further by encapsulating raw pointer usage itself.
The whole ethos of unsafe Rust is that you encapsulate usages of things like raw pointers and mutable static variables in smaller, more easily verifiable modules rather than having everyone deal with them directly.
It's honestly frustrating how prevalent this is in C, and the docs don't even tell you this, and if you guess it does take ownership and make a copy for it and you were wrong, now you just leaked memory, or if you guessed the other way now you have the potential to double-free it, use after free, or have it mutated behind your back.