PurelyFunctional.tv: How did you get into Clojure?
Alexey Aristov: I don’t remember where exactly I noticed it. Perhaps, it was mentioned by one of my colleagues. I was familiar with Lisp, and it was a natural step for me to start experimenting with Clojure. It had happened in summer 2008 short before Clojure 1.0 was out.
PF.tv: What is your talk about?
AA: I will speak about otplike - an open source library that emulates some of Erlang/OTP concepts in Clojure. otplike provides developers with processes, linking and monitoring, registrations, supervision trees, gen_servers, timers. otplike is written in pure Clojure and internally uses core.async
During my talk, I will explain our motivation behind otplike, show several examples of how it can be utilized, and report our real project experience with it.
PF.tv: Who is your talk for?
AA: This talk is for software engineers who use Clojure to create complex concurrent applications. Also, it can be interesting for Erlang developers exploring Clojure world.
PF.tv: What do you hope people will take away from the talk?
AA: They will learn otplike, it's benefits and its limitations. I hope that after my talk people will get another tool in their toolbox.
PF.tv: What concepts do you recommend people be familiar with to maximize their experience with the talk?
AA: It’s will be very helpful to get familiar with core.async library and basic primitives it provides. Even more important is to have some understanding of Erlang/OTP.
PF.tv: What resources are available for people who want to study up before the talk?
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?
AA: While talking about otplike, I would also like to mention CSI ( ClojureScript Interface). It’s a thin connector, which lets ClojureScript applications to talk directly to Erlang backend. It consists of a ClojureScript implementation of ETF (Erlang Term Format) encoding/decoding and the WebSocket based protocol. By using CSI one can call arbitrary Erlang function, spawn processes, send and receive messages.
Although the code is available on GitHub it has no documentation, examples. If someone wants to help - why not to do something to make it more accessible for wider audience. Here are the links:
PF.tv: Where do you see the state of Clojure in 10 years?
AA: I doubt it will be a language that is used by a vast group of developers (as Java or Python). For me it’s more a power tool for software professionals that will use it to get their jobs done as good as possible. Already today we use it for projects in automotive industry and it helps our company to be efficient and competitive.
PF.tv: If Clojure were an animal, what animal would it be?
AA: That’s the most difficult question. As a wild guess, I would suggest that it’s maybe a Sloth. Sloth is a very lazy animal, and as we all know Clojure also has lot’s to do with laziness. 🙂