I think a lot of people conflate OOP and inheritance to mean the same thing. And inheritance is what should get the bad rap. It does not solve any problem I have seen any better than other language features (in particular interfaces/traits can solve a lot of the same problems) but inheritance causes far more problems overall.
But building the code out of logical units with fenced responisbilities is in my opinion a good way to structure code.
This is encapsulation, which is one of the better ideas from OOP languages. Though also not unique to them.
And I have a hard time to wrap my mind around some design choices in the language that would have been very easily solved with a more OOP like structure.
What design choices would those be? And how would they better fit into an OOP like structure? Note that rust is not anti OOP - it uses OOP techniques a lot throughout the code base. It just lack inheritance and replaces that with other IMO better features.
I think a lot of people conflate OOP and inheritance to mean the same thing. And inheritance is what should get the bad rap. It does not solve any problem I have seen any better than other language features (in particular interfaces/traits can solve a lot of the same problems) but inheritance causes far more problems overall.
This is encapsulation, which is one of the better ideas from OOP languages. Though also not unique to them.
What design choices would those be? And how would they better fit into an OOP like structure? Note that rust is not anti OOP - it uses OOP techniques a lot throughout the code base. It just lack inheritance and replaces that with other IMO better features.
Interfaces, APIs, mincroservices, the unix philosophy…