Clojure: ¿Qué es y para qué sirve?

Descubre los detalles y beneficios de este lenguaje de programación que nació en 2007 tras el descontento del fundador por la escritura de programas presentes en Java y C++.

 

Clojure es un lenguaje de programación de propósito general. Lo utilizan muchas empresas, grandes y pequeñas, incluidas Amazon, Staples y Walmart. Es particularmente eficiente en el procesamiento de datos y la programación concurrente, dos procesos que cada vez son más relevantes en informática.

Su origen

Clojure fue escrito originalmente por Rich Hickey y lanzado como código abierto en 2007. Actualmente es mantenido por Cognitec, la compañía en la que Rich Hickey es cofundador y CTO, con la ayuda de 125 colaboradores. El ciclo de lanzamiento favorece la compatibilidad con versiones anteriores y la estabilidad, pero el lenguaje continúa desarrollando características nuevas y potentes. Rich Hickey no estaba satisfecho con la escritura de programas concurrentes en Java y C++ e hizo varios intentos para encontrar una solución hasta finalmente escribir Clojure.

¿Qué hace que Clojure sea único?

Clojure es único en varios sentidos. Una es que fue diseñada para ser un lenguaje alojado. En lugar de definir su propia plataforma (como Python, Ruby, Java, etc.), Clojure estaba destinado a aprovechar las plataformas existentes y construir sobre ellas. Este sistema actualmente se desarrolla en dos plataformas, Java Virtual Machine y JavaScript. Esto le da a Clojure un alcance increíble. Además puede ejecutarse donde sea que lo haga Java, es decir desde cualquier navegador web o cualquier dispositivo móvil.

Este lenguaje ha innovado varias estructuras de datos de alto rendimiento. Estas estructuras de datos se usan mucho en los programas típicos de Clojure. Son inmutables, lo que significa que no pueden cambiar una vez que se hacen. Como son inmutables, eliminan muchos errores típicos encontrados en la mayoría de la programación concurrente.

“Clojure es bastante sólido. Se integra con el ecosistema de herramientas de Java, por lo que los depuradores y perfiladores de JVM funcionan de inmediato” señala Hickey.


¿Cómo son las herramientas?

Las herramientas para Clojure son bastante maduras. La mayoría de los programadores usan el editor Emacs con una extensión llamada CIDER, que ofrece potentes operaciones en código y sistemas en ejecución. Sin embargo, hay un número considerable de usuarios de vim y hay una extensión para IntelliJ IDEA (un IDE de Java) llamada Cursive que brinda una experiencia IDE más tradicional.

La principal herramienta de gestión de proyectos se llama Leiningen. Gestiona dependencias, implementaciones y versiones versionadas. Se conecta a Maven, donde tiene acceso a miles de bibliotecas Java. Pero, por lo general, las bibliotecas Clojure se implementan en un servicio administrado por la comunidad llamado Clojars, que alberga principalmente bibliotecas Clojure.

¿Cuáles son los principios detrás del diseño de Clojure?

Rich Hickey ha establecido varias grandes ideas en el mundo de la programación desde el inicio de Clojure en 2007. Una idea es una definición objetiva de simplicidad, la simplicidad se trata de cuán entrelazados están los conceptos y las construcciones entre sí. La noción de simplicidad de Clojure permite a los programadores deconstruir los problemas en partes pequeñas y armar una solución a partir de componentes estándar. Significa soluciones más robustas más rápido.

Clojure es un gran lenguaje. Todo está configurado para el futuro de las máquinas multinúcleo debido a su enfoque en la concurrencia. Y es perfecto para nuestro mundo de software cada vez más complicado. Maneja muy bien la complejidad del software al brindar potentes herramientas de abstracción.
 

Fecha: 17-03-2020