Historia de Java

índice

INTRODUCCIÓN

JAVA. SU HISTORIA

OBJETIVOS DE DISEÑO DE LOS DISEÑADORES DE JAVA

LO NUEVO







JAVA. SU HISTORIA

A finales de los años ochenta Sun Microsystems decide introducirse en el mercado de la electrónica de consumo y más concretamente en los equipos domésticos, incluyendo la televisión interactiva.

Java, nace como un lenguaje ideado en sus comienzos para programar electrodomésticos.

Requerimientos de ese lenguaje deseado:

Con esta idea en mente comenzó a trabajar James Gosling en 1990 liderando un pequeño grupo de desarrollo. Gosling decidió que las ventajas de eficiencia de C++ no compensaban el gran coste de pruebas y depuración. Por otro lado, lenguajes como C y C++ deben ser compilados para un chip, y si se cambia el chip, todo el software debe compilarse de nuevo. Este era un problema clave en el campo de la electrónica de consumo. Gosling decide crear un nuevo lenguaje de programación más apropiado. Ese lenguaje llegaría a convertirse en lo que hoy día se conoce como JAVA.

Gosling había estado trabajando en un lenguaje denominado OAK, el cual partía de C++ e intentaba remediar las deficiencias que había apreciado.

volver


OBJETIVOS DE DISEÑO DE LOS DISEÑADORES DE JAVA

LENGUAJE FAMILIAR


Java no sería un lenguaje totalmente nuevo, se parecería a lo que conocemos como C++, así que no le sería tan complicado recalar en los programadores excépticos.

volver


LENGUAJE ORIENTADO A OBJETOS

Un lenguaje es orientado a objetos si ofrece facilidades para definir y manipular objetos : entidades autocontenidas que tienen un estado y a las que se pueden enviar mensajes.

Un lenguaje de programación orientado a objetos tiene dos grandes ventajas :

Para que un lenguaje pueda considerarse orientado a objetos debe soportar como mínimo las características de:

Java define las clases con una sintaxis prácticamente igual a la de C++.
volver


LENGUAJE ROBUSTO

Uno de los problemas más comunes en los lenguajes de programación es la posibilidad de escribir programas que pueden bloquear el sistema. Algunas veces este bloqueo puede ser inmediato, pero en otras ocasiones llega a aparecer inesperadamente porque, por ejemplo, la aplicación accede a zonas de memoria que no estaban siendo ocupadas por otros programas hasta ese momento. Un ejemplo claro de lenguaje no robusto es C. Al escribir código en C o C++ el programador debe hacerse cargo de la gestión de memoria de una forma explícita, solicitando la asignación de bloques a punteros y liberándolos cuando ya no son necesarios. En Java, los punteros, la aritmética de punteros y las funciones de asignación y liberación de memoria (malloc( ) y free( ) ) no existen. En lugar de los punteros se emplean referencias a objetos, los cuales son identificadores simbólicos. El gestor de memoria de Java lleva una contabilidad de las referencias a los objetos. Cuando no existe una referencia a un objeto, éste se convierte en candidato para la recogida de residuos (garbage collection).

volver


LENGUAJE DE ALTO RENDIMIENTO ( MÚLTIPLES THREADS ).

Una de las características del lenguaje es que soporta la concurrencia a través de threads. En ocasiones puede interesarnos dividir una aplicación en varios flujos de control independientes, cada uno de los cuales lleva a cabo sus funciones de manera concurrente. Cuando los distintos flujos de control comparten un mismo espacio lógico de direcciones, se denominan threads. Si estamos trabajando en un Sistema Operativo que soporta sus propios threads, se realiza un mapeo de los de Java sobre éstos.

volver


LENGUAJE PORTABLE

El principal objetivo de los diseñadores de Java, y dado el gran crecimiento de las redes en los últimos años, fue el de desarrollar un lenguaje cuyas aplicaciones una vez compiladas pudiesen ser inmediatamente ejecutables en cualquier máquina y sobre cualquier sistema operativo. Por ejemplo, un programa desarrollado en Java en una estación de trabajo Sun que emplea el sistema operativo Solaris, debería poderse llevar a un PC que utilize sistema operativo Windows NT.

volver


LENGUAJE LO MÁS SIMPLE POSIBLE

Los efectos que aparecen cuando los lenguajes se sobrecargan de características son los siguientes : primero, son, a menudo, costosos de compilar y su soporte en tiempo de ejecución es tan grande que incluso en pequeño programa ocupa un gran espacio de memoria ; segundo, la curva de aprendizaje de esos programas es larga y de pendiente pronunciada ; y tercero, el tiempo de compilación es elevado. Los diseñadores de Java trataron de mantener las facilidades básicas del lenguaje en un mínimo y proporcionar un gran número de extras con las librerias.

volver


LENGUAJE SEGURO

Se pretendía construir un lenguaje de programación que fuese seguro, ésto es, que no pudiera acceder a los recursos del sistema de manera incontrolada. Por este motivo se eliminó la posibilidad de manipular la memoria mediante el uso de punteros y la capacidad de transformación de números en direcciones de memoria ( tal y como se hace en C ) evitando así todo acceso ilegal a la memoria. Esto se asegura porque el compilador Java efectúa una verificación sistemática de conversiones.

volver


LO NUEVO

La gran novedad que aporta Java dentro de las nuevas generaciones de navegadores es la capacidad de desplazar el control de la interactividad de los servidores hacia las máquinas de los usuarios que se utilizan para recorrer Internet. Por la misma estructura del lenguaje, los nuevos navegadores permiten la telecarga de "applets", pequeños fragmentos de programas compactos, precompilados, que pueden entonces interpretar de modo distinto los datos telecargados para producir por ejemplo animaciones, sonido y especialmente la verdadera interactividad fabricando un diálogo hombre-máquina imposible de otro modo.

El lenguaje Java, visto desde un navegador de Internet, es pues un lenguaje que no es ni totalmente interpretado, ni totalmente compilado. El lenguaje se transforma en un código elemental parecido al ensamblador, llamado también p-code o byte-code. Posee la particularidad de ser compacto y por tanto puede ser compilado (traducido a lenguaje máquina) muy rápidamente, en el transcurso de la propia ejecución del programa. El p-code constituye una capa intermedia que facilita enormemente la portabilidad de un entorno o de una máquina a otra. La facilita hasta el punto de lograrla desaparecer. Aparece entonces la "máquina virtual".

Una máquina virtual es una capa lógica que hace creer al programa Java que se ejecuta en un ordenador real (con registros, memoria y procesador), cuando en realidad sólo ve una reconstrucción lógica de un ordenador.

Para ejecutar un programa Java compilado (que está en p-code), es preciso también que cuente con una implementación de la máquina virtual específica donde se desea ejecutar, la cual efectúa la transformación del p-code en un programa comprensible para la máquina.

volver


1
Hosted by www.Geocities.ws