"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
(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
Comentarios
Publicar un comentario