Simon Gray's blog

My humble place on the web; entirely home-made and up since .

A hydrated SPA architecture using Rum

...with special guests: Transit and Pedestal.

To anyone who is not my future self: these are my notes on the architecture of a web application used to browse the next version of the Danish WordNet: an RDF graph and its associated ontologies.

At this point, I have several years of experience working with reagent which—I believe—is still the simplest way to create a 'reactive' single-page app (or 'SPA' for short) in ClojureScript. However, I had still not created a properly 'hydrated' SPA, which is the nomenclature used to describe single-page apps that are prerendered server-side and subsequently made to come alive in glorious, reactive dynamism on the client.

Reagent's strengths

Keep reading ↪

Clojure: the Lisp that wants to spread

NOTE: this blog post was originally published on my Github pages. At the time, it generated a lot of discussion on Hacker News.

From its humble beginnings, Clojure was always meant to be a “hosted” language. It is important to note that while the Clojure of today is definitely a tightly integrated JVM (Java Virtual Machine) language, there were always multiple implementations of Clojure.

The language was consciously designed with its host abstracted away, apart from the host-specific functions in the java namespace and in glimpses of Java interop code. The same held for the CLR implementation of Clojure for the .NET Common Language Runtime, released concurrently, with its very similar-looking interop code.

Interestingly, Rich Hickey made an implementation of Clojure in Common Lisp too, but abandoned it prior to the public announcement of Clojure.

Keep reading ↪