Clojure Gazette 1.65
Schemas, an aussie, and history.
Clojure Gazette
Issue 1.65January 19, 2013
Editorial
Hi there!
Just another issue.
Enjoy!
Sincerely,
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:
- Aria Haghighi's talk at Clojure/Conj 2014
- The blog post announcing it
- The blog post about data coercion
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.
History
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.