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/

sábado, 18 de julio de 2015

Una pregunta ... ¿Por qué quieres ser programador?

"Algunos comienzan una cosa sin tener la más remota idea de como comenzar y lo peor aún ... como terminar"
 :: El Libro de los naufragios::

Hace algunos años les preguntaron a James Gosling y Linus Torvalds (por mencionar algunos) donde habían aprendido a programar y si realmente la educación universitaria fue la diferencia que marco el destino de sus carreras. Sus respuestas fueron: "No aprendí a programar en la escuela, sino por mi cuenta leyendo libros y practicando" y "al principio aprendí por mi cuenta. Conseguí mi primer trabajo como programador antes de ir a la universidad". Otros más dijeron que: "Las universidades me enseñaron muchas cosas útiles, incluso la mayoría de las bases que sería mi trabajo futuro".  Para estas "celebridades" de la informática el gusto y una buena educación académica fue esencial para ser programador. Pero ¿qué es un programador?  y más aun ¿existe la carrera de programador o desarrollador?.


  El programador (de una manera burda) es  quien, sin importar si tiene o no una carrera universitaria( la que sea) o hasta estudios básicos, escribe, documenta (en algunos casos) y depura los programas que la computadora ejecutará y obtendrá información útil para ser usada para cualquier propósito. Ahora bien esta cabe señalar que "esta carrera" no existe como tal. Un programador puede ser cualquier persona: un contador, un abogado, un médico, y ¡hasta un niño!. No, no se trata de una broma. Es la realidad.  Esta claro que por lo general los programadores vienen de carreras como Sistemas computacionales, Informática administrativa, Ingeniería en computación, etc. , pero ya no es raro encontrar gente que trabaja "haciendo programas" y no ha estudiado ninguna de esas carreras.  ¿La calidad de su trabajo tiene que ver con lo estudiado en la universidad?, ¿será que se equivocaron al elegir una profesión? ... algunas preguntas incomodas.

   Y si de preguntas incomodas hablamos ... se les podría hacer la siguiente: ¿por qué quieres ser programador?. Habría respuestas como:
  • Me gusta la computación y la tecnología
  • Se gana muy bien como programador
  • No lo sé, creo me gustan los retos
  • etc.
Yo creo que tiene que ver más por el gusto aunque la necesidad también puede ser.

Links
https://blog.udemy.com/es/cinco-preguntas-de-perl-para-una-entrevista-que-cada-programador-debria-saber/


domingo, 31 de mayo de 2015

Programando en C# no. 5 ... System.Windows.Forms en Mono

En este post tan solo veremos como crear una ventanita usando System.Windows.Forms desde una aplicación C# (usando el compilador mono).

¿Por qué mono?
Porque me parece adecuado para quienes quieren aprender .Net sin necesidad de instalar Windows. 

¿Por qué no usar Wine para instalar Visual Studio .Net?
Porque siempre hay algún error al instalar dependencias en Linux, al menos así los he tenido. Creo que la mejor opción es siempre usar  Visual Studio desde Windows.

Hola.cs
using System;
using System.Windows.Forms;

public class Hola{
    public static void Main(string[] args){
       
        try{
           MessageBox.Show("Hola, estoy usando windows forms desde Linux");
        }
        catch(Exception ex){
            Console.Error.WriteLine("Error: ["+ex.Message+"]");
            Environment.Exit(0);
        }
    }
}


Compilar: mcs Hola.cs -r:System.Drawing.dll -r:System.Windows.Forms.dll

Ejecutar: mono Hola.exe

Salida:

sábado, 23 de mayo de 2015

¿Por qué Perl?


   Tal vez a muchos no les llame la atención el lenguaje de programación Perl, tal vez ni sepan que existe, o que ventajas o desventajas tiene con respecto a lenguajes como Java o Python. Sin embargo, considero que no se pierde el tiempo en conocerlo.

   Cuando recién iniciaba la carrera, los profesores recomendaban usar lenguajes como C para aprender los conceptos básicos de la programación. Conforme pasaba el tiempo hablaban de lenguajes o entornos de programación como Visual Basic o Delphi (Pascal) y según ellos eran los ideales para conseguir un trabajo. Después con el boom de las aplicaciones web, PHP se convirtió en el lenguaje más popular.

 

  Lenguajes como Java y C# comenzaban a tener más adeptos, así como entornos de desarrollo o IDES como Visual Studio, Eclipse y NetBeans. Nadie hablaba de lenguajes como Perl o LISP. Eso era del conocimiento de los más nerds de los nerds.

   La primera vez que escuche sobre Perl fue en un foro sobre trucos de programación (no recuerdo el nombre) y servidores,se recomendaba el uso de ese lenguaje si querías ser administrador de sistemas y base de datos (si de esos gorditos bonachones que saben un buen de cosas y que te dan un buen de soluciones a tus dudas de programación y de sistemas). Había interesantes scripts para la administración de servidores, detección de intrusos en red, y hasta para la recuperación de datos. Eso sí algunos scripts eran bastante complejos de entender.

   Pero a todo esto ¿por qué  Perl? ... con este lenguaje se puede hacer todo, desde las clásicas aplicaciones tipo consola hasta aplicaciones web. Incluso aplicaciones con interfaz gráfica. Es relativamente fácil de aprender si tienes familiaridad con lenguajes como C o PHP (de hecho este último se inspiro en el).

   No es la octava maravilla del mundo, tienes sus ventajas y desventajas como cualquier otro.


Update:
Larry Wall explica por qué Perl es parecido al lenguaje humano:
Links
http://trabajodeprogramacionperl.blogspot.mx/p/que-es-y-para-que-sirve.html

El lenguaje de programación C

El mítico lenguaje de programación C sigue siendo el lenguaje que definió todo. Y con todo nos referimos a todo lo referente a la inf...

Etiquetas

Archivo del blog