Thanks! Now that you've mentioned C, I would like to add that it was incredibly enlightening to discover and experience for myself the rationale behind certain language design decisions in Rust.
For instance, I'll particularly mention the tricky object lifetime annotations. At first, they would seem like a crazy concept for Rust (which claims to be "higher-level"). However, after going through the rather ambiguous semantics of raw pointers in C, it clarified—nay, justified—the craziness.
You would definitely enjoy trying Rust out, especially with hindsight to C's original ideas! 🦀
I recently had to do some work in C++ on Unreal Engine and that was interesting. I built in C++ for many years before there was any kind of standardisation about shared pointers and reference counting and Microsoft had come up with IUnknown and QueryInterface with a million interface GUIDs in the Windows Registry - now things are much nicer in C++ land anyway and Unreal has additions on top of that. That all said, I get a nervous tic when I allocate a new object and trust something else to manage the lifecycle! I've spent too long with garbage collectors ;)
That surely sounds like a hassle to deal with. Makes me even more glad that we have a more formalized RAII principle nowadays. I'd rather not imagine how bad things can get without semantic lifetimes in environments with mixed manual memory management and garbage collectors! 😅
Some comments have been hidden by the post's author - find out more
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Thanks! Now that you've mentioned C, I would like to add that it was incredibly enlightening to discover and experience for myself the rationale behind certain language design decisions in Rust.
For instance, I'll particularly mention the tricky object lifetime annotations. At first, they would seem like a crazy concept for Rust (which claims to be "higher-level"). However, after going through the rather ambiguous semantics of raw pointers in C, it clarified—nay, justified—the craziness.
You would definitely enjoy trying Rust out, especially with hindsight to C's original ideas! 🦀
I recently had to do some work in C++ on Unreal Engine and that was interesting. I built in C++ for many years before there was any kind of standardisation about shared pointers and reference counting and Microsoft had come up with IUnknown and QueryInterface with a million interface GUIDs in the Windows Registry - now things are much nicer in C++ land anyway and Unreal has additions on top of that. That all said, I get a nervous tic when I allocate a new object and trust something else to manage the lifecycle! I've spent too long with garbage collectors ;)
That surely sounds like a hassle to deal with. Makes me even more glad that we have a more formalized RAII principle nowadays. I'd rather not imagine how bad things can get without semantic lifetimes in environments with mixed manual memory management and garbage collectors! 😅