About this entry




Introducción a Java (Introduction to Java, Spanish only)

Este artículo describe a Java como un excelente ideal para el desarrollo de programas diseñados para correr en plataformas múltiples.

Liked it? !

Indice

  1. Porque Java?
  2. Ventajas
  3. Desventajas
  4. Primer Programa en Java: Hello world!
    1. Aplicación
    2. Applet

 

  1. Porque Java?

    Supongamos que nosotros deseamos distribuir un programa escrito en un lenguaje tradicional como Visual Basic. Después de escribir el programa fuente (.frm, .bas por ej) necesitamos compilarlos en archivos de código objeto (.obj) y después enlazar dichos archivos para producir un ejecutable (.exe). Este ejecutable, además de tener todos el código objeto unido, tiene un encabezado para darle al sistema operativo información sobre como debe se ejecutado el archivo (por ej. cuanta memoria necesita).

    Este ejecutable seria el que distribuiríamos. El problema es que tenemos muchas limitaciones. Este programa solo podría ejecutarse en computadoras con el sistema operativo para el cual fue desarrollado. Otros sistemas operativos (aunque estuvieran corriendo sobre la misma arquitectura del computador) no sabrían el formato del encabezado además que no pudieran ejecutar las llamadas al sistema y ni siquiera tendrían las librerías necesarias (como los .dll). Aunque tuvieran las librerías de todos modos ni siquiera sabrían como correrlas!

    Como podría hacer que mi programa corra en diferentes plataformas (diferentes sistemas operativos corriendo sobre diferente hardware)? Una solución programar la aplicación en un lenguaje que sea soportable por varios sistemas operativos. Un problema que surge aquí es que necesitaría distribuir el código fuente (que no siempre es deseable). Otro problema que surge es que en cada sistema operativo las llamadas al sistema serian diferentes. Por lo que se tendrían que hacer adaptaciones al programa cada vez que se quisiera que fuera soportado por una nueva plataforma.

    La solución que propone Java es que el programa no corra sobre el hardware real, sino que corra sobre una maquina virtual. Es decir, dicha maquina no existe sino que es simulada por medio de software. Cada plataforma tendría instalada esta maquina virtual (que es un programa) y a la hora de correr los programas esta maquina virtual los correría. La maquina virtual actuaría como una forma de interprete, el cual va leyendo el programa y ejecutándolo instrucción por instrucción sobre el hardware real.

    A la maquina virtual de Java se le llama Java Virtual Machine (JVM). Los programas fuente de Java ( .java) al compilarse producirían un código objeto ( .class) constituido de las instrucciones de la maquina virtual (java byte codes). La maquina virtual ya incluye un conjunto de librerías para las llamadas al sistema.

     

  2. Ventajas

    1. Programas portables a cualquier plataforma (que cuente como una JVM).
    2. Diseño simple por no tener que ser backward compatible con nadie (que no era el caso de C++, ya que este tenia que ser backward compatible con C).
    3. Completamente orientado a objetos y con soporte de multithreading.
    4. Ideal para Internet por producir programas pequeños

     

  3. Desventajas

    1. Corre significativamente mas despacio que si corriera en hardware real.
    2. Hay que aprender un lenguaje nuevo.

     

  4. Primer Programa en Java: Hello world!

    Pueden bajar Java de http://java.sun.com/

    Java puede generar tres tipos de programas: aplicaciones, applets y servlets. Las aplicaciones corre desde la línea de comandos. El applet y el servlet esta orientado a Internet; el applet corre desde un navegador y el servlet corre desde el servidor.

     

    1. Aplicación

      import java.io.*; class HelloApp { public static void main (String args[]) { System.out.println ("Hello world !"); } }

      Notas

      1. System es un objeto que se refiere al sistema en donde esta corriendo el programa.
      2. out es el objeto de salida, es equivalente al flujo de salida cout de C++.
      3. El nombre del archivo necesita tener el mismo nombre que la clase con extensión .java (HelloApp.java)

       

    2. Applet

      import java.applet.Applet; import java.awt.*; class HelloApp extends Applet { public void paint (Graphics g) { g.drawString ("Hello world !", 0, 20); } }

      Nota

      El objeto Graphics (comúnmente llamado g) se utiliza para manejar la ventana del applet. La clase Graphics define los comandos para manipulación de de imágenes (como drawString). El objeto Graphics también sabe información sobre la ventana tal como su tamaño, tipo de letra, posición, etc.

      Para ejecutar el programa se tiene que hacer referencia a el desde una pagina para ser ejecutado por el navegador.

      <HTML>
      <HEAD>
      <TITLE>Hello world</TITLE>
      </HEAD>
      <BODY>
      <APPLET CODE="HelloApp.class" WIDTH=250 HEIGHT=100>
      </APPLET>
      </BODY>
      </HTML>

      Observelo corriendo!

      Nota

      El comando Applet dentro del HTML le dice al navegador a crear, posicionar y dimensionar la ventana de applet. También asocia al applet con la ventana. Sin embargo el navegador no tiene ni idea de que poner en la ventana. Lo que hace el navegador es llamar al método paint (Graphics) cada vez que desee que se despliegue el contenido de la ventana (la primera vez y cada vez que quiere redesplegar el contenido).

Siguiente articulo que se recomienda leer: Usando Objetos.

Etiquetas de technorati:

Liked it? !

Posted on December 26th | 4 comments | Filed Under: Tutorial de Java