Lenses are a beautiful functional abstraction that subsume the getters and setters of object languages like Ruby and Java - without relying on mutable data. This is important, because mutable data impedes reuse and is a key cause of complexity and bugs. Lenses are highly relevant to Clojure development, because they bridge the gap between the immutable data structures that functional programming provides and convenient access for getting things done. One challenge with implementing Lenses for Clojure is that they have traditionally been used in languages with strong type systems like Haskell. In this talk, I will reflect upon the lessons learned porting concepts originally framed in terms of types to a dynamic language like Clojure.
Journey Through the Looking Glass, and What I Found There
Chris Ford has been fascinated by programming (and in particular functional programming languages) since he first stumbled across Haskell during a misguided attempt to study electrical engineering. He came to his senses, and has spent the last seven years happily building systems in various countries across the world. He has worked for ThoughtWorks in the UK, India and Uganda, and is currently coding Clojure in Glasgow. Chris is troubled by the thought that humans and applications might be specialisations of a general class of information producing and consuming nodes, and what that might mean. He's not quite as odd a person as that might imply, honest.