Datomic and LLVM

Welcome to our last meetup before the summer holiday period. We decided to be a little geek-er than usual, as consequence, the topics are more interesting than usual :-)

Join us at Green King, 26 June, from 6.30 pm.

Datomic (Nicolas Bousquet)

Rich Hickey, the creator of Clojure, has lately created Datomic, a new type of database that is distributed by design, declarative, and embraces immutability data fully. Datomic still has all you can think of in a new modern database like ACID transactions and query language, Datalog.

In this talk, Nicolas Bousquet will present some basic concepts of Datomic, its strength, and why it is an interesting concept.

A compiler can be seen from a monolithic point of view where a front-end part creates some intemediate representation (IR) and then a back-end part that creates machine codes from the IR. The back-end codes are typically full of codes specific for the targeted machine.

We can see Java Byte codes and JVM, the most popular target platform of Scala and Clojure, are actually an IR. JVM then provides some optimizations like JIT to specific machines. The JVM approach then allows the programming language designers to focus on the front-end codes and rely on the optimization done in JVM.

LLVM provides IR that allows programming language designers concentrate on the front-end part of their compiler. It is an open source effort, and there have been a lot of languages using it. There is , for example, an effort to do Scala backed up by LLVM.

On this session, Christophe de Dinechin from Taodyne will lead the discussion on LLVM. He is a programming language designer that targets LLVM. So, who can be better than him to share the view of LLVM ?

Who can ignore an important progress of functional programming lately? You may have also heard that functional programming is more adapted to multi-core, parallel, easier to reason with, supported in the cloud, and all those buzz words you may have heard from functional programming evangelists.

But it is more than those things. Scala and Clojure are two languages modern, expressive, and most of all fun to work with. The fact that these two languages target JVM has opened an important horizon of adoption.

Despite of its popularity, the discipline of functional programming and the programming languages may not be that straight forward, especially with the hegemony of object oriented programming in the software engineering.

We don't intend to completely replace our knowledge with new one..., no, no, no. We just want to open new horizon, new challenges, to write better software, and we're convinced that Scala / Clojure are the right tool to do so.

The program of this group consists of monthly friendly, informal meet-up where we can discuss codes, latest news, presentation.