Asher Coren will be giving a talk at Clojure/conj 2016. He and his team have created the world's first web-based audiometer using ClojureScript at Audyx.
PurelyFunctional.tv: How did you get into functional programming?
PF.tv: What is your talk about?
AC: Writing a large scale client side web app all in ClojureScript involves many challenges. I will talk about some of the challenges we faced, and how we handled them.
PF.tv: Audyx sounds like quite a feat of engineering. What were some of the biggest challenges?
PF.tv: Were there any difficulties working with such a large ClojureScript code base?
AC: The main difficulty was keeping the code well structured, with the correct separation between the different components. In a code base with close to 300 ClojureScript files, it is very important to have a well-organized structure. This also affects the compilation time, where a change in code of one file requires recompiling of all the files that depend on it.
PF.tv: How did you come to the decision to use ClojureScript?
AC: Well, as I said before, it wasn't really my decision... it took me quite a long time before I fell in love with ClojureScript.
PF.tv: What do you hope people will take away from the talk?
PF.tv: What concepts do you recommend people be familiar with to maximize their experience with the talk?
AC: Some of the things I will talk about will be common with Clojure, so some knowledge of Clojure will suffice to understand a major part of the talk . Some of the web specifics I will discuss are a couple of web frameworks: Angular and Om, some HTML5 WebAudio code, and the browser developer tools, mostly the developer console and the local-storage.
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?
AC: It's super easy to contribute to Clojure and ClojureScript. There are many useful libraries that could use some more contributors. Also, the more people that use ClojureScript, the easier it will be for people to join on.
AC: I can also recommend my friend's blog where he discusses many interesting things about Clojure and ClojureScript. A great way people can help Audyx is by starring some issues we opened on the Chromium project. The WebAudio API is very new and not so commonly used, so every so often we find some annoying bugs in Chrome. Here are a few examples: issue 638823, issue 659641, and issue 647974.
PF.tv: Where do you see the state of functional programming in 10 years?
AC: Although functional programming has been around for a very long time, I think the Clojure ecosystem finally gives the opportunity for functional programming to become a serious player in the programming world. The fact that Clojure can be used in many different environments gives it a strong advantage.
PF.tv: If functional programming were a superhero, what superpower would it have?
AC: Detachable limbs: If the functions are the limbs of the code, pure functions can be moved around and used anywhere.