sábado, 26 de septiembre de 2015

Groovy en ejemplos no. 8 ... convirtiendo un archivo groovy a javascript

En el post anterior vimos un ejemplo usando Grooscript, ahora veremos como convertir un archivo *.groovy a *.js.  Escribiremos tres archivos:
  • Philosopher.groovy
  • conversor.groovy
  • Philosopher.js
En el primero tendremos la clase Philosopher. El segundo servirápara convertir ese código a javascript. El tercero es donde se contendré el código javascript generado.


Philosopher.groovy
class Philosopher{
    String nombre
    int edad
}



conversor.groovy
@Grab('org.grooscript:grooscript:1.2.1')

import org.grooscript.GrooScript

GrooScript.convert('Philosopher.groovy', 'Philosopher.js')



Ejecutamos: groovy conversor.groovy

Philosopher.js
function Philosopher() {
  var gSobject = gs.inherit(gs.baseClass,'Philosopher');
  gSobject.clazz = { name: 'Philosopher', simpleName: 'Philosopher'};
  gSobject.clazz.superclass = { name: 'java.lang.Object', simpleName: 'Object'};
  gSobject.nombre = null;
  gSobject.edad = null;
  if (arguments.length == 1) {gs.passMapToObject(arguments[0],gSobject);};
 
  return gSobject;
};


Es solo una forma de como convertir código groovy a javascript.

domingo, 20 de septiembre de 2015

Groovy en ejemplos no. 7 ... usando Grooscript


En esta ocasión usaremos Grooscript. Se trata de una herramienta para convertir código escrito en Groovy a Javascript.

GroovyToJavascript.groovy
//es necesario importar la librería grooscript.1.2.1
@Grab('org.grooscript:grooscript:1.2.1')

import org.grooscript.GrooScript


class Philosopher{
    String nombre
    int edad
}

def resultado = GrooScript.convert '''
    def kant = new Philosopher(nombre:"Immanuel Kant")
    kant.with{
        edad= 36
    }
'''

println resultado


Compilamos:
groovyc GroovyToJavascript.groovy

Ejecutamos:
groovy GroovyToJavascript.groovy

Nos imprimirá:
var kant = Philosopher(gs.map().add("nombre","Immanuel Kant"));
kant.withz(function(it) {
  return gs.sp(this, 'edad',36);
});


Podemos guardar el la salida en un archivo javascript:
groovy GroovyToJavascript.groovy > groovy.js


Para el siguiente post veremos más a fondo esta herramienta.



LiveScript: Creando una clase


Recordemos que Javascript es un lenguaje interpretado, permite la programación funcional y la orientada a objetos. Muchas veces, debido a su nombre,es confundido por Java.  Es un lenguaje de script para aplicaciones web.

El estándar Javascript
Algunos consideran que el estándar de Javascript ha fracasado y por esa razón ha proliferado una gama de nuevos lenguajes de programación como  TypeScript, CoffeeScript,LiveScript, etc. Puede ser verdad, estos nuevos lenguajes ofrecen escribir código más sencillo de leer y mantener que escribir líneas y líneas de código que muchas veces no todos entendemos.

En esta ocasión veremos un ejemplo de como crear una clase usando LiveScript y compararemos el código resultante en Javascript.

Tenemos el código LiveScript:

clase.ls
#creando clase en LiveScript
class Codemonkey
     numero= 0
     real= 0.0
     cadena= ''

#instanciando la clase
code = new Codemonkey
code.numero= 45
code.real= 9.009
code.cadena= 'Creando una clase'

Compilamos:
lsc -c clase.ls

Nos generará un código en Javascript:
Codemonkey.js
// Generated by LiveScript 1.3.1
(function(){
  var Codemonkey, code;
  Codemonkey = (function(){
    Codemonkey.displayName = 'Codemonkey';
    var numero, cadena, real, prototype = Codemonkey.prototype, constructor = Codemonkey;
    numero = 0;
    cadena = '';
    real = 0.0;
    function Codemonkey(){}
    return Codemonkey;
  }());
  code = new Codemonkey;
  code.numero(45);
  code.real(9.009);
  code.cadena('Creando una clase');
}).call(this);


Podemos observar que el código resultante es más complejo que el escrito en LiveScript. Aunque eso solo es una ventaja.


sábado, 19 de septiembre de 2015

LiveScript


LiveScript es un lenguaje de programación que compila a Javascript. Es muy parecido a otro lenguaje llamado CoffeScript. En este post veremos un ejemplo usando este lenguaje.

¿Cómo se instala LiveScript?
Instalar node.js 
sudo apt-get update
sudo apt-get install nodejs
sudo apt-get install npm
Instalar Livescript
 sudo npm install -g LiveScript

En la terminal de comandos teclear:
lsc --version

Hola.ls

cad= 'Programando en LiveScript'
alert cad


Compilamos: lsc -c Hola.ls

Nos genera un archivo JS con el siguiente código:
// Generated by LiveScript 1.3.1
(function(){
  var cad;
  cad = 'Programando en LiveScript';
  alert(cad);
}).call(this);



Pegamos el código JS generado (Hola.js) en una sencilla página html.

<script src="Hola.js" type="text/javascript">  </script >

Mostrara una ventana alert.



Links
http://livescript.net/
http://coffeescript.org/