La Empresa
Productos
Servicios
Contáctenos

» ¿Qué es...? Java


A principios de la pasada década la compañía Sun creó un grupo de trabajo para desarrollar un sistema para controlar electrodomésticos y pequeños ordenadores personales (PDAs) que, además, permitiera la conexión a redes de ordenadores

Su objetivo era crear un hardware polivalente, con un Sistema Operativo eficiente (SunOS) y un lenguaje de desarrollo denominado Oak, el precursos de Java. El proyecto finalizó en 1992 y resultó un completo fracaso debido al excesivo coste del producto, con relación a alternativas similares, tras lo cual el grupo se disolvió, quedando como resultado del proyecto, únicamente, el lenguaje Oak.

Es en esta época cuando empieza a aparecer a nivel comercial Internet, con el navegador Mosaic para acceso al WWW y, gracias a la acertada decisión de distribuir Oak por Internet, éste se popularizó y consiguió que una gran cantidad de programadores lo depurasen y terminasen por perfilar la forma y usos del mismo, de manera similar a lo que está sucediendo con Linux. A partir de ese momento el lenguaje se difunde a una velocidad vertiginosa, añadiéndosele más funcionalidad y compatibilidad para TCP/IP, pero gracias a ese gran éxito hubo que cambiarle el nombre, ya que existía otro con el mismo.

El nombre de Java surgió en una sesión de brainstorming, y no es ningún acrónimo, simplemente es el nombre de algo que les gusta mucho a los programadores: una taza de café caliente (java en argot americano). Así que, Sun lanzó las primeras versiones de este lenguaje a principios de 1995, fomentando su uso en la comunidad informática, concediendo licencias sin problemas y extendiendo las especificaciones y funcionalidad del lenguaje.

Java es un lenguaje de desarrollo, orientado a objetos, de propósito general desarrollado por Sun Microsystems, y como tal es válido para realizar todo tipo de aplicaciones, aunque es más conocido por un tipo particular de aplicaciones que ejecutan los navegadores de Internet. Incluye una combinación de características que lo hacen único y está siendo adoptado por multitud de fabricantes como herramienta básica para el desarrollo de aplicaciones comerciales de gran repercusión. Información sobre el lenguaje Java, y unos buenos tutoriales se puede encontrar en http://www.dcc.uchile.cl/~lmateu/Java/Apuntes/java.htm , en http://members.es.tripod.de/froufe/introduccion/indice.html y http://tutorjava.8k.com. Desde esta última dirección se puede bajar un fichero Zip de unos 5.3 MB que contiene las más de 700 páginas HTML que componen el Tutor, junto con todos los ficheros de gráficos, de código fuente, de clases, etc.

¿Qué lo hace distinto de los demás lenguajes?

Una de las características más importantes es que los programas "ejecutables", creados por el compilador de Java, son independientes de la arquitectura. Se ejecutan indistintamente en una gran variedad de equipos con diferentes microprocesadores y sistemas operativos.

De momento, es público y puede conseguirse un JDK (Java Developer's Kit) o Kit de desarrollo de aplicaciones Java gratis en http://java.sun.com/. Permite escribir Applets (pequeños programas que se insertan en una página HTML) y se ejecutan en el ordenador que la está visualizando.

Se pueden escribir aplicaciones para intranets, aplicaciones cliente/servidor, aplicaciones distribuidas en redes locales y en Internet. Es fácil de aprender y está bien estructurado. Las aplicaciones son fiables. Puede controlarse su seguridad frente al acceso a recursos del sistema y es capaz de gestionar permisos y criptografía. También, según Sun, la seguridad frente a virus a través de redes locales e Internet está garantizada, aunque, al igual que ha ocurrido con otras tecnologías y aplicaciones, se han descubierto, y posteriormente subsanado, "agujeros" en la seguridad de Java que han sido solucionados más tarde.

 

Java tiene una gestión de memoria automática que reduce la complejidad de la tarea de programación; la memoria no es accesible directamente, lo que reduce la cantidad de virus y bugs en el programa. Los navegadores actuales incorporan los mecanismos para poder conceder permisos extraordinarios a algunos applets que vengan firmados digitalmente por entidades de confianza.

¿Qué se puede programar con Java?

Java es un lenguaje de propósito general y puede programarse en él cualquier cosa:

Aplicaciones independientes. Como con cualquier otro lenguaje de propósito general.

Applets. Pequeñas aplicaciones que se ejecutan en un documento HTML, siempre y cuando el navegador soporte Java, como ocurre con los navegadores HotJava y las últimas versiones de Netscape Navigator e Internet Explorer de Microsoft.

Servlets. Son aplicaciones que se ejecutan en los servidores web para automatizar tareas y procesar peticiones de los clientes. (La alternativa Java a las páginas ASP en servidores de Microsoft, pero con ventajas muy interesantes).

Para el colectivo de programadores que conocen la programación orientada a objetos, el cambio a Java puede ser realmente sencillo. Es un lenguaje bien estructurado, sin punteros y sin necesidad de tener que controlar la asignación de memoria a estructuras de datos u objetos.

Para los programadores en C++ también es sencillo el cambio, ya que la sintaxis es prácticamente la misma que en este lenguaje. Para todo aquel que no conozca la programación orientada a objetos, este lenguaje es ideal para aprender todos sus conceptos, ya que en cada paso de su aprendizaje se va comprobando que las cosas se hacen en la forma natural de hacerlas, sin sorpresas ni comportamientos extraños de los programas. A medida que se va aprendiendo, se va fomentando en el programador, y sin esfuerzo, un buen estilo de programación orientada a objetos. En realidad, no puede ser de otra forma, ya que Java impide "hacer cosas extrañas" y, además, no permite "abandonar" la programación orientada a objetos, como ocurre con otros lenguajes de programación. Esto es bastante conveniente, de lo contrario, un programador que está aprendiendo puede sentir la tentación de "volver" a lo que conoce (la programación tradicional).

 

 

Como ayuda, Java dispone de una extensa librería de clases para administrar el interface de los usuarios, manipular o crear programas, acceso a bases de datos, para seguridad, establecer comunicaciones, etc.; ésta acelera el desarrollo del programa, ya que el programador puede utilizar lo que ya está escrito y funcionando, sin necesidad de hacerlo todo él mismo. Otra gran ventaja que se manifiesta es que sólo es necesario transferir por la red programas pequeños, puesto que la librería ya existe en las plataformas Java. Las Piezas Java (Java Beans) es la norma en la que se basan todos los componentes Java, y el programador puede crear aplicaciones rápidamente uniendo piezas ya creadas. El API JavaBeans permite escribir componentes software en Java, que son unas unidades reutilizables y auto-contenidas que pueden unirse visualmente en componentes compuestos, applets, aplicaciones y servlets utilizando herramientas visuales de desarrollo de aplicaciones.

Características del lenguaje

- Es intrínsecamente orientado a objetos.

- Funciona perfectamente en red.

- Aprovecha características de la mayoría de los lenguajes modernos evitando sus inconvenientes. En particular los del C++.

- Tiene una gran funcionalidad gracias a sus librerías de clases.

- No tiene punteros manejables por el programador, aunque los maneja interna y transparentemente.

- El manejo de la memoria no es un problema, la gestiona el propio lenguaje y no el programador.

- Genera aplicaciones con pocos errores posibles.

- Incorpora Multi-Threading (para permitir la ejecución de tareas concurrentes dentro de un mismo programa).

El lenguaje Java puede considerarse como una evolución del C++. La sintaxis es parecida a la de este lenguaje. A pesar de que puede considerarse como una evolución del C++ no acarrea los inconvenientes del mismo, ya que Java fue diseñado "partiendo de cero", es decir, no necesitaba ser compatible con versiones anteriores de ningún lenguaje como ocurre con C++ y C.

Gracias a que fue diseñado "partiendo de cero" ha conseguido convertirse en un lenguaje orientado a objetos puro, limpio y práctico. No permite programar mediante otra técnica que no sea la programación orientada a objetos (POO) y, una vez superado el aprendizaje de la programación orientada a objetos, es realmente sencillo aprender Java.

Aunque estrictamente hablando el lenguaje Java es interpretado, necesita de un proceso previo de compilación. Una vez "compilado" el programa, se crea un fichero que almacena lo que se denomina bytecodes o j_code (pseudocódigo prácticamente al nivel de código máquina). Para ejecutarlo, es necesario un "intérprete", la JVM (Java Virtual Machine) máquina virtual Java. De esta forma, es posible compilar el programa en una estación UNIX y ejecutarlo en otra con Windows95 utilizando la máquina virtual Java para Windows95. Esta JVM se encarga de leer los bytecodes y traducirlos a instrucciones ejecutables directamente en un determinado microprocesador, de una forma bastante eficiente. La JVM se convierte en algo intermedio entre el código de bits y un sistema operativo, de esta forma, desde la perspectiva del código de bits, siempre se está trabajando en el mismo ordenador

Que el programa deba ser "interpretado" no hace que sea poco eficiente en cuanto a velocidad, ya que la interpretación se hace prácticamente al nivel de código máquina. Por ejemplo, es mucho más rápido que cualquier otro programa interpretado como por ejemplo Visual Basic, aunque es más lento que el mismo programa escrito en C++. Esta deficiencia en cuanto a la velocidad, puede ser aminorada por los compiladores Just-In-Time (JIT). Un compilador JIT transforma los bytecodes de un programa o un applet en código nativo de la plataforma donde se ejecuta, por lo que es más rápido. Suelen ser incorporados por los navegadores, como Netscape o Internet Explorer.

El lenguaje Java es muy robusto. Las aplicaciones creadas en este lenguaje son susceptibles de contener pocos errores, principalmente porque la gestión de memoria y punteros es realizada por el propio lenguaje y no por el programador. Bien es sabido que la mayoría de los errores en las aplicaciones vienen producidos por fallos en la gestión de punteros o la asignación y liberación de memoria. Además, el lenguaje contiene estructuras para la detección de excepciones (errores de ejecución previstos) y permite obligar al programador a escribir código fiable mediante la declaración de excepciones posibles para una determinada clase reutilizable.

La Máquina Virtual Java (JVM)

La máquina virtual Java es la idea revolucionaria del lenguaje. Es la entidad que proporciona la independencia de plataforma para los programas Java "compilados" en byte-code.

Un mismo programa fuente compilado en distintas plataformas o sistemas operativos, genera el mismo fichero en byte-code. Esto es lógico, ya que se supone que el compilador de Java traduce el fichero fuente a código ejecutable por una máquina que únicamente existe en forma virtual (aunque se trabaja en la construcción de microprocesadores que ejecuten directamente el byte-code).

Evidentemente, si un mismo programa en byte-code puede ser ejecutado en distintas plataformas es porque existe un traductor de ese byte-code a código nativo de la máquina sobre la que se ejecuta. Esta tarea es realizada por la JVM. Existe una versión distinta de esta JVM para cada plataforma. Esta JVM se carga en memoria y va traduciendo "al vuelo", los byte-codes a código máquina. La JVM no ocupa mucho espacio en memoria, piénsese que fue diseñada para poder ejecutarse sobre pequeños electrodomésticos como teléfonos, televisores, etc. Por tanto, una de las características que diferencia a Java de otros lenguajes es que no se necesita volver a escribir el código fuente para diferentes sistemas operativos ni para nuevos procesadores.

JavaScript

JavaScript es una variación del lenguaje Java. Desarrollado por Netscape y Sun, fue diseñado para simplificar la creación de contenidos interactivos en páginas web sin necesidad de tener que programar applets en Java. En lugar de ello se utilizan técnicas más sencillas mediante el lenguaje JavaScript que es más flexible, aunque mucho menos potente.

El lenguaje JavaScript es totalmente interpretado por el navegador. El código fuente se incluye como parte de la página web en HTML y es el navegador el encargado de "interpretar" el código fuente. Esto mismo podría hacerse en Java, pero no de una manera tan sencilla como con JavaScript, ya que este lenguaje fue pensado para acercar Java a programadores inexpertos y creadores de contenidos HTML sin conocimientos avanzados de programación.

Diferencias entre Java y Java Script:

- Java es compilado, mientras que JavaScript es totalmente interpretado.

- Java es orientado a objetos. JavaScript utiliza objetos, pero no permite la programación orientada a objetos.

- En JavaScript no es necesario declarar las variables y en Java sí.

- En JavaScript, las comprobaciones de validez de referencias a objetos se realizan en tiempo de ejecución, mientras que en Java se realiza en tiempo de compilación.

- JavaScript tiene un número limitado de tipos de datos y clases.

- Los applets Java se transmiten como código aparte de la página Web. En JavaScript, los applets se transmiten conjuntamente con la página web (embebidos en ella).


// COPYRIGHT 2001-2012 BTW SA


PIEDRAS 338  1º PISO "9"
C1070AAH, Buenos Aires, Argentina
Tel.: (5411) 5032-0250 Fax: (5411) 5032-0220


BTWSA
ISO 9001:2000