martes, 17 de septiembre de 2019

Blog 1-5: Rich Hickey on Clojure

Rich Hickey is the creator of the programming Language Clojure, he defines that Clojure is a dynamic language for the JVM (Java Virtual Machine). For traditional LISP programs were basically a set of nested lists, but for Clojure there were several other data structures that have the same first-class status (vectors and maps or also named hash maps).

LISP do not go mainstream because LISP was not defined to be a mainstream language this type of languages were used for the research topics and Artificial Intelligence. A very important aspect that LISP manages is that the MACROS are little programs that executes its scope on compilation time, with this in mind Clojure programs its programs. Rich Hickey says that the fact of having the opportunity of using the Java libraries is a feature that Clojure has over any other traditional LISPs languages.

It is important to remark that Clojure has more and different data structures than traditional LISP that only has de list data structures. Clojure was a programming language targeted to any open mind programmer working with a LISP with the particularity of having fun developing.

When we talk about simplicity on LIPS or in this case, Clojure it depends totally of the point of view and the familiarity of each person. Clojure has two primarily differences when we compare it with any other traditional LISP: first, in traditional LISP the core data structures are mutable in Clojure all of its data structures are immutable; second, Clojure API is design built upon abstractions, while in traditional LISP it uses libraries specifically for the data structure that it is being used. Also, it is important to mention that Clojure is a compiled language not an interpreted language.

Last but no least, the immutability Clojure feature has a very interesting impact, because when all your data structures and your data is immutable know you are able to remove all the locks of that data with the security that the data will never be corrupted. Taking a look back to Operating Systems, when two different processes tries to access the same file or data (one process for reading and another for writing) this will leads us to corruption of the file. So Clojure feature of immutability gives us the chance of removing all possible locks of the data or files.

No hay comentarios:

Publicar un comentario