Copy
Datafy, paren parties, and adopting a neanderthal (function)
View this email in your browser

The REPL

Notes.

Hoo boy.

There was quite a commotion this weekend after Stu Halloway's appearance on the Apropos podcast. A few years ago there was a similar commotion and I wrote this on HN with my perspective. I think it is still accurate today.

The thing to realise about Clojure is that it isn't an open source language like Python. It is a language controlled very tightly by Rich Hickey and Cognitect. Major work is done in secret (transducers, reducers, spec), then announced to the world as a "Here it is!" and then suggestions are taken. This goes well mostly, though it took a lot of outside persuasion that Feature Expressions weren't the best idea, and to come up with Reader Conditionals instead.

The underlying problem Clojure/Core has is their communication. If they would come out and explain their philosophy then people wouldn't get frustrated and confused when they expect the language development to work like other open source projects. Clojure's development is functioning exactly as planned. It's not a mistake.

A better way to treat Clojure is closer to a project at Apple (except for Swift). You can submit bugs, and make suggestions for future improvements, and if you really want to provide a patch. But go into it realising that it's not a community project, and you're much less likely to get frustrated.

With all that said, the proof of the pudding is in the eating, and for the most part Clojure has developed pretty well from Rich's tight control. I'd love it if there was a Snow Leopard year for Clojure where the focus was fixing longstanding bugs and feature requests, and more focus on those in general, but the language is developing well.

While I can't claim to speak for the community, in my experience with the Clojure folk I talk with, the concerns Zach Tellman, Tim Baldridge, Bruce Hauman, and others raised in the resulting Twitter threads are shared by more than a tiny minority of the Clojure community. On the whole, I think Clojure is developing well, but there are opportunities within the Clojure language, and for supporting tools, documentation, and libraries to continue to improve the Clojure experience.

-main

  • Snyk released very curious results in a survey on the JVM ecosystem last week. The most surprising thing about it was the question about the principal JVM language that people used. Java was first with 90% share, but Clojure was second with 3%, Kotlin at 2.4%, Groovy at 2.4%, and Scala at 1.8%. I was very surprised to see Clojure ahead of Scala, in my experience, Scala has been 4-5x larger than Clojure in terms of jobs, adoption, e.t.c. There were 10k respondents to the survey though, so it seems like a reasonable sample size, and the way the survey was distributed doesn't seem too biased. Other people also found that surprising.

    Another curious thing about the survey was that 60% of respondents used Java EE. I have no experience with Java EE, or that ecosystem, but I was surprised to see it so highly represented. Maybe that is the case though?
  • Clojurists Together is funding Datascript and Kaocha this quarter
  • Datomic On-Prem has a new caching option to use SSD's
  • How Miika Koskinen uses tap>, and the libraries he recommends
  • I had a timely discussion with Ben Brinckerhoff about spec and error messages
  • It was mentioned above, but the Apropos discussion with Stu Halloway is a really good insight into how Clojure is developed, and how the Clojure team thinks about problems.

Libraries & Books.

  • Bunnicula is a new library for asynchronous messaging with RabbitMQ, with a great writeup on the motivations and context.
  • You can adopt a function from Neanderthal
  • Giving new life to existing OM legacy SPAs with re-om

People are worried about Types. ?

  • A beginner's FAQ for Clojure.Spec, though I think this is useful for everyone

Foundations.

Tools.

Recent Developments.

  • Since my last email, Clojure went to a release candidate, then back to beta with a brand new datafy namespace.
  • CLJ-2373 is where work on improvements to exception messages and printing has gone

Learning.

Misc.


I'm Daniel Compton. I maintain public Maven repositories at Clojars, private ones at Deps, and help fund OSS Clojure projects (along with tons of generous members like PitchJUXTMetosin, Adgoji, and Funding Circle) at Clojurists Together. If you've enjoyed reading this, tell your friends to sign up at therepl.net, or post a link in your company chatroom. If you've seen (or published) a blog post, library, or anything else Clojure/JVM related please reply to this to let me know about it.
Copyright © 2018 Daniel Compton, All rights reserved.


Want to change how you receive these emails?
You can update your preferences or unsubscribe from this list

Email Marketing Powered by Mailchimp