Ir al contenido principal

Quarkus: ¿Un Spring Boot mejorado?


Spring Boot es un marco de desarrollo de aplicaciones Java completo y poderoso que brinda una experiencia de programación rápida y sencilla para el desarrollo de aplicaciones empresariales.

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class HelloWorldApplication {

    public static void main(String[] args) {
        SpringApplication.run(HelloWorldApplication.class, args);
    }

    @GetMapping("/")
    public String helloWorld() {
        return "Hola, mundo!";
    }
}

Quarkus es un marco de desarrollo de aplicaciones Java moderno y eficiente que brinda una experiencia de programación rápida y sencilla para aplicaciones cloud-native.

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

@Path("/")
public class HelloWorldResource {

    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String hello() {
        return "Hola, mundo!";
    }
}

A primera vista, ambos frameworks son iguales. sin embargo, no lo son. Quarkus trata de ser más directo y enfocarse en el rendimiento y funcionalidad.

¿Cuales son las diferencias más importantes de Spring Boot y Quarkus?

Spring Boot y Quarkus son dos marcos de desarrollo de aplicaciones Java que brindan soluciones para el desarrollo de aplicaciones de manera rápida y sencilla. Ambos marcos tienen similitudes en términos de funcionalidades y características, pero también existen algunas diferencias importantes.

Algunas de las diferencias más importantes entre Spring Boot y Quarkus son las siguientes:

  • Enfoque: Spring Boot se enfoca en ser una solución de plataforma completa para el desarrollo de aplicaciones Java, mientras que Quarkus se enfoca en ser un marco de desarrollo ultra-ligero para aplicaciones cloud-native.
  • Desempeño: Quarkus se enorgullece de tener un desempeño significativamente más rápido que Spring Boot, gracias a su enfoque en la eficiencia y la optimización de recursos.
  • Comunidad: Spring Boot cuenta con una comunidad de desarrolladores más grande y más madura, mientras que Quarkus es un marco más nuevo y menos maduro.
  • Integración con tecnologías: Spring Boot tiene una integración más amplia y profunda con otras tecnologías y herramientas Java, mientras que Quarkus se enfoca en la integración con tecnologías cloud-native.

 

Algunas alternativas a Quarkus (además de Spring Boot) son:

  1. Micronaut: Es un framework de aplicación de microservicios altamente eficiente y rápido que se basa en una arquitectura de contenedor ligero y en tiempo de ejecución de grafos.

  2. Vert.x: Es un framework de aplicación basado en eventos que permite a los desarrolladores crear aplicaciones altamente escalables y con una eficiencia en términos de recursos similar a Quarkus.

  3. Ratpack: Es un framework de aplicación enfocado en la construcción de aplicaciones basadas en el protocolo HTTP y que brinda una eficiencia en términos de recursos y rendimiento.

  4. Helidon: Es un framework de aplicación enfocado en la creación de aplicaciones basadas en microservicios que brinda una eficiencia en términos de recursos y rendimiento, y también incluye una amplia gama de funcionalidades integradas para facilitar el desarrollo.

Ejemplos en Vert.x, Ratpack, Helidon y Micronaut:

import ratpack.handling.Context;
import ratpack.handling.Handler;
import ratpack.server.RatpackServer;

public class HelloWorld {
  public static void main(String[] args) throws Exception {
    RatpackServer.start(server -> server
        .handlers(chain -> chain
            .get(ctx -> ctx.render("Hello, World!"))
        )
    );
  }
}

import io.vertx.core.AbstractVerticle;
import io.vertx.core.Vertx;

public class HelloWorldVerticle extends AbstractVerticle {

  @Override
  public void start() {
    vertx.createHttpServer()
      .requestHandler(req -> {
        req.response().end("Hello, World!");
      })
      .listen(8080);
  }

  public static void main(String[] args) {
    Vertx vertx = Vertx.vertx();
    vertx.deployVerticle(new HelloWorldVerticle());
  }
}

import io.helidon.webserver.Routing;
import io.helidon.webserver.ServerRequest;
import io.helidon.webserver.ServerResponse;
import io.helidon.webserver.WebServer;

public class HelloWorld {
  public static void main(String[] args) {
    WebServer server = WebServer.create(
        Routing.builder()
            .get("/", (req, res) -> res.send("Hello, World!"))
            .build()
    );

    server.start().thenAccept(ws -> {
      System.out.println("Web server started at: http://localhost:" + ws.port());
    });
  }
}

import io.micronaut.http.annotation.Controller;
import io.micronaut.http.annotation.Get;

@Controller
public class HelloController {
  @Get("/hello")
  public String hello() {
    return "Hello, World!";
  }
}

En conclusión, Spring Boot y Quarkus son ambos marcos de desarrollo de aplicaciones Java muy potentes, y la elección entre ellos dependerá de las necesidades específicas de su proyecto y de sus requisitos de desempeño y escalabilidad.

Comentarios

Entradas populares de este blog

Odin language: el lenguaje de programación orientado a datos para un desarrollo de software sensato

En esta serie sobre lenguajes de programación hablamos de Odin , un lenguaje orientado a datos. Un nuevo lenguaje de programación que nos podrá recordar a lenguajes como C++, Python, Golang o hasta Rust. Instalación (Windows): 1 2 3 4 $ git clone https://github.com/odin-lang/Odin $ cd Odin $ git pull $ build.bat release Debemos asegurarnos de crear la variable de entorno: Nombre: ODIN_HOME Valor: C:\Users\HP\Documents\pruebasOdin\Odin Ejemplo 1. Como primer programa tendremos al clásico "Hola, mundo". holamundo.odin package holamundo import " core:fmt " main : : proc ( ) { fmt . println ( " ¡Hola, mundo desde Odin! " ) } Construimos: $ odin build holamundo . odin - file Ejecutamos: $ holamundo .exe Recordar que si usamos Visual Studio Code podemos instalar el plugin de Odin Language: https://marketplace.visualstudio.com/items?itemName=DanielGavin.ols Ejemplo 2. Programa que muestre las variables que pod...

Programación Windows Batch (CMD) parte 3

Crear ciclos para efectuar operaciones tediosas nos ahorrará tiempo para realizar otras tareas. En está ocasión veremos ciclos con FOR . ¿Cuál es la síntaxis de bucle FOR en Windows Batch? Si está dentro de un archivo *.bat : FOR %%variable IN (seq) DO operaciones Si lo ejecutamos en una terminal: FOR %variable IN (seq) DO operaciones Ejemplo 1 . Recorrer una secuencia de números del 0 al 5: recorrer.bat @ echo off FOR %%i in ( 0 1 2 3 4 5 ) DO echo Hola no. %%i pause Nos imprimirá en pantalla: Hola no. 0 Hola no. 1 Hola no. 2 Hola no. 3 Hola no. 4 Hola no. 5 ¿Puedo usar contadores? Si, se pueden usar. Ejemplo 2 . Uso de contadores: contador.bat @ echo off set numeros = 1 2 3 4 5 6 7 8 9 10 set cont = 0 for %%a in ( %numeros% ) do ( echo Hola no. %%a :: Contador set /a cont+ = 1 ) echo Total: %cont% Este código nos imprimirá, además de los mensajes Hola no. 0 ..., el total de valores conta...

z/OS, ¿Qué es? y ¿Cuáles son sus herramientas?

  En este post veremos las herramientas de z/OS de IBM. z/OS es un sistema operativo de mainframe desarrollado por IBM.  Es parte de la serie IBM z Systems (anteriormente conocida como System z), que se utiliza en los sistemas mainframe de IBM. z/OS es uno de los sistemas operativos más utilizados en el mundo empresarial para ejecutar aplicaciones críticas y procesar grandes volúmenes de datos. Características clave de z/OS: Escalabilidad : z/OS es conocido por su capacidad para manejar grandes cargas de trabajo y escalabilidad vertical, lo que permite agregar recursos de hardware para satisfacer las demandas de procesamiento. Confiabilidad y disponibilidad : z/OS está diseñado para ofrecer alta disponibilidad y confiabilidad. Incorpora características como redundancia y recuperación ante fallas para garantizar la continuidad de las operaciones. Seguridad : Proporciona una amplia gama de funciones de seguridad, como autenticación, autorización y auditoría, para proteger los...