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

martes, 10 de septiembre de 2019

Micro frameworks para desarrolladores Java

Existen 1343300... frameworks para desarrollar con Java y la lista sigue creciendo.  En este post veremos una lista de micro framework que deberíamos conocer.

sábado, 13 de agosto de 2016

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

sábado, 26 de abril de 2014

Aprender Scala ... o no hacerlo

¿Qué tiene Scala que no tenga Java?


1. Clases, setters y getters

En Java:

public class Javesco{
     private String nombre="";

     public Javesco(){}

     public Javesco(String nombre){
           this.nombre=nombre;
     }
 
   //setter y getter
    public void setNombre(){ this.nombre=nombre; }
    public String getNombre(){ return nombre; }


En Scala:

class Simple(){
   var nombre:String=""
}

Obviamente escribimos menos código, sin embargo esto también puede parecernos confuso (al menos al principio),¿donde queda el private, protected o el public?. La razón es que Scala es un lenguaje más flexible, nos permite hacer muchas cosas, cambiar la manera en que planteas las soluciones.



Creando una clase "compleja":

class Compleja(val  _nombrex:String=null){

    private var  _nombre:String=_nombrex

   //setter y getter
   def nombre=_nombre
   def nombre_=(value:String):Unit=_nombre=value

}


Este código es más parecido a la clase hecha en Java.En esta definimos los setters y getters. Aunque la de arriba es más legible y sencilla de entender(Simple).


Ahora creamos un archivo llamado Codemonkey.scala y escribimos: 


object Codemonkey{

    def main(args: Array[String]): Unit = {

          val simple=new Simple
          simple.nombre="Scala Johansson"
         Console.println("Hola "+simple.nombre)
  
        val compleja=new Compleja("Jonh Worth")
        Console.println("Hola "+compleja.nombre)

    simple.nombre="Maria Java"
    compleja.nombre="Tom Groovy"

    Console.println("Hola "+simple.nombre)
    Console.println("Hola "+compleja.nombre)

    }

}

Sigue siendo un código legible, no cambia mucho. Scala nos permite hacer las cosas de diferentes maneras.

2. Los import

En Java es necesario definir las clases y/o librerías externas desde la cabecera del código. 

import javax.swing.JOptionPane;

public class Codemonkey{

       public static void main(String ... args){
           JOptionPane.showMessageDialog(null,"Hola desde codemonkey");
       }

}

Con Scala no es necesario, podemos definir los import desde cualquier parte del código.

object Codemonkey{
       def main(args: Array[String]): Unit = {
           import javax.swing.JOptionPane
           JOptionPane.showMessageDialog(null,"Hola desde codemonkey")
      }
  }

3. Conservar los proyectos ya hechos.

Scala al ser dependiende de la JVM permite interoperabilidad con proyectos Java.


Creamos una clase Java llamada Prueba.java y la compilamos, nos generará un *.class

public class Prueba{

   public void verMensaje(){
      System.out.println("Hola Scala soy un método creado desde una clase Java");
   }

}

Ahora creamos el código en Scala, instanciamos la clase Prueba

object Codemonkey{
  def main(args: Array[String]): Unit = {
    val prueba=new Prueba
    prueba.verMensaje
  }

}
Java sigue siendo un buen lenguaje y bastante usado, aunque la verdad al crecer tanto la complejidad para aprenderlo también lo hizo. 

¿Qué más tiene Scala?

Concurrencia, pattern matching,traits, etc.  Un mundo de posiblidades se presenta, tal vez en próximos post ponga más ejemplos.

Por lo pronto no sé si convenga aprender Scala (algunos les parecerá perdida de tiempo, a otros no tanto), pero vaya que si es interesante.

jueves, 17 de noviembre de 2011

¿Cómo introducir/mostrar datos en Java, C, Groovy & Python?



En Java/Groovy

1. Uso de java.util.Scanner y java.io
package control.pruebas;


import java.util.Scanner;
import java.io.*;

public class Entrada {

/**
* @param args
*/
public static void main(String[] args) {
BufferedReader teclado= new BufferedReader(new InputStreamReader(System.in));
Scanner tecla=new Scanner(System.in);


System.out.println("Introduce entero");
int entero;
try {
entero = Integer.parseInt(teclado.readLine());
System.out.printf("%d",entero);
System.out.println(entero);
} catch (NumberFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}



System.out.println("Introduce real");
double real;
try {
real = Double.parseDouble(teclado.readLine());
System.out.printf("%f",real);
System.out.println(real);
} catch (NumberFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

System.out.println("Introduce cadena");
String cadena;
try {
cadena = teclado.readLine();
System.out.printf("%s",cadena);
System.out.println(cadena);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


System.out.println("Introduce entero");
int enterox= tecla.nextInt();

System.out.printf("%d",enterox);
System.out.println(enterox);
System.out.println("Introduce real");
double realx= tecla.nextInt();

System.out.printf("%f",realx);
System.out.println(realx);
System.out.println("Introduce cadena");
String cadenax= tecla.nextLine();

System.out.printf("%s",cadenax);
System.out.println(cadenax);

}

}

En Python
entero=int(raw_input('Introduce entero:'))
print "entero: %d"%(entero)
print "entero: ",entero

real=float(raw_input('Introduce real:'))
print "real: %f"%(real)
print "real: ",real

cadena=raw_input('Introduce cadena')
print "cadena: ",cadena

En C
int entero;
float real;

printf("Introduce entero:"); scanf("%d",&entero);
printf("entero: %d",entero);
printf("Introduce real:"); scanf("%d",&real);
printf("entero: %f",real);

char cadena[23];
puts("Introduce cadena");
gets(cadena);

puts(cadena);


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