Clojure Gazette 1.90

Lenses, Words, and Reactive

Clojure Gazette

Issue 1.90 August 24, 2014


Hey CLJ-ters,

I have a confession to make. Clojure is not my ideal language. That's not why I have chosen to base my career on it, anyway. What I like about Clojure is the waves it is making. Waves. They reach out into the giant sea of software engineering. Distant islands are gently lapped by the waves that Clojure makes.

I used to be into Python (before I got into Lisp seriously). It was making waves then. The waves ran out. Clojure is now trendy. But it is trendy and deep. And the waves are bigger and they go farther. I'm going to ride those waves for a long time.

Please enjoy the issue.

Eric Normand

PS Learn more about the Clojure Gazette and subscribe.

Sponsor: Brick Alloy

Thanks to the very first sponsor, Brick Alloy. Brick Alloy is a band of senior consultants that solve really hard scalability and security problems. These are the people behind the Lift web framework for Scala, which is the most secure web framework out there. They help you with the whole stack, from the user experience down to the scaling infrastructure.

They also support lots of Clojure-related things you've heard of: ClojureBridge, Typed Clojure, and Clojure/West, among others. They have a very interesting organization: it's more like a law firm where everyone brings in clients and they share in successes. Check out their team and say hi on Twitter.


This conference slipped under my radar. But one of the organizers asked me to post about it. The theme is polyglot programming. It's the first year it's running and by the speakers they have listed (that I recognize), it looks to be a great event. Lots of Clojure speakers plus lots more. It's in Poland in October. DISCUSS

What does it mean to be Reactive?

A great talk by Erik Meijer about how to more formally define Reactive Programming. Besides it being informative, I like Meijer's Curry-style approach to types: use them to help you think and formalize a problem, but they don't need to be a part of the language. Watch it but don't look directly at the tie-dye. DISCUSS


Just a reminder that conj tickets are for sale. I'm excited to be going and want to make sure everyone who wants to go gets their tickets. If you're going, let's have lunch!

Introducing Dragonmark Circulate

Woah, David Pollak has been doing some cool stuff with Clojure core.async. This library lets you "pass channels between hosts" by transparently coupling them on both ends. DISCUSS

Cognicast with Eric Normand

At the risk of horn auto-tooting and potential shameful self-promotion, I will link to my own Cognicast appearance. Topics include Clojure, Lisp, Haskell, Type theory, LispCast, and this very Gazette. Mutual recursion! DISCUSS


Lenses are kind of hip right now. This is a neat library that defines a protocol for lenses and a way to compose them using vectors (the way you do with update-in, assoc-in, and get-in). DISCUSS

[Programming language subreddits and their choice of words](


This is a fun analysis of the words used in programming language subreddits. For instance, did you know that PHP has the most curse words, while Clojure has more "happy" words? It's not science, just fun. DISCUSS

Two months early. 300k under budget

A nice post about a successful use of Clojure and the process the client went through from convincing through delivery. DISCUSS

Poor Man's Cljsfiddle

A minimal "fiddle" site for ClojureScript. You edit ClojureScript code and it shows the result on the right. It's 60 lines of Clojure + 16 lines of Javascript. Not bad! Also, he plans on using this for Quil in ClojureScript! DISCUSS