clojure

  • 2nd June 2015

Java in a polyglot JVM world

The trend over the last few years has been clear, the number of viable platforms from which to build software systems has been growing. Not that many years ago, things would be either: Java, C++, Visual Basic or one of the many long-forgotten but once popular languages like Delp…

Read more 
  • 27th December 2014

group-by and Transducers

One of the random, but very useful, functions in clojure.core is the venerable group-by. Simply take a collection of something, a function to extract a key, and it returns a map of the same data indexed by the key. It's incredibly useful, I use it all the time. But it's also an…

Read more 
  • 21st December 2014

Rust

Like every other developer on the internet, I've been watching the rise of Rust with interest. I've spent the majority of my career in high-level language land, although I did do a lot of C++ once upon a time, and Rust may have passed me by with it's focus around low-level conce…

Read more 
  • 7th December 2014

The folly of benchmarks

In my previous post The power of lazy sequences I fell in to a trap. A common trap, one which most of us fall, some of us quite regularly. I talk, of course, of trying to measure execution time. In my defence, given the context of that post, some kind of elapsed-time measuremen…

Read more 
  • 22nd March 2014

The power of lazy sequences

The selling-pitch for the concept of lazy evaluation includes the claim that they can, if used in the right way, improve performance. Indeed, the new Stream API in Java 8 vaguely references that laziness exposes "opportunities for optimisation". But how much effect can this have…

Read more