Rich Hickey on Clojure
The main characteristics of Clojure are pretty interesting, it is a lisp, it is designed to be hosted that solving one of the principal problems that lisp had, because it was not as easy target for all audiences, because of that Clojure runs in the JVM, it is a functional language so we have the cores of functional programming pure functions and immutability of data structures and it has a focus in concurrency.
In a Lisp the data structures that you use in an everyday basis are the ones used by the actual language to function, so they are very well tested supported and usually you do not need to reinvent the wheel to work with your own data and an important point of that is that there is not a big leap from normal programming to meta programming since the two of them use the same data structure and functions to process them.
Being openly in the JVM mean it can access all the java functions an interact with java programs solving one of the problems more prevalent in Lisp that was made for a few smart people without the ability to easily share with others being on the JVM solves this problem providing easy access to libraries and a way to share code.
Having immutable data in its core structures makes it friendly to concurrency for the easy and simply reason that you don't have to deal with states, with object oriented you begin to struggle at a certain point when you increase the complexity, some may say that if you do it well you don't have anything to worry about but most of the time that “well” means perfectly and that does not happen in the real world, while coding you will always have to have in mind what side effects your functions may have and how they will impact other functions
Comentarios
Publicar un comentario