Published on March 2, 2009
: an overview presentation by Larry Diehl language by Rich Hickey Monday, March 2, 2009
What is Clojure? • A programming language (note the j) • ~1.3 years old (as of 02/26/09) • A dialect of Lisp • JVM-hosted • Concurrency-minded • Expressive • Malleable Monday, March 2, 2009
Why Clojure? • Less code to read • Meta-programming and DSLs • Simpler concurrency model • Lots of Java libraries to reuse • As fast as Java when necessary • Dynamic and JIT, but optionally AOT Monday, March 2, 2009
Concurrency • The age of multiple cores is here • Thread-safety in a Java library is practically a feature • Thread-safety in a Clojure library is practically an assumption • No language-level support for distributed concurrency Monday, March 2, 2009
Examples • Things that don’t change but are used often • Unit testing Java code • Graphing • Rapid prototyping • Lightweight REST APIs Monday, March 2, 2009
Clojure as a Lisp • Functional (not Object Oriented) • Preﬁx syntax (simple!) • Data type literals (less parentheses) • Lexically scoped (mostly) • Code as data (HOFs and homoiconic) Monday, March 2, 2009
Editors • Emacs + SLIME • not the only option!!! • IntelliJ IDEA (ofﬁcial JetBrains plugin) • Netbeans (Enclojure) • Eclipse (clojure-dev) Monday, March 2, 2009
The End ... just kidding Monday, March 2, 2009
http://clojure.org << left side right side >> Monday, March 2, 2009
Buzzwords http://github.com/larrytheliquid/buzzer • rest of presentation will center around developing a library • the purpose of the library is to detect and report on buzzword usage within text • new concepts will gradually be introduced with new features • TDD will be employed to help the learning process Monday, March 2, 2009
Rationale Rationale. Table ... Clojure is an effort in pragmatic dynamic language design in this context. ... Overview Reference API Guides Libraries & Tools.
Clojure is predominantly a functional programming language, and features a rich set of immutable, ... A brief overview of Clojure and the features it includes.
An Overview of Datalog. By Jeffrey Straszheim. What Datalog is, and what it can do for you. Work in Progress. Introduction. Datalog is a logical query ...
clojure.algo.generic.collection by Konrad Hinsen Generic collection interface This library defines generic versions of common collection-related functions ...
GitHub code repository for Clojure; A comprehensive overview of Clojure; An overview of Clojure 1.2 in reference format; Full Disclojure – Screencast;
Clojure is one of the most interesting languages that has emerged recently. It is a Lisp whose main goal is to be practical language for day-to-day ...
Below are slides from a talk given to the Bristol Clojurians on April 21st 2015. The talk was in two parts, each around an hour, and in each I attempted to ...
Clojure - Functional Programming for the JVM. by R. Mark Volkmann, Partner Object Computing, Inc. (OCI) last updated on 6/2/13 ... Clojure Overview.
An overview of Clojure namespaces; How to define a namespace; How to use functions in other namespaces; require, refer and use;