Clojure world domination 2014

Languages, not paradigms

I offer a brief peek at recent and older developments on programming languages and how they relate to some topics outside
the field of computer programming. And building on that somewhat unconventional base I’ll explain why Clojure is totally
awesome.

Most striking perhaps is the design where form and function are interconvertible. This is based on
so called Lisp macros and
REPL which neatly addresses
Sapir-Whorf hypothesis by making the language fully extensible and unconstrained.

In fact, Lisp is “unconstrained” in a very real sense. Lisp macros are actually a full blown
Turing complete metaprogramming language, which sidesteps
the limitations of context free grammar required to define the core Lisp and it’s evaluator (compiler).

1972 programmers find logic

Mycroft Holmes is very excited. He finally gets to resign from
his human computer post since Prolog takes his place with it’s fact-based data storage and logic programming.

1998 Java Architect denounces Java, praises Lisp

In a great talk titled Growing a Language Guy Steele,
one of the main architects behind Java, admits that Lisp got it right when they made the language
extensible with the macros. He states it in no uncertain terms:

“I should not design a small language, and I should not design a
large one. I need to design a language that can grow. I need to plan ways in which it might
grow—but I need, too, to leave some choices so that other persons can make those choices
at a later time”

2000’s known programmers admit using Lisp

In 2006 Steve Yegge talks about his experiences and why Java was not enough
in the end though the first samples were free.

2007 Lisp is revived from the graveyard

Secretly Rich Hickey has listened to all of this. After reading a remarkable collection of
extraordinarily fine literature he has created a new
form of Lisp.

The time is now ripe. The voice of Rich Hickey booms:
>”repent now thou Java programmers, I give thee a practical Lisp thou and all thy kin can use.”

Nobody listens.

2010 (let [datomic (loose :on :the :world)]

Rich Hickey’s hammer and anvil are steaming hot. With some friends he forges a new database which combines
Prolog’s fact based view of data with a practical implementation and powerful query language.
Putting time and revision history in is a nice plus.

Nobody understands Datomic but the bang of the hammer is now heard far away.

2012 and 2013 Public sightings of Clojure programmers

There is a great disturbance in the Force

What we now have therefore is a practical JVM stack where data, form and function are all interconvertible
and expressible in the same very powerful, yet elegant language. There is no “impedance mismatch”
in this stack.

I stand in awe.

The “functional train” is leaving the platform!

Last week we got a greenish light to go ahead with Clojure in our project. Solita has been running Clojure
code in production for some time now, but this is the first real world Clojure project for me. I have been
sitting on the metaphorical “functional train” for some years already. Patience is a virtue and
now we are finally moving!

While Clojure is currently tied to JVM platform - a burning one one might argue - it is now
reaching out to others. With Datomic and Clojurescript the
stage for world domination is set.

I look forward to enjoyable, speedy and luxurious ride on this functional train.