4 ms·
I'm not sure where these items fall in their priorities. You can explore issues that are tracked on the JIRA instance here: https://clojure.atlassian.net/jira/
by grzm 6y ago
I'm not sure where these items fall in their priorities. You can explore issues that are tracked on the JIRA instance here:
https://clojure.atlassian.net/jira/software/c/projects/CLJ/issues/?filter=allissues https://clojure.atlassian.net/jira/software/c/projects/CLJ/i...
A couple that are related to the items 'Scarbutt mentioned:
- https://clojure.atlassian.net/browse/CLJ-2365 https://clojure.atlassian.net/browse/CLJ-2365 Integration with java.util.function interfaces
- https://clojure.atlassian.net/browse/CLJ-1255 https://clojure.atlassian.net/browse/CLJ-1255 Support Abstract Base Classes with Java-only variant of "reify"
- https://clojure.atlassian.net/browse/CLJ-1001 https://clojure.atlassian.net/browse/CLJ-1001 Proxy cannot call proper super-class method
My take on this is that Clojure provides host (Java) interop, not replacement. Part of that is if you're doing really Java-y things, such as extending abstract classes, that's probably better done in Java. These class-based inheritance/extension concepts aren't core to what Clojure is about. Polymorphism and extension is addressed by other means in Clojure.
A comparison: I know little about Kotlin, but I wouldn't be surprised if it has a better story about Java class extension and interface implementation as I think one of its goals is to be in some ways a better Java. I don't think that's a goal that Clojure shares. If those are features you are looking for, Clojure may not be a good fit.