As a Clojure programmer, what about JDK interop do you wish was cleaner, easier to express, and/or unnecessary altogether (e.g. reified in clojure.core)?

We’ve been thinking about this question a lot lately and had an idea how the answers would fall and were not surprised when they all mostly fell into the following categories.

  • Cleaner Java variadic method calls (i.e. building an array explicitly)

  • Methods as first-class functions

  • Extending abstract base-class dynamically (i.e. reify-class)

  • Applicative functions do not work with Java Streams

  • Cleaner array type hints

  • String/parseTYPE use

  • Math/xxx use

  • Inner class auto-require

Most of these items have related tickets and those that don’t are quite well-known in the Clojure community. Now we’re not entirely sure if all of these are worth pursuing but we are thinking about them all and trying to identify ways that we can smooth the sharp edges of JDK interop. Stay tuned.

If we’ve missed anything from the list above then feel free to reach out to Alex or myself on Twitter.