Roadmap to 1.10?

I think rather than focus on features, it’s more helpful to focus on problems to understand Clojure’s trajectory (I will undoubtedly use more and poorer words than Rich would for all of these):

  • Composable, reusable data transformation - reducers, transducers, core.async
  • Automatic parallelism - fork/join parallel stuff, reducers
  • Portability - reader conditionals, cljc
  • REPL tooling - socket repl, Throwable->map, clj, prepl
  • Agile Clojure program building - core relying on libs, tools.deps.alpha, clj, git deps
  • Describable data - data readers, edn, transit, spec, namespace map syntax, namespace map destructuring
  • “Language of the system” - core.async, transit, var serialization
  • Performance - reducibles, direct linking, lazy vars (future)
  • Getting started - spec (incomplete), clj, git deps, clojure.org site, api doc infrastructure

These are all big arcs that cross many releases. Attention may phase in and out on any one of these at a time but they are all problems of enduring interest. Many of these only lightly touch “the core language” or even the core library, and that’s by intent. In the words of Rich, Clojure is a small language and intends to remain so. If you want to envision where Clojure is going, think about new steps on those arcs, which are largely not “new language” and may not even be “in Clojure” but around it in libs.

We’d love to hear feedback on the tooling stuff. I have taken and acted on a lot of feedback already for clj and plenty of stuff is queued up.

18 Likes