Clojure is a bit topic, for me. I didn’t send any geek early links email dedicated to it. To start engines, this is a list of Clojure presentations, videos, discussions at Infoq
Clojure (pronounced like “closure“) is a recent dialect of the Lisp programming languagecreated by Rich Hickey. It is a general-purpose language supporting interactive development that encourages a functional programming style, and simplifies multithreadedprogramming.
Simple Made Easy
Rich Hickey emphasizes simplicity’s virtues over easiness’, showing that while many choose easiness they may end up with complexity, and the better way is to choose easiness along the simplicity path.
Clojure Web Frameworks Round-Up: Enlive & Compojure
Clojure is rather new member of the LISP family of languages which runs on the Java platform. Introduced in 2007 it has generated a lot of interest.
Clojure: The Art of Abstraction
Alex Miller presents some of the abstractions that make Clojure a great language: Collections, Sequence and Higher Order Functions, Multimethods, Protocols, Atoms, Macros, and others.
Perception and Action: An Introduction to Clojure’s Time Model
Stuart Halloway discusses how we use a total control time model, proposing a different one that represents the world more accurately helping to solve some of the concurrency and parallelism problems.
Clojure-Java Interop: A Better Java than Java
Stuart Dabbs Halloway, after reviewing Clojure’s syntax comparing it with Java, explains how Clojure-Java interoperability works. He then talks about the need for simplicity in languages, attempting to prove that Clojure is a simpler language, and consequently better, than Java.
Writing HTML5 Applications with Google App Engine, Google Closure Library and Clojure
Clojure works internally with Key/Value pairs. We can retrieve them to and from the Google Datastore, and we can send them to the client as JSON.
Rich Hickey on Protocols and Clojure 1.3
Rich Hickey explains the ideas behind Clojure 1.2’s new polymorphism constructs deftype and protocols. Also: Clojure 1.3 features such as faster arithmetic and future features like Pods.
Book Excerpt and Interview: The Joy of Clojure
The Joy of Clojure by Michael Fogus and Chris Houser is a book that tries to take the reader beyond the language syntax, and show how to write fluent, idiomatic Clojure code. It teaches how to approach programming challenges from a Functional perspective and master the Lisp techniques that make Clojure so elegant and efficient.
Clojure’s Solutions to the Expression Problem
Chris Houser presents the expression problem showing two ways to solve it in some languages, followed by a demonstration of solving it using multimethods and protocols in Clojure, mentioning pros and cons of each solving method.
Functional Languages 101: What’s All the Fuss About?
Rebecca Parsons makes an basic introduction to functional languages, explaining how to think in a functional language, why is there renewed interested in them, and some nifty things about these languages.
Exploring LISP on the JVM
Clojure in the Field
Stuart Halloway presents what makes Clojure different and, in his opinion, better than Java, plus some real-life lessons on Clojure development including BDD for functional code, wrapping Java APIs, third part libraries worth knowing, writing code without an objectual context, and the learning curve for a team new to the language.
An In-Depth Look at Clojure Collections
If you’re familiar with the Clojure programming language, then you might know that at its heart lays a powerful set of immutable, persistent, collection types.In this article we will talk a bit about the underpinnings of these collection types including a deep dive into a couple of them; namely its vectors and maps. Finally, we’ll wrap up by presenting an example of how viewing a problem through the lens of the Clojure way we can vastly simply our design.
Stuart Halloway on Clojure and Functional Programming
Relevance, Inc. co-founder Stuart Halloway discusses Clojure and functional programing on the JVM in depth, and touches on the uses of a number of other modern JVM languages including JRuby, Groovy, Scala and Haskell. He also makes a case for structural edit modes in IDEs, and shares some of his favorite IT books.
Dean Wampler on Programming Languages
This interview begins with a discussion of functional programming, the use of Scala by programmers trained in Java and the differences between purely functional languages like Haskell and hybrids like Scala. Later in the interview other programming languages are discussed along with the notion of programming paradigms and the need for combining both paradigms and languages to best solve problems.
Are We There Yet?
In his keynote at JVM Languages Summit 2009, Rich Hickey advocated for the reexamination of basic principles like state, identity, value, time, types, genericity, complexity, as they are used by OOP today, to be able to create the new constructs and languages to deal with the massive parallelism and concurrency of the future.
Persistent Data Structures and Managed References
Rich Hickey’ presentation is organized around a number of programming concepts: identity, state and values. He explains how to represent composite objects as values and how to deal with change and state, as it is implemented in Clojure.
Clojure and Rails – the Secret Sauce Behind FlightCaster
Clojure is a LISP for the JVM created by Rich Hickey. Over the past year it has gained a lot of attention, mostly due to its concurrency features such as support for Software Transactional Memory (STM) and other powerful data structures. The recent rise of interest in functional languages also didn’t hurt. A few months after the release of Clojure 1.0, real world projects implemented in Clojure are now appearing.
In this presentation from the JVM Languages Summit 2008, Rich Hickey discusses Clojure, which is an implementation of Lisp. Topics covered include Clojure features and syntax, example code, interoperation with Java, Clojure and functional programming, persistent data structures, concurrency semantics, references, transactions, software transactional memory, agents, implementation and pain points.