Clojure Gazette 1.65

Schemas, an aussie, and history.

Clojure Gazette

Issue 1.65January 19, 2013


Hi there!

Just another issue.


Eric Normand

P.S. I love hearing from readers. Just reply to this email!

The Library to Watch

Prismatic's Schema

Representing data as data is one of the tenets of idiomatic Clojure. But so often, when the structure of our data gets complex or the number of different structures we need increases beyond our ability to keep them all in mind, development becomes difficult. What kind of data is this function expecting? What will it return? What happens if I omit this key? Am I missing a required key?

These are all questions I often ask myself when going through an older codebase. Prismatic has created Schema in order to document the shape of data. Schema allows you to describe the shape of data in data, which can then be used to validate your data. In essence, you create runnable documentation. It also has other uses, for instance automatic coercion from one shape to another.

If you're interested, here are some resources:

The Developer to Watch

Ambrose Bonnaire-Sergeant

An indefatigable clojurist from down under, Ambrose Bonnaire-Sergeant is the creator of Core Typed , which recently ran a successful IndieGoGo campaign to raise funds for its full-time development. Do follow him on Twitter . Also, check out his new dynalint project, which helps fin d bugs at development time.


Oral History of Adele Goldberg

Adele Goldberg was at Xerox PARC when all the Smalltalk magic was happening. In this great video interview, she drops nuggets of gold about how Smalltalk was developed, as well as lots of pearls about tangential subjects. My favorite idea from this video (at the moment) is that Smalltalk gave you a complete example system that you modified, as opposed to most modern applications that give you an empty document. This works well because it's hard to start with a blank page, but modifying something that already works is much easier.