Rich Hickey on Clojure
And once again we are here, talking about Lisp. But this entry will be talking about Lisp indirectly. In this post I’m going to talk about the podcast “Rich Hickey on Clojure”. Who is Rich Hickey? The designer o creator of Clojure and what is Clojure? A functional programming language based on Lisp.
What really caught my attention here is that Rich Hickey mentioned that the failure of Lisp or the reason why Lisp was not mainstream is because it was not designed to be that. It was designed to be used by “super users, researches and smart people” that want to solve hard problems. Basically, this can be considered as one reason of Clojure’s existence.
We can say that Clojure is an old or traditional Lisp, but with some important differences or improvements. Traditional Lisp is practically lists of lists or nested lists, while Clojure does not stay only in that data structure, but also involves vectors and maps. This is important because those data structures work as a regular library on the language so that we can say that programming and metaprogramming can be interpreted as the same.
Once again Macros were mentioned, it is clear for me that they’re really powerful. Hickey said that they’re an ordinary data structure processing code and that they can actually run on compiling process. They key point is that, normally, programmers want to write code only once and reuse them (encapsulate) and this is why Macros gives Clojure (and Lisp) the “syntactic extensibility” feature.
Another important Clojure aspect is that besides it has the power of Lisp, it also gives us full access to Java’s power. Clojure is a JVM-based programming language and it works with immutable data structures and transactional memory, meaning, among other things, that there would be concurrency.
All the points that I’ve mentioned in this entry makes me to start preferring Clojure before Lisp. I thought that Lisp was the powerful and better programming language, but Clojure has won that position and that excites me, because I’m learning to code on it.
Comments
Post a Comment