En protOS tenemos un equipo de programación y tecnología joven y ágil. Todos los miembros pensamos que para poder ofrecer las mejores soluciones en el sector de la educación, es imprescindible estar al día y conocer todas las ventajas que las últimas tecnologías pueden aportar.
Siguiendo estos principios, para programar algunas de nuestras aplicaciones, hemos empezado a usar uno de los lenguajes de programación más potente en el panorama actual, Clojure:
Clojure es un lenguaje funcional que está basado en la máquina virtual de java (JVM), concretamente es un dialecto de LISP y está pensado para favorecer la inmutabilidad en todas las partes del lenguaje reduciendo así la gestión de los diferentes estados de las variables. Al ser un lenguaje funcional nos enfrentamos a un paradigma totalmente diferente a lo que se suele usar hoy en día (orientación a objetos) pero pensamos que el tiempo de desarrollo se reduce de forma drástica y es menos propenso a generar errores.
Una parte importante por la cual nos hemos decidido a usar el lenguaje es que parte del equipo tiene amplia experiencia en Java y todo su ecosistema. Al final clojure genera un archivo .jar que es ejecutado como cualquier otra aplicación java, sin ninguna diferencia. Esto implica que podemos utilizar, mediante una tecnología llamada «java interop», cualquier librería existente de Java para realizar cosas que necesitemos y de este modo no reinventar la rueda.
Además de Clojure también estamos usando ClojureScript que es un lenguaje (subset de Clojure) que compila a Javascript generando código eficiente, compacto y compatible con todos los navegadores (también se podría usar en el servidor con NodeJS). Usamos ClojureScript con librerías como reagent para crear componentes de ReactJS para el frontend. De esta forma con el mismo lenguaje de programación tenemos código frontend y backend.
Al usar este lenguaje hemos comprobado una mayor agilidad de desarrollo, una mejora en la fiabilidad, una reducción de las líneas de código escritas y finalmente tenemos un mejor rendimiento en nuestras aplicaciones.
Sergio Velasco – Lead Developer @ProtOS