clojure00
Clojure es un dialecto de Lisp que ha atraído el interés entre programadores que buscan un lenguaje que adopte el enfoque funcional. La versión 1.6 introduce ahora nuevas características, mejorar al desempeño, impresión, documentación y mensajes de error, además de corregir los inevitables bugs.

Originalmente Clojure fue una idea desarrollad por Rich Hickey cuyo objetivo era la JVM. Clojure desde entonces ha sido portado a CLR (Clojure-clr) y a un compilador Clojure to Javascript, llamado ClojureScript. De acuerdo al sitio oficial, se diseñó para ser un lenguaje de propósito general, combinando el enfoque y la interacción de un lenguaje de scripts con una infraestructura eficiente y robusta para la programación multithread. Comparte con Lisp la filosofía del código y un sistema poderoso de macros, pero es predominantemente un lenguaje funcional, que tiene ricas características de estructuras de datos persistentes e inmutables. Cuando se necesita un estado que mute, Clojure ofrece un sistema de memoria transaccional y un sistema de agentes reactivos que aseguran diseños limpios, correctos, de programación en múltiples hilos.

La nueva versión da un API para Java que consiste en:

  • clojure.java.api.Clojure
  • clojure.lang.IFn

Proveé también nuevos algoritmos de hash para primitivas y colecciones, accesibles a través de IhashEq/hasheq (en Java) o funciones hash clojure.core/hash (en Clojure). Estos cambios son en principio transparentes a los usuarios, excepto los código hash usados dentro de las colecciones hasheadas (valga la expresión), como mapas y conjuntos que ahora tendrán más y mejores propiedades. Se introducen algunas operaciones, funciones condicionantes que complementan los valores verdaderos y falsos si se desea probar si un elemento es nil o no.

La actualización de Clojure es bienvenida pero la introducción de Java 8 y su soporte a lambdas ha provocado pensar si Clojure es una buena opción o no. Por supuesto que Clojure es un lenguaje funcional dinámico y es una buena opción en algunos casos. De hecho, no hay un mejor lenguaje.

Referencias:

Clojure

Enlaces Patrocinados
Comentarios