The only thing I can think of: you often need to strike a balance between having interfaces that are too generic/large or too specific/small. However, you already have to worry about that in OOP (God Object vs ravioli code) so it’s not a huge deal.
Another reply suggested giving Rust a try, and I do second that. But if it’s not your cup of tea, at least take a look at some of the standard library traits - std::io::Read/Write and std::iter::Iterator will give you a good idea of what composition can do.
The only thing I can think of: you often need to strike a balance between having interfaces that are too generic/large or too specific/small. However, you already have to worry about that in OOP (God Object vs ravioli code) so it’s not a huge deal.
Another reply suggested giving Rust a try, and I do second that. But if it’s not your cup of tea, at least take a look at some of the standard library traits -
std::io::Read/Write
andstd::iter::Iterator
will give you a good idea of what composition can do.Thanks for the info! I have been very slowly making my way through the Rust book, hardly made a dent so far but am enjoying it.