domingo, 31 de agosto de 2014

Clojure ... interoperabilidad con Java

"Clojure ... ese lenguaje inventado por sumerios"
- Phillips, el programador anónimo

¿Qué puedo hacer con Clojure que no pueda hacer en Java?, para responder esta pregunta hay que entender que la filosofía que manejan ambos lenguajes es distinta,básicamente:
  • Clojure es funcional 
  • Java es orientado a objetos
;; un simple mensaje en Clojure
(println "Clojure es un lenguaje funcional ...")  


//en Java escribimos más código
class Mensaje{
     public static void hola(){
           System.out.println("Java es orientado a objetos");
     }
}

Clojure permite interoperabilidad con Java (al ser dependiente de la JVM), podemos hacer uso de sus librerías. También podemos hacer uso de clases en nuestros scripts.

En este ejemplo vamos a mostrar una ventanita tipo alert con ayuda de Java Swing (javax.swing).

;;importamos la librería
(import '(javax.swing JOptionPane)) ;'
;;hacemos uso de JOptionPane.showMessageDialog(null, "Algo")

(JOptionPane/showMessageDialog nil,
     (str "Mensaje desde Clojure")
)

Ejecutar: java -jar clojure-1.6.0.jar matematico.cjl

Al ejecutar el código se verá así:

Si queremos saber el nombre del sistema operativo:

(import '(javax.swing JOptionPane));'
;; obtenemos el nombre del SO
(def sistema(. (. System (getProperties)) (get "os.name")))

    (JOptionPane/showMessageDialog nil,
       (str "Estas usando "sistema)
)


Obtenemos:


Más sobre interoperabilidad con Java: http://clojure.org/java_interop

No hay comentarios:

Publicar un comentario

WMIC

¿Has tenido la necesidad de obtener  la licencia OEM de tu PC o alguna otra característica técnica?  Usualmente existen herramientas visua...