Java: “Sorry, but the developers of Peanut
didn’t declare it to implement the Crackable
interface, even though it has all the relevant methods, so if you want to treat it like a nut your choices are write a wrapper class or call those methods using Reflections”
Swift’s extensions system has spoiled me, and I feel the pain of this whenever I have to write Java
Ditto, but Rust’s traits. God those are so fun. It’s like duck typing a la Python but you can just slap whatever methods you want on a foreign type without worrying about breaking anything because they’re only visible to the current crate (or other crates that import the Trait)