After upgrading to Java 8, Clojure development seemed faster due to quicker REPL startup times. So when I saw a snapshot of Java 9 had been released I was hopeful that startup performance would be even faster.
As Clojure runs on the Java Virtual machine (JVM), each time you start a REPL then you wait for a new JVM to start. Other than this REPL startup, Clojure feels faster than developing with Java directly.
Here is how I set up Java 9 Snapshot on my Linux laptop (Ubuntu 14.10), it should be the same for any decent operating system.
When I teach people Clojure I use Light Table because it is really simple to use and its Instarepl gives instant feedback of the code as you type it. This feedback helps you understand Clojure quickly and gives you more confidence when coding.
As I do most of my Clojure development (and most everything else) in Emacs I really miss the excellent Emacs keybindings when I use Light Table. Luckily there is an Emacs plugin for Light Table, so here is a quick guide on how to install & use this Emacs plugin.
Sometimes its the little things that make a difference and after seeing how easily customise the Clojure REPL prompt with Leiningen I had a little hack with words, symbols and colours and came up with something nicer (in my opinion).
Dale Thatcher from the London Clojure community created a Clojure project that allows you to fly a plane in real time. Now, Dale has not yet connected this to a real plane, instead he is using the open source flight simulator, FlightGear.
I took Dale’s project for a test flight and here are my experiences!
A Clojure project managed by Leiningen uses a simple clojure file called
project.clj which allows developers to define a whole range of stuff about their projects. To get started you only have to define a name, a version of Clojure and any dependencies in your
project.clj and Leininge does the rest.
So lets take a quick look under the hood of Leiningen and its defproject macro to see what is going on.
Emacs is a really powerful tool for Clojure development, although without a guiding hand it can be a bit of a learning curve. Using the Emacs Live its really simple to get a fully featured development environment for Clojure. I will show you how to get Emacs Live installed and how to start using it for Clojure.
Emacs is fun to configure and if you have the basics of LISP or Clojure then its pretty easy too. After reading how to replace the text on the modeline I decided to customise my mode-line to make it more efficient for Clojure development. I’ll cover how I tweaked the mode line and added this customisation to my Emacs Live based configuration.
Even though I use
.gitignore files to control common files that should not be committed to a git repository, its very easy to forget about the backup or temporary files that my development tools generate. As these auto-generated files are development tool specific, they are not always included in a
Especially when you are under pressure to commit changes or deploy your code its easy to include a few things you dont need, especially when using the commands
git add . or
git commit -am "".
So when I discovered the idea of using a
.gitignore_global file, I quicky adopted this and saved myself a lot of time with this simple approach.
So as soon as I decided to write about LightTable, the developers go and improve a whole bunch of things. With the 0.2.3 release that happened earlier today the configuration of LightTable now works correctly.
This change is going to make it so much easier to use LightTable for demo’s and coding dojo’s. The has been an update to the default solarized light theme that looks very pretty to me.