Clojure Gazette 128

Sign up for weekly Clojure tips, software design, and a Clojure coding challenge.

Protocols, Interactivity, Vars
Clojure Gazette
Issue 128 - June 14, 2015

Hi clojure enthusiasts,

You know, it's getting to the point where it's harder and harder to keep up with all of the stuff that's going on with Clojure and other cool technologies. It really feels like an explosion of great ideas. While there's a lot of material, the fundamental ideas repeat again and again.

  • Immutable data
  • Referentially transparency
  • Design as pulling things apart
  • Explicit model of time

While the specific implementations may differ from language to language, the fundamental principles are the same. These are ideas that have existed for a while but have never made it into the mainstream. Why are they now emerging so prominently? It's hard to say. But I'm glad they are!

Please enjoy the issue!

Rock on!
Eric Normand <>

PS Want to be more attractive? Subscribe!
PPS Want to advertise to smart, talented, attractive Clojure devs?

MailChimp Hat

Sponsor: MailChimp

When I was first thinking about starting the Clojure Gazette, I researched email providers. I wanted something that I could use for free to test out. What if nobody liked my content? I didn't want to pay a monthly fee just to learn that. And I didn't want to deal with all of the difficult problems with email lists: signup forms, unsubscribe links, analytics, and spam filters.

MailChimp does it all. It's free to start using. You get to send up to 12,000 emails per month for free if you have fewer than 2,000 subscribers. And trust me, once you get to 2,000, you'll gladly pay for the service. The signup forms, confirmation emails, everything is set up for you and yet super customizable. Oh, and there's a nice API.

If you follow this link, you and I will both get $30 in credit if and when you do become a paying customer. It helps keep the Clojure Gazette rolling!

Protocol-Oriented Programming in Swift

What a great presentation. The step by step reconstruction of a class-based solution to a protocol-based solution is applicable to Clojure as well as to Swift. Crusty is the anti-hero of this story, who has never liked Object-Oriented Programming. He has held onto structs since the olden days. But now, with protocols, he is vindicated. It's a very clever way to introduce an idea that is likely new to many OO programmers. I love it!

Code Mesh 2015 Call for Talks

It's time again to send in your applications to speak at Code Mesh. There are lots of great speakers already. Check out their lineup. Oh, to be part of the conference circuit. What a dream!

Clojurians Slack Channel

Join lots of great discussions on the Clojurians Slack channel. It's amazing how fast it has grown! And it's open for everyone.

The Web of Alexandria (follow-up)

I've been a fan of Bret Victor ever since I read Magic Ink eight years ago now. He could turn out to be the intellectual successor to Alan Kay, what with his focus on computing as a medium. In this critique of the web, Victor laments how poorly the web serves us as humans.

Seeing Circles, Sines, and Signals

This is a beautiful interactive essay. We need more of these. How many hours of how many lives could be saved by one, interactive picture instead of hours of heated textual discussion?


The persistent collections from ClojureScript and the spreadsheet cells of Javelin come together in a Javascript library for helping you incrementally tame those wild, jQuery-enabled web pages. This post gives an example of how to take an old page and step-by-step make it cleaner and more manageable. This is an interesting library from the people who bring you Boot and Hoplon.

Def Vars in ClojureScript REPLs

Interesting work by Mike Fikes to decrease the differences between Clojure and ClojureScript.

Large-scale, well-typed edits in Unison, and reimagining version control

Unison seems like a really interesting research project. This post is about how to make a program that thousands of people can edit simultaneously, never breaking type safety. I have to read more.

Interview: Paul de Grandis on Simulation Testing

If you're interested in Simulation Testing, this is an interesting interview. Ryan Neufeld interviews Paul de Grandis about his experiences using Simulation Testing on client projects.