Mostrando entradas con la etiqueta eclipse. Mostrar todas las entradas
Mostrando entradas con la etiqueta eclipse. Mostrar todas las entradas

viernes, 12 de septiembre de 2025

Eclipse Vert.x

Vert.x es un framework políglota que se ejecuta en la JVM. Permite crear microservicios basados en el paradigma de programación reactiva.

¿Qué es la programación reactiva?

Se trata de un paradigma que se centra en los flujos de datos y la propagación del cambio.

Se enfoca en reaccionar a cambios en el flujo de datos de forma asíncrona y eficiente. En lugar de ejecutar instrucciones de manera secuencial, los sistemas reactivos responden automáticamente cuando ocurre un evento, como una nueva entrada de datos o una actualización en tiempo real,

Es como suscribirse a un canal de noticias: no sabes cuándo llegarán nuevos artículos, pero cuando lo hagan, recibirás una notificación instantánea. Aborda las ineficiencias de los mecanismos de sondeo tradicionales, que buscan constantemente actualizaciones, incluso cuando no las hay. Esto puede generar un desperdicio de recursos y tráfico de red innecesario.

Al suscribirse a un flujo de datos, la programación reactiva garantiza que su código solo reciba notificaciones cuando haya nuevos datos disponibles, lo que mejora significativamente el rendimiento y la utilización de recursos.

Vert.x es similar a Node JS y se centra en los microservicios.

Es como una caja de herramientas mágica para construir aplicaciones que reaccionan rápido, como cuando juegas y el videojuego responde al instante cuando presionas un botón.

Además podremos usar estos lenguajes (ya que no es exclusivo para Java):

  • Java, obviamente. 
  • Kotlin. 
  • Javascript. 
  • Python. 
  • Groovy. 
  • Ruby. 
  • Scala. 
  • Clojure. 
  • Y mezclar varios en una sola aplicación.

Veamos un ejemplo en Kotlin:

class Server : VerticleBase() {
  override fun start(): Future<*> {
    return vertx.createHttpServer()
      .requestHandler { req ->
        req.response()
          .putHeader("content-type", "text/plain")
          .end("¡Hola, mundo desde Vert.x!")
      }
      .listen(8080)
  }
}

Y en Java:

public class Server extends VerticleBase {
  public Future<?> start() {
    return vertx.createHttpServer()
      .requestHandler(req ->
        req.response()
          .putHeader("content-type", "text/plain")
          .end("¡Hola, mundo desde Vert.x!")
      )
      .listen(8080);
  }
}

Trabajando con Vert.x

Para trabajar con esta herramienta necesitamos:

  • JDK en su versión 11 o más actual. 
  • Maven 3. 
  • Contar con la herramienta curl, HTTPie o cualquier herramienta que permita solicitudes HTTP.

La dependencia que usaremos será: vertx-web

Al generar el proyecto debemos descomprimirlo en algún directorio. La clase principal es:

MainVerticle.java

package com.inforhomex.aprendevertx.holamundo;

import io.vertx.core.Future;
import io.vertx.core.VerticleBase;

public class MainVerticle extends VerticleBase {

  @Override
  public Future<?> start() {
    return vertx.createHttpServer().requestHandler(req -> {
      req.response()
        .putHeader("content-type", "text/plain")
        .end("Hola, mundo desde Vert.x!");
    }).listen(8888).onSuccess(http -> {
      System.out.println("El servidor escucha desde el puerto 8888");
    });
  }
}

Construimos el proyecto con Maven:

$ mvn clean package

Entramos al directorio ``target`` y ejecutamos la aplicación:

$ java -jar holamundo-1.0.0-SNAPSHOT-fat.jar 

Abrimos el navegador en la url de hhtp://localhost:8888/

Salida:

Hola, mundo desde Vert.x! 

¡Hemos creado nuestro primera aplicación con Vert.x!

Concluyendo, al usar Vert.x se espera construir aplicaciones que reaccionan a los cambios, manteniendo tiempos de respuesta rápidos, alta escalabilidad y resiliencia.

Enlaces:

https://vertx.io/
https://www.arquitecturajava.com/introduccion-a-vertx/
https://solutionsarchitecture.medium.com/reactive-programming-in-java-a-simplified-guide-dd24d7f440d4
https://www.reddit.com/r/java/comments/nlzpkq/why_vertx_javas_library_for_reactiveasync/?tl=es-es

domingo, 25 de febrero de 2024

IDEs y editores de código que deberías conocer y usar

 

En este post veremos una pequeña lista de IDEs  y editores de código que todo programador debería conocer. La lista no tiene un orden específico.

Entre los IDEs más famosos están Eclipse, IntelliJ IDEA, Visual Studio y Netbeans. Algunos son muy específicos como Lazarus IDE que solo es para Pascal o Spyder IDE para Python. 

Y entre los editores de código más habituales están SublimeText, Notepad++ y Visual Studio Code.

IDEs

IntelliJ IDEA

https://www.jetbrains.com/es-es/idea/


Visual Studio 2022

https://visualstudio.microsoft.com/es/


NetBeans

https://netbeans.apache.org/front/main/index.html


Eclipse IDE

https://eclipseide.org/


PyCharm

https://www.jetbrains.com/es-es/pycharm/


Spyder IDE

https://www.spyder-ide.org/


Eric (Python) IDE

https://eric-ide.python-projects.org/


Lazarus IDE

https://www.lazarus-ide.org/


Aptana Studio

https://www.axway.com/en/aptana


Android Studio

https://developer.android.com/studio



Editores

Kate

https://kate-editor.org/es/


Notepad++

https://notepad-plus-plus.org/


Sublime Text

https://www.sublimetext.com/


Brackets

https://brackets.io/


Atom

https://atom-editor.cc/


Visual Studio Code

https://code.visualstudio.com/


MU Editor

https://codewith.mu/


Geany

https://www.geany.org/


CudaText

https://cudatext.github.io/


Enlaces:

https://www.techrepublic.com/article/best-ide-software/

https://en.wikipedia.org/wiki/List_of_text_editors

domingo, 7 de mayo de 2017

Construyendo proyectos con Gradle (instalación con SDKMAN!)

Gradle es una herramienta que nos permite construir proyectos Java, Groovy, Scala, etc. de una manera más sencilla que usando Maven.

¿Cómo instalar Gradle? 
La más sencilla es usando SDKMAN!, solo basta que escribas en la terminal:
$sdk install gradle

Así tendrás instalado la última versión, para comprobar que versión tienes instaladas tecleas:
$gradle --version o $gradle -v

Saldrá algo como esto:
------------------------------------------------------------
Gradle 3.5
------------------------------------------------------------

Build time:   2017-04-10 13:37:25 UTC
Revision:     b762622a185d59ce0cfc9cbc6ab5dd22469e18a6

Groovy:       2.4.10
Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM:          1.8.0_131 (Oracle Corporation 25.131-b11)
OS:           Linux 4.4.0-75-generic amd64



Ahora nos ubicaremos en una carpeta y escribiremos un archivo llamado build.gradle. Dentro del archivo escribiremos lo siguiente:

task holaMundo << {
    println "Hola, mundo!"
}


Se trata de una simple tarea (task) denominada "holaMundo".

Para ejecutar el script escribiremos lo siguiente en la terminal:
$gradle -q build.gradle
$gradle -q holaMundo

Y obtendremos:
Hola, mundo!


Listo. Nuestro primer ejemplo esta hecho. En el siguiente post se verá la estructura de un proyecto Java usando Gradle .

Links:
https://gradle.org/
https://maven.apache.org/ 
http://codemonkeyjunior.blogspot.mx/search?q=maven
http://codemonkeyjunior.blogspot.mx/search?q=gradle

sábado, 29 de marzo de 2014

Comparativa de lenguajes: C# y Java

Esta no es una comparación entre C# y Java para ver cual es el mejor. Solo son ejercicios básicos de programación para entender algunos aspectos de ambos lenguajes.




¿Qué herramientas (IDEs) existen para programar en estos lenguajes?

Para Java:
  • Netbeans
  • Eclipse
  • IntelliJ Idea
  •  JDeveloper
  • entre otros más
Para C#:
  • Visual Studio .NET
  •  Sharpdevelop
  • Monodevelop 
Para programar en C# es preferible usar la plataforma Visual Studio .Net, existe una alternativa "gratuita" para C# llamada Visual C# express para quienes desean aprender el lenguaje.
1. Imprimir un mensaje
//en C#
Console.WriteLine("Esto es un simple mensaje");

//en Java
System.out.println("En java también se puede hacer");

2. using vs import
//en C#
using System;

//en Java
import java.lang.System;

En C# la palabra using  se emplea para importar "namespaces", definir alias y liberar y agregar recursos. En Java la palabra import nos sirve para importar librerías y/o clases.

3. Uso de "foreach"
//en C#
string[] nombres={"Yezmin","Diana","Tomas","Eduardo"};
foreach(string n in nombres){
  Console.WriteLine("hola "+n);
}

//en Java
String[] nombres={"Horacio","Alberto","Miguel","Karla"};
for(String n: nombres){
  System.out.println("hola "+n);
}

4. if-else
//en C#
string str_cadena="Miguel Cardenas";

if(str_cadena == "Miguel Cardenas"){
 Console.WriteLine("Es el mismo nombre");
}else{
  Console.WriteLine("Bienvenido "+str_cadena);
}

//en Java
String str_cadena="Humberto Campos";

if(str_cadena.equals("Humberto Campos")){
  System.out.println("Es el mismo nombre");
}else{
  System.out.println("Bienvenido "+str_cadena);
}

5. Introducir datos desde consola
//en C#
string nombre=null;
Console.WriteLine("Introduce nombre:");
nombre=Console.ReadLine();

//en Java, existen varias alternativas, por ejemplo, usando java.util.Scanner
import java.util.Scanner;

Scanner teclado=new Scanner(System.in);
String nombre=null;
System.out.println("Introduce nombre: ");
nombre=teclado.readLine();

6. Crear una clase
//en C#
class Televisor{
  private string marca;

  public Televisor(){}

  public Televisor(string marca){
          this.marca=marca;
   }

  public string Marca{
       get{ return this.marca; }
       set{  this.marca=value; }
  }

}
 
//en Java
class Televisor{
  private String marca;

  public Televisor(){}

  public Televisor(String marca){
          this.marca=marca;
   }

  public String getMarca(){
         return this.marca;
  }

 public void setMarca(String marca){
        this.marca=marca;
  }

}

Como se puede ver ambos lenguajes se parecen bastante. Ambos lenguajes de programación son orientados a objetos. Permiten crear aplicaciones por consola, aplicaciones gráficas y web.

Links
http://blog.desdelinux.net/mono-para-principiantes-1ra-parte/

jueves, 12 de enero de 2012

Maven: crear proyecto web e importarlo a Eclipse

Crear un proyecto con Maven es bastante complicado, aunque existen alternativas como Gradle que nos lo facilitan, sigue siendo  el más utilizado.
1.  Ir al directorio donde queremos crear el proyecto:
//en Windows
C:\Users\Alguien\workspace
//en Linux
/home/Alguien/workspace
2.  Desde la terminal crear el proyecto
mvn archetype:create -DgroupId=org.maven.screencast02 -DartifactId=Proyecto02 -
DarchetypeArtifactId=maven-archetype-webapp
3. Empaquetar
mvn package
4. Ahora instalar
mvn install
5. Añadimos la variable del Repositorio local Maven
//Windows
mvn –Declipse.workspace= c:\eclipse\Workspace eclipse:add-maven-repo
//Linux
mvn –Declipse.workspace= home/eclipse/Workspace eclipse:add-maven-repo

6. En el Eclipse comprobamos en Java\Build path\Classpath variables si se ha dado de alta correctamente el repositorio de Maven (ver paso 9)
7. Añadimos el modulo al eclipse de la siguiente manera:
mvn -Dwtpversion=1.5 eclipse:eclipse
8. Importamos el proyecto al eclipse mediante el menú File\Import...\Existing proyect into
Workspace...

9. Si tienes algún error al importar el proyecto puedes entra al classpath
y reemplaza la etiqueta:


por:

<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
</attributes>
</classpathentry>

Nota: el paso 9 viene de la siguiente liga

10. Editar el fichero pom.xml...

Tal vez la parte más difícil del proyecto.

Jai un lenguaje de programación inspirado en C++

Hoy hablaremos de un nuevo lenguaje de programación llamado Jai . Se trata de un lenguaje de programación que está desarrolland...

Etiquetas

Archivo del blog