Ir al contenido principal

Entradas

Mostrando las entradas etiquetadas como groovy

Ratpack: un conjunto de librerías para aplicaciones basadas en HTTP

Ratpack es un conjunto de librerías ( no es un framework propiamente ) enfocado en la construcción de aplicaciones basadas en el protocolo HTTP y que brinda una eficiencia en términos de recursos y rendimiento. Construido sobre la librería de red de eventos Netty , ofrece una base para desarrollar aplicaciones rápidas y eficientes, inspiradas en la simplicidad de frameworks como Sinatra para Ruby. Es conocido por su flexibilidad, permitiendo la integración con otras tecnologías como Groovy, Guice y Spring Boot. El lenguaje de programación "base" que usa Ratpack es Groovy ( un lenguaje dinámico similar a Python o Ruby, pero siendo heredero de Java ), aunque también se puede usar Java indistintamente. Observemos un ejemplo de código, el clásico "Hola, mundo". Holamundo.java package org.inforhomex.app; import ratpack.handling.Context; import ratpack.handling.Handler; import ratpack.server.RatpackServer; public class Holamundo { public...

Lenguajes JVM: Clojure & Groovy

Un lenguaje dependiente de la JVM es aquél que corre bajo, valga la redundancia, la Java Virtual Machine. Java tiene la filosofía de: "Escribe una vez, ejecuta en todas partes" o "Write once, run everywhere" . Lo que significa que una vez compilado y creado el .class, tu programa debería ejecutarse en cualquier Sistema Operativo. Lenguajes como Clojure, Groovy, Kotlin, Scala y otros más, en teoría, cumplen con la misma filosofía. Clojure Es un lenguaje de programación: Multiparadigma. Basado en LISP. Permite la programación funcional y orientada a objetos. Dinámico. Promueve la inmutabilidad, incluyendo las estructuras inmutables. Clojure fue creado por Rich Hickey. Si te interesa leer la historia de este lenguaje, echa un vistazo acá: https://clojure.org/about/history holamundo.clj ( println "Hola, mundo!!" ) Clojure tiene una sintaxis casi idéntica a LISP. El manejo de paréntesis es su sello particular. También se le " acusa ...

Lenguajes JVM: continuemos con Scala

  En una entrega anterior hablamos de Scala (y Kotlin). Cual es su paradigma y cómo instalarlo, compilar y ejecutar un programa en ese lenguaje. Seguimos con el tema y veremos algunos puntos importantes a tomar en cuenta. Entre los lenguajes de programación más importantes y dependientes de la JVM hay que notar éstos: Scala . Kotlin. Clojure. Groovy. Jython. JRuby. Jabaco. Gosu. Ceylon. Unos más importantes (o usados) que otros. Y "muertos" hablando del triste caso de Ceylon . Como mencionamos la vez anterior, Scala tiene características modernas como permitir la programación funcional y orientada a objetos sin problema alguno. Nota: Si no cuentas con Scala, puedes descargarlo: https://www.scala-lang.org/download/ Ejercicio 1. El clásico "Hola, mundo" en Scala. holamundo.scala @main def holamundo () : Unit = println ( "Hola, Mundo!" ) Ejecutamos: $ scala run holamundo . scala Ejercicio 2. Un programa que muestre un saludo. ...

Un vistazo a Grails Framework

¿Qué es Grails Framework? Es un framework para desarrollo de aplicaciones web. Permite usar Java y Groovy. Funciona bajo el paradigma Modelo-Vista-Controlador. Se considera la versión de Ruby on Rails de Java. El sitio oficial lo describe como: Un potente marco de aplicación web basado en Groovy para JVM construido sobre Spring Boot. Si usas SDKMAN! puedes instalarlo así: sdk install grails Comprobamos la versión instalada: grails -version Para crear un proyecto tecleamos lo siguiente: grails create-app my-app Nos colocamos en la carpeta creada: cd my-app Creamos un controller: grails create-controller com.alquimista.controller.Hola La clase creada (Hola.groovy) se encontrará en: grails-app/controller/com/alquimista/controller Hola.groovy package com . alquimista . controller class Hola { def index (){ render "Hola, amigos !!" } } Para ejecutar la aplicación: grails run-ap...

Groovy: Grape

Grape (Groovy Advanced Packaging Engine) es un gestor de dependencias que nos permite usar librerías sin la necesidad de agregarlas a nuestro CLASSPATH . Básicamente, te permite agregar librerías a tus scripts de una manera muy fácil. Pero antes de hacer nada, recordemos algunas cosas: Compilamos: groovyc Programa.groovy Ejecutamos (de hecho podemos omitir la compilación con esto): groovy Programa.groovy Ejemplo. Crear un documento PDF con itextpdf. import java.io.FileOutputStream import java.io.IOException import com.itextpdf.text.Document import com.itextpdf.text.DocumentException import com.itextpdf.text.Paragraph import com.itextpdf.text.pdf.PdfWriter @Grapes ( @Grab (group= 'com.itextpdf' , module= 'itextpdf' , version= '5.5.13.3' )) def documentoPDF () throws DocumentException, IOException { def documento= "MyDocument.pdf" Document document = new Document(); PdfWriter. getInstance (docum...

Frameworks para crear MS

Algunos frameworks para crear microservicios con Java, Groovy, Scala y Kotlin: https://spring.io/projects/spring-boot https://javalin.io/ http://sparkjava.com/ http://actframework.org/ https://doc.networknt.com/getting-started/light-rest-4j/ http://www.ninjaframework.org/ https://www.playframework.com/ https://resteasy.github.io/ https://restlet.com/open-source/ http://eventuate.io/ https://axoniq.io/ https://ktor.io/ https://vertx.io https://helidon.io/ https://es.quarkus.io/ https://micronaut.io/

Go: un lenguaje moderno

Golang es un lenguaje relativamente moderno que pretende ser una mejor alternativa a lenguajes como C/C++, Python, C# y Java (entre otros más como Erlang y/o Elixir). Ofrece al desarrollador la capacidad de crear "cosas complejas" de manera más fácil, por ejemplo crear aplicaciones web sin tener que descargar un IDE, un servidor web, configurar miles de archivos XML (ojo ahí Java). servidor.go package main import ( "io" "net/http" ) func main () { http . HandleFunc ( "/" , saludo ) http . ListenAndServe ( ":8000" , nil ) } func saludo ( w http . ResponseWriter , peticion * http . Request ) { io . WriteString ( w , "Hola, mundo desde Golang!!" ) } Ejecutando: $ go run servidor Abrimos el navegador en http://localhost:8000/ Si esto lo hubiésemos hecho en Java y/o C# nos hubiese llevado más tiempo, es la verdad. Golang deja a más de uno sorprendido. Links: https://github.co...

¿Por qué me moví de Gradle a Maven?

Maven es de la vieja escuela, dijeron. Utilice Gradle en su lugar. Es el futuro de la construcción de aplicaciones Java, dijeron. Suena como algo que no querrá perderse. Así que probé Gradle en dos proyectos del mundo real. En esta publicación, me gustaría contarles sobre mis experiencias con Gradle y por qué finalmente regresé a Maven. Es una historia sobre entusiasmo y desilusión. Esta publicación está dirigida a los desarrolladores que actualmente usan Maven y se preguntan si deberían usar Gradle en su lugar. Si usted y su equipo ya están familiarizados con Gradle y lo están usando felizmente en la práctica por un tiempo, definitivamente pueden continuar con Gradle. No te convenceré de que regreses a Maven. ;-) Y al final, también es cuestión de gustos. Puedes leer muchos blogs sobre este "¿Maven o Gradle?" tema y todo el mundo te cuenta otra historia. Finalmente, debes probar Gradle por tu cuenta y crear tu propia opinión. El post original está en este link https:/...

Groovy: anotaciones de clase

Programar en Groovy puede ser tan sencillo como hacerlo en Java, incluso un poco más. Sin embargo, Groovy no escapa de las convencionalidades de la escritura tipo código Java.  Las clases Groovy poseen constructores que no necesariamente deben ser escritos, los metodos de asignación y de obtención (setters y getters) pueden o no ser definidos.  Existen alternativas como lombok, pero en este ejemplo usaremos las anotaciones propias de Groovy para definir constructores, métodos toString, etc.  La clase sin anotaciones: Persona.groovy class Persona { int id String nombre String apellidos int edad } Este código es funcional, sin embargo poco descriptivo. En Java tendríamos que crear los métodos setters, getters, toString, etc. Persona.java public class Persona { private int id ; private String nombre ; private String apellidos ; private int edad ; public Persona (){} public Persona ( int id , String nom...

Hola mundo en Gradle

  Gradle es una herramienta de automatización y construcción de código. Con lenguajes de programación como Java, Groovy y Kotlin se puede emplear esta herramienta. Existen herramientas similares a Gradle como: Apache Ant. Apache Ivy. Apache Maven. Groovy y Gradle tienen una relación directa. Gradle emplea un DSL basado en Groovy. En vez de usar archivos de configuración XML, Gradle emplea ese DSL. Usaremos SDKMAN! para instalar Gradle. Instalando SDKMAN! $ curl -s "https://get.sdkman.io" | bash $ source "$HOME/.sdkman/bin/sdkman-init.sh" $ sdk version Instalando Gradle con SDKMAN! $ sdk install gradle Hola, mundo en Gradle. build.gradle task hola_mundo { println "Hola, mundo!!" } Ejecutando: $ gradle -q hola_mundo "Hola, mundo!!" Clases class Persona { String nombre int edad } task getPersona { def persona = new Persona ( nombre: 'Juan' , edad: 35 ) println "Nombre:...

Kotlin Tutorial for Beginners | Full Course

Kotlin Tutorial for Beginners | Full Course

Ejecutar un proceso batch en Groovy

Proceso batch en Groovy. En este ejemplo vamos a ver como ejecutar un proceso batch en Groovy. Para ello tenemos que saber que los archivos batch son útiles para la automatización de tareas,por ejemplo revisar el espacio en disco, ver el contenido de un directorio, ,etc. En este ejemplo vamos a crear un archivo BAT (MS-DOS). Abrimos cualquier editor de texto (como notepad++, sublime text 2, etc.) y creamos un nuevo archivo, le llamaremos "miscomandos.bat" (también se puede cambiar la extensión por .cmd). @echo off echo Hola visitante de http: //alquimistadecodigo.blogspot.com/ @pause Desde terminal de comando nos ubicamos en el directorio donde se creo el archivo y tecleamos su nombre, aparece el mensaje: Hola visitante de https://alquimistadecodigo.blogspot.com ¿Groovy permite ejecutar comandos del sistema? Así es, basta que teclees desde terminal "groovysh"te abrirá el REPL. Escribe esto: println "help" . execute (). text ...