Yoav Rubin will be giving a talk at Clojure Remote 2017. He will be speaking about the ideas of Datomic.
PurelyFunctional.tv: How did you get into Clojure?
Yoav Rubin: I needed to build a data preprocessing component in a project I worked on. The key requirements were the component's flexibility in terms of consumed data and extensibility to add processing funtionallity. After browsing around in many languages and technologies, it was clear that Clojure is the best language for such component. The fun I had in developing with Clojure pushed me to learn more and more about the language and its concepts, and later lead me to give an undergraduate course in Haifa University called "Functional programming on the JVM" in which I taught Clojure and its key ideas.
PF.tv: What is your talk about?
YR: Ever since Datomic was announced I was intrigued about how it is built and how it works. When I was invited to contribute a chapter for the book "500 Lines or Less", I Immediately knew that in my chapter I'll try to build my own version of that database. In the talk I will describe my understanding of what Datomic is, its mental model and how I designed and implemented several key features of that database (e.g., ACI transactions, graph queries and simple Datalog query engine).
PF.tv: Who is your talk for?
YR: My talk is for anyone who wants to learn more about the core ideas of Datomic and is interested in hearing about the software design considerations and implementation process of a functional database developed in 360 lines of Clojure.
PF.tv: What do you hope people will take away from the talk?
YR: The mental model of Datomic, as well as how much fun and productive Clojure is.
PF.tv: What concepts do you recommend people be familiar with to maximize their experience with the talk?
YR: The talk assumes working knowledge of Clojure. A basic understanding of the ideas behind persistent data structures and macros will probably make the talk easier for the listener.
PF.tv: What resources are available for people who want to study up before the talk?
YR: An online version of the chapter can be found here
PF.tv: Where can people follow you online?
PF.tv: Are there any projects you'd like people to be aware of? How can people help out?
YR: Anything that makes Clojure more accessible for developers to use.
PF.tv: Where do you see the state of Clojure in 10 years?
YR: 10 years ago clouds were something in the sky, mobile development was about houses that can be towed and people started to talk about Ajax. I don't know where anything will be in 10 years. I do know that there is a lot of effort invested in teaching young kids software development (from kindergartens to high schools). I hope we'll find ways to make Clojure and its ideas more accessible and more learnable so it would be part of such curriculum.
PF.tv: If Clojure were an animal, what animal would it be?
YR: Platypus - it's a language with syntax from the 50s (rooted in ideas from the 30s), running on top of platforms that started to be developed in the 90s, tailored for the design considerations and constraints of nowadays software systems.