Clojure

Un lenguaje más de la JVM, similar a Lisp.

Nightcode

Encontré este editor escrito en clojure que me pareció muy interesante.

El código esta en Github y el sitio es:

http://nightcode.info/

Por si les interesa.

Chau!

JavaOne 2012 charlas técnicas en YouTube

El equipo del Oracle Learning Portal publica las charlas técnicas impartidas en la JavaOne 2012 en su canal de YouTube.

Las charlas son variadas y no tienen desperdicio, las pongo aquí para que las puedan aprovechar.

JavaOne 2012 Technical Tracks:

  1. Core Java Platform (69 videos)
  2. Development Tools and Techniques (75 videos)
  3. Emerging Languages on the JVM (35 videos)
  4. Enterprise Service Architectures and the Cloud (66 videos)
  5. Java EE Web Profile and Platform Technologies (81 videos)
  6. Java ME, Java Card, Embedded and Devices (78 videos)
  7. JavaFX and Rich User Experiences (48 videos)

Y aquí el canal de Oracle Learning Portal.

Clojure ... comparativa con Groovy

Entrar al REPL de groovy

groovysh

Entrar al REPL de clojure

java -jar clojure-1.3.0-RC0.jar

Ejecutar programa *.groovy

groovy tuPrograma.groovy

Ejecutar programa *.cjl

java -jar clojure-1.3.0-RC0.jar tuPrograma.cjl

¿Cómo salgo del REPL de groovy?

exit y/o quit

¿Cómo salgo del REPL de clojure?

En Windows: Ctrl + C
En Linux: Ctrl + D

Definir variables

variables.groovy

/*se puede usar la síntaxis propia de Groovy*/
def entero=3
def real=3.4
def cadena="La cadena que es una simple cadena"
def caracter='a'
/*o la de Java*/
int entero=9
double real=23.1
String cad="En este verano espero comer mucho brocoli"
char caracter='e'

...
...
def a=9
def b=3
def suma=a+b
println("Suma de ${a} y ${b}  es: ${suma}")

variables.cjl

(def entero 23) ;; tipo int
(def real 4.6) ;; tipo double

Clojure .. primer vistazo

¿Cómo entro al REPL de clojure?

java -jar clojure-1.3.0-RC0.jar

Debe salir esto:
user=>

¿Cómo salgo del REPL?

En Windows: Ctrl + C
En Linux: Ctrl + D

Hace tiempo que quería probar este lenguaje, y aprovechando las vacaciones por fin pude. Si Scala y Ceylon se me hacían algo "extraños", este en verdad si que lo es.

Hacer una sumatoria es bastante fácil (al menos así parece):

user=> (+ 3 4 5 6) <br/>  18

En Java:

Sumatoria.java

package com.pruebas.01;
public class Sumatoria{
   public static void main(String[] args)throws Exception{
    int suma=0;  
   if(args.length!=0){
        for(String e: args){
        suma+=Integer.parseInt(e);
 
       }
  System.out.println("sumatoria: "+suma);

      }else{

Videopodcast de ViveCodigo, Episodio 13 Temporada 0: Clojure

En este podcast entrevistamos a Andrés Gómez, quien es el representante principal de la comunidad de Clojure México y nos vino a platicar acerca del lenguaje, compartiendo su experiencia y la forma en la que nos podemos introducir a desarrollar con este paradigma funcional que corre sobre la JVM.

El post y más información:

http://vivecodigo.org/2012/02/07/podcast-13-de-la-temporada-0/

Charlas de Clojure, jueves 12 7pm

Les extiendo la invitación a las charlas de Clojure (lenguaje basado en lisp que corre sobre la JVM)

La cita es este Jueves 12, a las 7pm en Fractal Media:
(de 7 a 9pm, el lugar cierra a las 9 así que la charla empezará puntualmente, no hay problema en llegar antes)


Insurgentes Sur 429 int 21
En la colonia Condesa, entre Aguascalientes y Tlaxcala
Frente a la salida del metrobus Chilpancingo del lado de la farmacia y el Sanborns, justo al lado de La Fogata.

Los invito a registrarse a las charlas en:
https://clojure_mexico.stagehq.com/

Laptops, botana, refrescos y chelas son bienvenidos.

Dudas, comentarios e interesados en hablar de algo o sugerir algun tema:
en twitter @clojure_mexico

Saludos!

Concurrencia sin dolor en Java puro, parte 2

En el post anterior, ya vimos lo difícil que es manejar concurrencia en Java, cuando usamos únicamente las herramientas que nos ofrece el JDK. Algunos llaman a este modelo synchronize and suffer.

En esta segunda parte, veremos una alternativa, implementada desde hace mucho tiempo en Lisp, y recientemente en Clojure, un lenguaje alterno para la JVM basado en Lisp. Este modelo de llama memoria transaccional, o STM, Software Transactional Memory.

Clojure

Clojure es un lenguaje alternativo para la JVM, basado en Lisp. En Clojure no hay variables, todo es inmutable. Sí, otra vez: en Clojure no hay variables. O si de plano no pueden concebir algo así, entonces pueden verlo de esta forma: en Clojure, todas las variables son inmutables. Es decir, una vez que asignan un valor a una variable, no se puede volver a modificar. Cuando dicen a=1, ya no pueden posteriormente cambiar el valor de a (por lo tanto, si ya no pueden variar, no se pueden llamar variables... se llaman valores).

Clojure

Según la misma descripción que dan desde el sitio oficial de Clojure

" Clojure es un lenguaje de programación dinámica que se dirige a la máquina virtual de Java. Está diseñado para ser un lenguaje de propósito general, la combinación de accesibilidad y el desarrollo interactivo de un lenguaje de script con una infraestructura eficiente y robusto para la programación multiproceso. Clojure es un lenguaje compilado - que compila directamente al código de bytes de JVM, sin embargo, sigue siendo completamente dinámico. Cada función compatible con Clojure se admite en tiempo de ejecución. Clojure proporciona un fácil acceso a los marcos de Java, con notas de tipo opcional y la inferencia de tipos, para garantizar que las llamadas a Java pueden evitar la reflexión."

Aquí les dejo un buena entrada a este blog en donde le dan un recorrido a lo que es Clojure. De donde nace, como, de que se trata y por que la gente de Lisp se esta pasando a este lenguaje.

http://batsov.com/Clojure/Java/2011/05/12/jvm-langs-clojure.html

Saludos!!

Distribuir contenido