Sessions at (first clojure-conj) about Clojure

Your current filters are…


  • (not= DSL macros)

    by Christophe Grand

    Too often, one writes a DSL by starting with macros. However, this is often a case of premature optimization. An approach centered around "DSV" (domain specific values) and an interpreter leads to greater dynamicity. Macros can be added afterwards for optimization purposes or as syntactic sugar.

    Coverage video

  • Clojure Zippers

    by Luke VanderHart

    An introduction to the Clojure zip data structure, which supports fully functional tree navigation and editing. Includes a discussion of how to use the data structure effectively, as well as an overview of its performance characteristics.

    Coverage video

  • Fertile Ground: The Roots of Clojure

    by Michael Fogus

    Whereby I explore some of the programming language and paradigm influences on the Clojure programming language. Clojure contains its own novelty, but its greatest strengths are built on the foundation of existing language features. I will go through a handful of features in my 30 minutes and explain how they were influenced by existing features in other programming languages. Likewise, I will explain how Clojure diverges from its progenitors.

    Coverage video

  • Finger Trees: Custom Persistent Collections

    by Chris Houser

    Clojure's existing persistent collection types cover many usage scenarios, but do leave a few gaps. Finger trees can fill gaps such as sorted sets with efficient support for 'nth', sequential collections that can grow at the front, the back, or even insert values anywhere in the middle, and more. In fact, finger trees can be customized to support a variety of application-specific needs while remaining persistent and playing nicely with Clojure's sequence and collection abstractions. We'll look at examples of using and customizing finger trees, and talk a bit about their internals.

    Coverage video

  • Hammock-Driven Development

    by Rich Hickey

    Coverage video

  • Protocol XIII: Clojure Protocols Explained

    by Sean Devlin

    Everyone seems to be interested in protocols, but not too many tutorials exist on the topic. I'm assuming that we'll have a fair amount of video game fans in the audience. The goal of this talk is to explain how protocols & datatypes work by analogy, using the Final Fantasy XIII character & job system.

    Coverage video

  • Simplicity Ain't Easy

    by Stuart Halloway

    A quick review of what programmers have to say about simplicity might lead you to the following (incorrect!) conclusions: every language/design approach/tool under the sun lays claim to simplicity, usually as a key virtue. Simplicity means many different things and is so subjective as to be worthless.

    In fact, simplicity is objective. It has a definition, and an etymology, that are very useful to software developers. In this talk, we will: cut through the noise to the definition of simplicity demonstrate how simplicity informs the design of Clojure, and Clojure programs help you make your programs simpler, and explain to others what this means, and why.

    Coverage video