PurelyFunctional.tv: How did you get into Clojure?
Emin Hasanov: One of my colleagues referred it to me a few years ago, when we were discussing new, interesting languages, that might be worth exploring. I looked at the language and it did not strike me as anything special at the time. I had a dislike for parentheses and was skeptical about this whole Lisp thing. However, once I watched Rich Hickey's famous "Simple Made Easy" presentation, I got really interested in the concepts, that he built into the language, and decided to explore more. I watched most of his other videos too and became convinced, that I have to learn the language, that is so thoroughly thought-out and well designed.
PF.tv: What is your talk about?
EH: I will be telling the story of how we built our mobile apps using ClojureScript and React Native. We have had a very good experience building a product using this combination and I want to share this with others. I will talk how and why we decided to choose this technology stack and why we think it is something that others might want to choose as well.
PF.tv: Who is your talk for?
EH: My talk is mainly aimed at people who are in the similar position that we were when we started - small team, tight deadlines, plethora of technology choices and infamous analysis paralysis, that stops them from actually building something. Wrong choice can result in a significant setback for the team, so I will be sharing our experience and hope that it will help someone make their decision.
PF.tv: What do you hope people will take away from the talk?
EH: Primary message of the talk is that you can actually build a very good product with ClojureScript and React Native. It will not be without its share of issues, but ultimately you can get up to speed very quickly and start iterating on the product, using the language you already love. We only had one developer on the team and yet were able to launch on both iOS and Android in 3 months.
PF.tv: What concepts do you recommend people be familiar with to maximize their experience with the talk?
EH: I think anyone who is attending EuroClojure will already know enough to understand everything I will be talking about. This talk is less about in-depth review of technologies and more about demonstrating how one can apply them to build products.
PF.tv: What resources are available for people who want to study up before the talk?
EH: Learning general concepts about React Native and Reagent might help to follow and understand better, but not a requirement at all. I also talk about Transit format and CodePush service, so checking them out may be useful too.
PF.tv: Where can people follow you online?
EH: I am @hasanove on twitter.
PF.tv: Are there any projects you'd like people to be aware of? How can people help out?
EH: We are using Reagent both for mobile apps and the websites and I highly recommend everyone to check this out. I believe this is one of the easiest way to jump into the development of React applications and you can apply those skills to building mobile apps as we did. I also sometimes feel that Transit format is underappreciated by the community and needs more love.
PF.tv: Where do you see the state of Clojure in 10 years?
EH: After Ruby and Rails 10 years ago, Clojure was the first language that really got me interested enough to start using it heavily in production. I hope that I will be using it more and more during next 10 years.
What I like about Clojure is that I can use it anywhere I need - on the server, in the browser, for mobile apps. It offers the same great paradigm everywhere, while having a good raw performance to perform most of the task that we currently face.
So, while I can't say that I know where it will be, I would very much want it to become the mainstream language and bring beauty of lisp to masses. I am far from being an expert, but I think it is such a greatly designed language, that anyone can benefit from learning and using it.
PF.tv: If Clojure were an animal, what animal would it be?
EH: Octopus! The thing about octopus is that most of its neurons are not in brain, but in arms, so every arm has a sort of mind of its own, while still being a part of a bigger body. In a similar way, Clojure as a language has a small core, but its powerful features allow having things like core.async as libraries and its embrace of host platforms allows it to exist in multiple different environments. I am probably overthinking this question though. 🙂