this post was submitted on 29 Nov 2024
90 points (95.9% liked)
Asklemmy
44005 readers
321 users here now
A loosely moderated place to ask open-ended questions
Search asklemmy π
If your post meets the following criteria, it's welcome here!
- Open-ended question
- Not offensive: at this point, we do not have the bandwidth to moderate overtly political discussions. Assume best intent and be excellent to each other.
- Not regarding using or support for Lemmy: context, see the list of support communities and tools for finding communities below
- Not ad nauseam inducing: please make sure it is a question that would be new to most members
- An actual topic of discussion
Looking for support?
Looking for a community?
- Lemmyverse: community search
- sub.rehab: maps old subreddits to fediverse options, marks official as such
- !lemmy411@lemmy.ca: a community for finding communities
~Icon~ ~by~ ~@Double_A@discuss.tchncs.de~
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
The borrow checker, the way it handles exceptions and nulls, the way it handles stack/heap (possibly foreign to me because I've never done much on C), composition pattern instead of oop, probably more I'm forgetting
This is indeed pretty unique.
This is really just the fact that Rust has sum types - but those kinds of types have been used in many functional languages (Haskell for example) for a long time.
This is just the same as C and C++ and any other low-level language that requires you to distinguish between the stack and heap.
I mean if you're only looking at OOP languages then this will be new, but functional languages have done this for a long time.
So yea, I think a big part of what makes Rust great is that it has managed to take these really, really good ideas from functional programming languages and made them work in a language that is not entirely functional. This leads to a perfect blend/best of both worlds with regards to OOP and functional programming :)
Yeah itβs just the borrow checker and ownership stuff that throws you for a loop. Particularly with large system design