Resources

This page lists promising resources for use with Clojure, etc. In general, the descriptions are adapted from the resource's web site(s), etc.

IDEs, etc.

Brackets-based

clj-brackets, a small plugin by John Pradeep, evaluates Clojure expressions in Adobe Brackets, a web-based text editor. It uses wrepl, a Leiningen plugin which starts a REPL which responds to HTTP POST requests.

Clooj

Clooj is a small, simple IDE (integrated development environment) for the Clojure programming language. It has some interesting features (eg, looking up functions), but its REPL linkage appears to be broken for Clojure 1.4 (sigh).

Emacs-based

Emacs Prelude

Emacs Prelude has the goal to ease the initial Emacs setup process and to provide you with a much more powerful and productive experience than the one you get out of the box. By using Emacs Prelude you're basically getting a "Get me out of the Prelude, I just want to use Emacs" card.

Note: Emacs Prelude requires GNU Emacs 24.x; for Macs, this is available from http://emacsformacosx.com

Swank Clojure

swank-clojure is a server that allows SLIME (the Superior Lisp Interaction Mode for Emacs) to connect to Clojure projects.

Note: This project is no longer under active development. New users are strongly encouraged to try out nrepl.el instead.

IntelliJ-based

Cursive Clojure

Cursive is the Clojure IDE that understands your code. Advanced structural editing, refactorings, VCS integration and much more, all out of the box.

Leiningen-based

Catnip

Catnip is a Leiningen plugin providing a fully functional text editor and REPL environment geared towards web development with Clojure and ClojureScript.

Leiningen

Leiningen is for automating Clojure projects without setting your hair on fire.

lein-idea

lein-idea is a Leiningen plugin to create project files for use in IntelliJ IDEA.

lein-oneoff

lein-oneoff simplifies the process of writing simple Clojure scripts (eg, handling dependencies and the classpath).

Nightcode

Nightcode is the only thing you need to create Clojure and Java projects for the command line, the desktop, the web, and Android -- besides JDK 6 or above. Whether you choose to make a Clojure or pure Java project, Nightcode will use its built-in copy of Leiningen to build and run your code.

Light Table-based

Light Table

Light Table is a new interactive IDE that lets you modify running programs and embed anything from web sites to games. It provides the real time feedback we need to not only answer questions about our code, but to understand how our programs really work.

See Also:

REPL-based

nREPL

nREPL is a Clojure *n*etwork REPL that provides a REPL server and client, along with some common APIs of use to IDEs and other tools that may need to evaluate Clojure code in remote environments.

nrepl.el is an Emacs client for nREPL, the Clojure networked REPL server. It's a great alternative to the now deprecated combination of SLIME + swank-clojure.

Session, by Kovas Boguta, is a web-based Clojure REPL that stores the interaction history in Datomic. This is a fascinating venture in documentation, social computation, etc.

Sublime Text-based

Sublime Text is a text editor for Mac OS X. It will feel very familiar to users of TextMate, but it appears to be better supported (eg, works on Lion and Mountain Lion). It provides a simple but (IMHO) adequate environment for Clojure development. See Getting Started with Sublime Text 2 for more information.

Vi-based

foreplay.vim

foreplay.vim is Tim Pope's alternative to VimClojure. See my Howto for installation notes, etc.

VimClojure

VimClojure is one of the most sophisticated editing environments for Clojure. It provides syntax highlighting, indenting and command completion.

See my VimClojure Howto for installation notes, etc. Also see vim-scripts/VimClojure on GitHub.

Alternatively, look into foreplay.vim.

Tools, etc.

clojure.tools.trace

clojure.tools.trace (formerly known as clojure.contrib.trace) is a Clojure trace tool. It defines tracing macros/fns to help you see what your code is doing.

Schema

The folks at Prismatic have open sourced [https://github.com/prismatic/schema][Schema]], a Clojure(Script) library for declarative data description and validation..

Web Sites

Introductory

4Clojure

4Clojure is a resource to help fledgling clojurians learn the language through interactive problems.

A busy person's introduction to Clojure

Edd Dumbill wrote this very accessible (nay, charming) blog, based on the notion of solving a trivial but interesting problem.

Anatomy of a Clojure Macro

Bryan Gilbert wrote this very accessible blog, which explains some of Clojure's macro-writing syntax.

Clojure - Functional Programming for the JVM

R. Mark Volkmann wrote this introduction and reference several years ago, but the latest update (6/2013, at this writing) is quite current. It's definitely worth a read...

Clojure Flashcards

Clojure Flashcards is a set of 168 (virtual) flash cards, intended to help beginners learn basic Clojure vocabulary.

Clojure for the Brave and True

Daniel Higginbotham's Clojure for the Brave and True is an introductory web site on topics related to Clojure (eg, Emacs, macros, the REPL).

Clojure from the Ground Up

Clojure from the Ground Up aims to introduce newcomers and experienced programmers alike to the beauty of functional programming, starting with the simplest building blocks of software. You'll need a computer, basic proficiency in the command line, a text editor, and an internet connection. By the end of this series, you'll have a thorough command of the Clojure programming language.

clojure-interactive-tasks

clojure-interactive-tasks is a set of animated tasks to be solved by implementing Clojure functions. Clone them from GitHub and run them locally.

Clojure Koans

Clojure Koans are exercises meant to initiate you to the mysteries of the Clojure language.

Clojure Programming / Tutorials and Tips

Clojure Programming / Tutorials and Tips provides a curated (but dated) summary of available materials.

Functional Programming in Clojure

Functional Programming in Clojure This is an online course on Functional Programming, using Clojure.

Flying Machine Studios

Flying Machine Studios (adventures in making stuff) has some nicely-written and informative blog posts by Daniel Higginbotham. Several of them are on Clojure (eg, The Unofficial Guide to Rich Hickey's Brain, Compiling and Running a Java Program, Understanding lein run, Leiningen's Trampoline).

Getting Started with Clojure

Getting Started with Clojure is a quickstart guide, aimed primarily at Mac OS X users.

Learn Clojure

Learn Clojure is an attempt to gather together everything you will need to learn Clojure, assuming that you already know another programming language or two or three.

Try Clojure

Try Clojure provides a quick tour of Clojure for absolute beginners..

Reference

A Concise Guide to Clojure (under construction)

David Matuszek put together this nifty short reference back in 2011.

Clojars

Clojars is a dead easy community repository for open source Clojure libraries.

Clojure (official site)

The Clojure site has the following major sections:

Clojure Atlas

Clojure Atlas provides instant access to documentation, source, lovingly-crafted conceptual relationships, and a dynamic visualization of how everything ties together.

Clojure Doc Site

Clojure Doc Site is a community-driven documentation site for the Clojure programming language.

Clojure Grimoire

Clojure Grimoire - Even the most powerful wizard must consult grimoires as an aid against forgetfulness.

Clojure Key Concepts

Clojure Key Concepts is my (WIP!) attempt to summarize Clojure's key concepts. Each concept has a short description, including links to supporting material.

Clojure Quick Reference

Clojure Quick Reference is a single page summary of Clojure.

Clojure Style Guide

Clojure Style Guide is Bozhidar Batsov's attempt at a style guide for Clojure.

Clojure vs. [Racket,Scala]

Clojure vs. Scala and Racket vs. Clojure are a thoughtful pair of blogs by Mark Engleberg.

Clojure Werkz

Clojure Werkz - "A growing collection of open source Clojure libraries that support multiple Clojure & JDK versions, licensed under the EPL, target Clojure 1.3+. We value solid documentation, the "batteries included" philosophy, consistent clean APIs, contributor-friendly development process built around GitHub and Travis CI."

ClojureDocs

ClojureDocs is a community-powered documentation and examples repository for the Clojure programming language.

ClojureScript Koans

The ClojureScript Koans walk you along the path of enlightenment to learning ClojureScript. You will explore the mysteries of the ClojureScript language through a series of interactive exercises in your web browser.

ClojureSphere

ClojureSphere - Browse the open-source Clojure ecosystem.

ClojureTV

ClojureTV is the canonical location for Clojure videos.

Collaj

Collaj does interactive searching for Clojure code.

Disclojure

Disclojure is a website devoted to news about Clojure.

PLEAC-Clojure

The PLEAC (Programming Language Examples Alike Cookbook) project collects examples from the Perl Cookbook, rendered in other languages. For Clojure, see PLEAC-Clojure.

The Weird and Wonderful Characters of Clojure

The Weird and Wonderful Characters of Clojure details assorted uses of characters and character combinations (eg, #, #{, #_, #", #(, #', %, ^).

Why use Clojure?

Why use Clojure? is Brennon York's well-written precis of Clojure's approach and benefits.


This wiki page is maintained by Rich Morin, an independent consultant specializing in software design, development, and documentation. Please feel free to email comments, inquiries, suggestions, etc!

Topic revision: r48 - 15 Jul 2014, RichMorin
This site is powered by Foswiki Copyright © by the contributing authors. All material on this wiki is the property of the contributing authors.
Foswiki version v2.1.6, Release Foswiki-2.1.6, Plugin API version 2.4
Ideas, requests, problems regarding CFCL Wiki? Send us email