Clojure Gazette 1.65
From OO to Clojure Workshop!
Watch my free workshop to help you learn Clojure faster and shift your paradigm to functional.
Schemas, an aussie, and history.
Issue 1.65January 19, 2013
Just another issue.
P.S. I love hearing from readers. Just reply to this email!
The Library to Watch
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:
- Aria Haghighi's talk at Clojure/Conj 2014
- The blog post announcing it
- The blog post about data coercion
The Developer to Watch
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.