Rick Hickey on Clojure
Rich Hickey the master mind behind Clojure introduces his creation which is a language based on Lisp, with a strong focus on concurrency and dynamic programming language for JVM.
Lisp is unique, it presents programs as data structures making "easier" to work with list, vectors, maps, etc. Another advantage of using Lisp is when using macros it's simpler than in other languages.
But why Rick has to create his own version of LISP?
Lisp seems promising but at the bottom, lacked of a robust platform, not to mention that it was tied to be a language for IA, so a "stucked" IA field made LISP stuck too.
But what about the innovations of Clojure:
Having programs represented as data structures means to have the potential to made programs to write programs, meaning meta programing will be simpler.
Some instructions are better encapsulated, Clojure manage that pretty well.
Clojure retained the power of Lisp but it's not just implemented, also it has the ability to "interact" with java problems adding dynamism instantly putting it out of the "island" Lisp were.
Also Clojure has simpler syntax.
What are the main differences between Lisp and Clojure?
Lisp has mutable structures which Clojure lacks (it has immutable structures, immutable data means don't make copies for instances, you only manipulate the path itself using the same "value", this avoid problems).
Clojure is modern with an API built upon abstractions behind all the date structures (meaning they are not just concrete structures)
Clojure provides some references types:
The Atom, which is synchronized and atomic (one at the time).
The Agent which is a synchronized and atomic.
The ref which changes inside a transaction, is synchronized and coordinated (it uses transaction memory).
Why a new language and not just add these functions on Lisp?
Because of the lack of idiomatic support, when programming with values it could be painful to use other Language than Clojure where it is "natural".
This podcast was made mainly to clarify doubts of the language program, giving a little bit of context, key attributes of the language, etc.
No hay comentarios.:
Publicar un comentario