El lenguaje de programación Clojure lo podemos definir bajo las siguientes caracteristicas:
- Es un dialecto de Lisp
- Permite el uso de Progrmación Funcional (Functional Programming)
- Es simbiótico con la bien establecida plataforma de Java (JVM)
- Diseñado desde su incepción para la concurrencia
Su sitio oficial es http://clojure.org/
Este lenguaje para la JVM es uno de los más dispares al lenguaje Java. Esto último implica que verdaderamente hace ver nuestro lenguaje predilecto Java (o bien C#, Python, Ruby, etc) bajo una perspectiva totalmente diferente y provoca ese re-pensar tan interesante.
Una de las promesas y aspectos escencial de este lenguaje es su elegancia. Esta elegancia radica en la brevedad de los programas que se producen una vez que se aprende lo básico e idíomatico del lenguaje. Programas cortos son baratos en su construcción, baratos al ser deployados, y baratos en mantenimiento. Todo esto último es verdad cuando los programas son concisos.
Ejemplo:
public class StringUtils {
public static boolean isBlank(String str) {
int strLen;
if (str == null || (strLen = str.length()) == 0) {
return true;
}
for (int i = 0; i < strLen; i++) {
if ((Character.isWhitespace(str.charAt(i)) == false)) {
return false;
}
}
return true;
}
}
en Clojure:
(defn blank? [str] (every? #(Character/isWhitespace %) str))
Aunque Clojure es un dialecto de Lisp, es ante todo un lenguaje pensado para ser práctico.