IDEs para programar en Groovy

En el post anterior de Groovy se mostró una pequeña introducción sobre este moderno y poderoso lenguaje de programación. Pero ¿Qué se necesita para poder desarrollar aplicaciones en Groovy?


*Requisito obligatorio es tener instalada la JVM.

Lo primero que se debe hacer es descargar el Groovy Develpment Kit (GDK). Luego la instalación consiste simplemente en descomprimir el GDK en la ruta que desees y crear una variable de entorno GROOVY_HOME en linux o agregar la ruta al directorio /bin de groovy en la variable de entorno PATH en windows.
Para información más detallada visita el tutorial de groovy en su sitio oficial.

Una vez realizado lo anterior, está todo listo para empezar a programar en Groovy, ya que este proporciona un interprete IDE llamado GroovyConsole, en donde podrás codificar y ejecutar en un instante (para ejecutar la consola de Groovy, basta con ejecutar el comando groovyConsole o groovyConsole.bat).


(groovyConsole en acción)

La comunidad de Groovy ha desarrollado también un plugin para eclipse llamado Groovy-Eclipse, el cual permite fácilmente desarrollar y compilar proyectos en Groovy (en el link encontrarán una sección 'How to Install' con los pasos a seguir para la instalación).

Y como si fuera poco, la comunidad Groovy en conjunto con Spring Source han desarrollado una completa plataforma sobre Eclipse, que permite crear fácilmente proyectos en Groovy, Grails, AspectJ, etc. El proyecto se llama 'Grails - STS Integration' y lo puedes descargar desde AQUI.

En las siguientes entradas se verán códigos de ejemplo con Groovy (desde los más simple a lo complejo) hasta llegar al nivel necesario para desarrollar utilizando Grails.

ver post completo...

Colecciones en Python


Anteriormente habíamos visto algunos tipos básicos de datos como los booleanos, enteros y cadenas de texto.

A continuación veremos como utilizar algunos tipos de colecciones que nos ofrece Python.

Listas


Las listas son colecciones de datos ordenadas y son el equivalente a los ArrayList o vectores de Java o C#.
En Python las listas y las colecciones en general pueden almacenar cualquier tipo de dato, como objetos, números, colecciones, etc.

Este es un ejemplo donde podremos ver cómo utilizar las listas:

if __name__ == '__main__':      #equivale a public static void main de Java
    listado = [] #inicializamos una lista
    print("Todo lo que escribas sera guardado en una lista")
    while True:
        dato = raw_input("> ");
        if( dato=="fin" ): 
            break
        #se agrega al final de la lista un nuevo elemento
        listado.append(dato)
    
    if listado.__len__()>0:
        print("Estos son los datos ingresados")
        for i in listado:
            #la coma permite imprimir el contenido en 
            # una sola fila como un System.out.print de Java
            print i , 
        
    else:
        print("No se ingreso nada en la lista")

Python posee una característica denominada slicing y que permite seleccionar u obtener una partición de la lista, por ejemplo:
lista = ["h","o","l","a"," ","m","u","n","d","o"]
print( lista[2:5] ) #1) imprime ['l', 'a', ' ']
print( lista[:4] ) #2) imprime ['h', 'o', 'l', 'a']
print( lista[5:] ) #3) imprime ['m', 'u', 'n', 'd', 'o']
print( lista[:] ) #4) imprime ['h', 'o', 'l', 'a', ' ', 'm', 'u', 'n', 'd', 'o']
print( lista[0:4:2] ) #5) imprime ['h', 'l']
print( lista[::2] ) #6) imprime ['h', 'l', ' ', 'u', 'd']
print( lista[::3] ) #7) imprime ['h', 'a', 'u', 'o']

En el caso '1' se obtiene un fragmento del arreglo desde la posición 2 hasta la 4.
En el caso '2' se imprime el arreglo desde la posición 0 hasta la 3.
En el caso '3' se imprime el arreglo desde la posición 5 hasta la última (9).
En el caso '4' se imprime todo el arreglo.
*cuando no se especifica un número a la izquierda del slicing (:) se toma por defecto la primera posición del arreglo y a la derecha se toma la última posición.
En el caso '5' imprime desde la posición 0 hasta la 3 cada 2 caracteres.
En el caso '6' imprime desde la posición 0 hasta la 9 cada 2 caracteres.
En el caso '7' imprime desde la posición 0 hasta la 9 cada 3 caracteres.


Tuplas


Las tuplas se manejan exactamente igual a las listas, y las características más relevantes que poseen son:
-A diferencia de las listas ([]), las tuplas se inicializan con ().
-Son inmutables, es decir, su contenido no puede ser modificado.
-Tienen tamaño fijo.
-Utilizan menos memoria que las listas.

lista = ["h","o","l","a"," ","m","u","n","d","o"]
unaTupla = tuple( lista )
print( unaTupla[2:5] ) #1) imprime ['l', 'a', ' ']


Diccionarios


Los diccionarios son colecciones que permiten relacionar una clave con un valor y son el equivalente a los HashMap de Java.
La principal diferencia entre los diccionarios con las tuplas y listas, es que sus valores no son accedidos a través de un índice, porque no poseen orden (ya que los diccionarios se implementan como tablas hash), sino que mediante su clave utilizando el operador [clave]. Por esta misma razón es que tampoco puede aplicarse slicing sobre estas.

Este es un ejemplo de diccionario:
numeros = {"uno":1, "dos":2, "tres":3, 4:"cuatro", 5:"cinco", 6:"seis"}
print( numeros["uno"] )   #1) imprime 1
print( numeros[5] )       #2) imprime cinco
print( numeros.keys() )   #3) imprime [4, 5, 6, 'dos', 'tres', 'uno']
print( numeros.values() ) #4) imprime ['cuatro', 'cinco', 'seis', 2, 3, 1]

-En el caso 1 se imprime el valor obtenido de la llave 'uno'.
-En el caso 2 se imprime el valor de la llave '5'.
-En el caso 3 se imprimen todas las llaves del diccionario.
-En el caso 4 se imprimen todos los valores del diccionario.

ver post completo...

top