IsAbEl

Home
Introduccion
Historia de JAVA
Caracteristicas
LIBRERIAS
COMPARATIVA DE JAVA Y OTROS LENGUAJES
PALABRAS RESERVADAS
JAVA EN INTERNET
¿POR QUE RECOMIENDAN JAVA?
MI OPINION
BIBLIOGRAFIAS
Historia de JAVA

A. ¿Por qué se diseñó Java?

Los lenguajes de programación C y Fortran se han utilizado para diseñar algunos de los sistemas más complejos en lenguajes de programación estructurada, creciendo hasta formar complicados procedimientos. De ahí provienen términos como "código de espagueti" o "canguros" referentes a programas con múltiples saltos y un control de flujo difícilmente trazable.

No sólo se necesitaba un lenguaje de programación para tratar esta complejidad, sino un nuevo estilo de programación. Este cambio de paradigma de la programación estructurada a la programación orientada a objetos, comenzó hace 30 años con un lenguaje llamado Simula67.

El lenguaje C++ fue un intento de tomar estos principios y emplearlos dentro de las restricciones de C. Todos los compiladores de C++ eran capaces de compilar programas de C sin clases, es decir, un lenguaje capaz de interpretar dos estilos diferentes de programación. Esta compatibilidad ("hacia atrás") que habitualmente se vende como una característica de C++ es precisamente su punto más débil. No es necesario utilizar un diseño orientado a objetos para programar en C++, razón por la que muchas veces las aplicaciones en este lenguaje no son realmente orientadas al objeto, perdiendo así los beneficios que este paradigma aporta.

Así Java utiliza convenciones casi idénticas para declaración de variables, paso de parámetros, y demás, pero sólo considera las partes de C++ que no estaban ya en C.

Las principales características que Java no hereda de C++ son:

 

  • Punteros: Las direcciones de memoria son la característica más poderosa de C++. El inadecuado uso de los punteros provoca la mayoría de los errores de colisión de memoria, errores muy difíciles de detectar. Además, casi todos los virus que se han escrito aprovechan la capacidad de un programa para acceder a la memoria volátil (RAM) utilizando punteros. En Java, no existen punteros, evitando el acceso directo a la memoria volátil.
  • Variables globales: Con ellas cualquier función puede producir efectos laterales, e incluso se pueden producir fallos catastróficos cuando algún otro método cambia el estado de la variable global necesaria para la realización de otros procesos. En Java lo único global es el nombre de las clases.
  • goto: Manera rápida de arreglar un programa sin estructurar el código. Java no tiene ninguna sentencia goto. Sin embargo Java tiene las sentencias break y continue que cubren los casos importantes de goto.
  • Asignación de memoria: La función malloc de C, asigna un número especificado de bytes de memoria devolviendo la dirección de ese bloque. La función free devuelve un bloque asignado al sistema para que lo utilice. Si se olvida de llamar a free para liberar un bloque de memoria, se están limitando los recursos del sistema, ralentizando progresivamente los programas. Si por el contrario se hace un free sobre un puntero ya liberado, puede ocurrir cualquier cosa. Más tarde C++ añadió new y delete, que se usan de forma similar, siendo todavía el programador, el responsable de liberar el espacio de memoria. Java no tiene funciones malloc ni free. Se utiliza el operador new para asignar un espacio de memoria a un objeto en el montículo de memoria. Con new no se obtiene una dirección de memoria sino un descriptor al objeto del montículo. La memoria real asignada a ese objeto se puede mover a la vez que el programa se ejecuta, pero sin tener que preocuparse de ello. Cuando no tenga ninguna referencia de ningún objeto, la memoria ocupada estará disponible para que la reutilice el resto del sistema sin tener que llamar a free o delete. A esto se le llama recogida de basura. El recolector de basura se ejecuta siempre que el sistema esté libre, o cuando una asignación solicitada no encuentre asignación suficiente.
  • Conversión de tipos insegura: Los moldeados de tipo (type casting) son un mecanismo poderoso de C y C++ que permite cambiar el tipo de un puntero. Esto requiere extremada precaución puesto que no hay nada previsto para detectar si la conversión es correcta en tiempo de ejecución. En Java se puede hacer una comprobación en tiempo de ejecución de la compatibilidad de tipos y emitir una excepción cuando falla.

B. Comienzos

Java fue diseñado en 1990 por James Gosling, de Sun Microsystems, como software para dispositivos electrónicos de consumo. Curiosamente, todo este lenguaje fue diseñado antes de que diese comienzo la era World Wide Web, puesto que fue diseñado para dispositivos electrónicos como calculadoras, microondas y la televisión interactiva.

Imagen 2: Logotipo de la empresa Sun Microsystems

En los primeros años de la década de los noventa, Sun Microsystems decidió intentar introducirse en el mercado de la electrónica de consumo y desarrollar programas para pequeños dispositivos electrónicos. Tras unos comienzos dudosos, Sun decidió crear una filial, denominada FirstPerson Inc., para dar margen de maniobra al equipo responsable del proyecto.

Inicialmente Java se llamó Oak (roble en inglés), aunque tuvo que cambiar de denominación, debido a que dicho nombre ya estaba registrado por otra empresa. Se dice este nombre se le puso debido a la existencia de tal árbol en los alrededores del lugar de trabajo de los promotores del lenguaje.

Tres de las principales razones que llevaron a crear Java son:

  1. Creciente necesidad de interfaces mucho más cómodas e intuitivas que los sistemas de ventanas que proliferaban hasta el momento.
  2. Fiabilidad del código y facilidad de desarrollo. Gosling observó que muchas de las características que ofrecían C o C++ aumentaban de forma alarmante el gran coste de pruebas y depuración. Por ello en los sus ratos libres creó un lenguaje de programación donde intentaba solucionar los fallos que encontraba en C++.
  3. Enorme diversidad de controladores electrónicos. Los dispositivos electrónicos se controlan mediante la utilización de microprocesadores de bajo precio y reducidas prestaciones, que varían cada poco tiempo y que utilizan diversos conjuntos de instrucciones. Java permite escribir un código común para todos los dispositivos.

Por todo ello, en lugar de tratar únicamente de optimizar las técnicas de desarrollo y dar por sentada la utilización de C o C++, el equipo de Gosling se planteó que tal vez los lenguajes existentes eran demasiado complicados como para conseguir reducir de forma apreciable la complejidad de desarrollo asociada a ese campo. Por este motivo, su primera propuesta fue idear un nuevo lenguaje de programación lo más sencillo posible, con el objeto de que se pudiese adaptar con facilidad a cualquier entorno de ejecución.

Basándose en el conocimiento y estudio de gran cantidad de lenguajes, este grupo decidió recoger las características esenciales que debía tener un lenguaje de programación moderno y potente, pero eliminando todas aquellas funciones que no eran absolutamente imprescindibles.

C. Primeros proyectos en que se aplicó Java

El proyecto Green fue el primero en el que se aplicó Java, y consistía en un sistema de control completo de los aparatos electrónicos y el entorno de un hogar. Con este fin se construyó un ordenador experimental denominado *7 (Star Seven). El sistema presentaba una interfaz basada en la representación de la casa de forma animada y el control se llevaba a cabo mediante una pantalla sensible al tacto. En el sistema aparecía ya Duke, la actual mascota de Java.

Imagen 3: Icono de Duke, la mascota de Java

Más tarde Java se aplicó a otro proyecto denominado VOD (Video On Demand) en el que se empleaba como interfaz para la televisión interactiva que se pensaba iba a ser el principal campo de aplicación de Java. Ninguno de estos proyectos se convirtió nunca en un sistema comercial, pero fueron desarrollados enteramente en un Java primitivo.

Una vez que en Sun se dieron cuenta de que a corto plazo la televisión interactiva no iba a ser un gran éxito, instaron a FirstPerson a desarrollar nuevas estrategias que produjeran beneficios. Entre ellas se encontraba la aplicación de Java a Internet, la cual no se consideró productiva en ese momento.

D. Resurgimiento de Java

Aunque muchas de las fuentes consultadas señalan que Java no llegó a caer en un olvido, lo cierto es que tuvo que ser Bill Joy (cofundador de Sun y uno de los desarrolladores principales del sistema operativo Unix de Berckley) el que sacó a Java del letargo en que estaba sumido. Joy juzgó que Internet podría llegar a ser el campo adecuado para disputar a Microsoft su primacía en el terreno del software, y vio en Oak el instrumento idóneo para llevar a cabo estos planes.

Para poder presentarlo en sociedad se tuvo que modificar el nombre de este lenguaje de programación y se tuvo que realizar una serie de modificaciones de diseño para poderlo adaptar al propósito mencionado. Así Java fue presentado en sociedad en agosto de 1995.

Algunas de las razones que llevaron a Bill Joy a pensar que Java podría llegar a ser rentable son:

  • Java es un lenguaje orientado a objetos: Esto es lo que facilita abordar la resolución de cualquier tipo de problema.
  • Es un lenguaje sencillo, aunque sin duda potente.
  • La ejecución del código Java es segura y fiable: Los programas no acceden directamente a la memoria del ordenador, siendo imposible que un programa escrito en Java pueda acceder a los recursos del ordenador sin que esta operación le sea permitida de forma explícita. De este modo, los datos del usuario quedan a salvo de la existencia de virus escritos en Java. La ejecución segura y controlada del código Java es una característica única, que no puede encontrarse en ninguna otra tecnología.
  • Es totalmente multiplataforma: Es un lenguaje sencillo, por lo que el entorno necesario para su ejecución es de pequeño tamaño y puede adaptarse incluso al interior de un navegador.
Las consecuencias de la utilización de Java junto a la expansión universal de Internet todavía están comenzando a vislumbrarse
 
__________________________________________________________________________________
 
INFORMACION DEL LIBRO
 

 

HISTORIA DE JAVA

 

El lenguaje de programación Java fue desarrollado por Sun Microsystems en 1991. Nace como parte de un proyecto de investigación para desarrollar software para comunicación entre aparatos electrónicos de consumo como vídeos, televisores, equipos de música, etc. Durante la fase de investigación surgió un problema que dificultaba enormemente el proyecto iniciado: cada aparato tenía un microprocesador diferente y muy poco espacio de memoria; esto provocó un cambio en el rumbo de la investigación que desembocó en la idea de escribir un nuevo lenguaje de programación independiente del dispositivo que fue bautizado inicialmente como Oak.

La explosión de Internet en 1994, gracias al navegador gráfico Mosaic para la Word Wide Web (WWW), no pasó desapercibida para el grupo investigador de Sun. Se dieron cuenta de que los logros alcanzados en su proyecto de investigación eran perfectamente aplicables a Internet. Comparativamente, Internet era como un gran conjunto de aparatos electrónicos de consumo, cada uno con un procesador diferente. Y es cierto; básicamente, Internet es una gran red mundial que conecta múltiples ordenadores con diferentes sistemas operativos y diferentes arquitecturas de microprocesadores, pero todos tienen en común un navegador que utilizan para comunicarse entre sí. Esta idea hizo que el grupo investigador abandonara el proyecto de desarrollar un lenguaje que permitiera crear aplicaciones que se ejecutaran en cualquier ordenador de Internet con el único soporte de un navegador.

A partir de aquí ya todo es conocido. Se empezó a hablar de Java y de sus aplicaciones, conocidas como applets. Un applet es un programa escrito en Java que se ejecuta en el contexto de una página Web en cualquier ordenador, independiente de su sistema operativo y de la arquitectura de su procesador. Para ejecutar un applet sólo se necesita un navegador que soporte la maquina virtual de Java como, por ejemplo, Microsoft Internet Explorer o Netscape. Utilizando un navegador de estos, se puede descargar la página Web que contiene el applet y ejecutarlo. Precisamente en este campo, es donde Java como lenguaje de programación no tiene competidores. No obstante, con Java se puede programar cualquier cosa, razón por que también puede ser considerado como un lenguaje de propósito general; pero, desde este punto de vista, hoy por hoy, Java tiene muchos competidores que le sobrepasan con claridad; por ejemplo Ada o C++.

 
 
 

______________________________________________________________________________
 

¿QUÉ ES JAVA?

La plataforma Java consta de las siguientes partes:

 

Desde ya hace un tiempo venimos escuchado en todas partes sobre la tecnología Java, pero ¿Qué es exactamente esta tecnología? Empecemos conociendo que está compuesta por 2 partes:

- El lenguaje de programación, y
- La plataforma

El lenguaje de programación Java

Podemos empezar diciendo que el lenguaje Java es de alto nivel (*) y sus características más importantes son:

·                     Lenguaje orientado a objetos.

·                     Java es un lenguaje sencillo.

·                     Independiente de plataforma

·                     Brinda un gran nivel de seguridad

·                     Capacidad multihilo

·                     Gran rendimiento

·                     Creación de aplicacionesdistribuidas

·                     Su robustez o lo integrado que tiene

·                     el protocolo TCP/IP lo que lo hace un lenguaje ideal para Internet.

Tradicionalmente se han dividido los lenguajes en compilados e interpretados. Los primeros necesitan ser traducidos por un programa llamado compilador al lenguaje máquina, que es el que entiende el ordenador. Como ejemplo de estos lenguajes podríamos citar a C, C++, Visual Basic, Clipper,etc. Los interpretados, en cambio, son traducidos mientras se ejecutan, por ejemplo HTML, WML o XML, por lo cual no necesitan ser compilados.

Así pues la diferencia entre estos lenguajes radica en la manera de ejecutarlos. Mientras que los compilados sólo se compilan una vez y lo hacen pasando todo el programa a código máquina (si da un error aunque sea en la ultima línea no podríamos ejecutar nada de nada), en el momento que lo hemos compilado correctamente se genera un archivo .exe que se puede ejecutar tantas veces como queramos sin tener que volver a compilar. Los interpretados en cambio, cada vez que los queramos ejecutar tendremos que interpretarlos línea a línea, es más lento, pero puede ocurrir un error en la ultima línea y a diferencia de los compilados, el programa se ejecuta justo hasta la línea que produce el error.

Java está diseñado para que un programa escrito en este lenguaje sea ejecutado independientemente de la plataforma (hardware, software y sistema operativo) en la que se esté actuando. Esta portabilidad se consigue haciendo de Java un lenguaje medio interpretado medio compilado. ¿Cómo se come esto? Pues se coge el código fuente, se compila a un lenguaje intermedio cercano al lenguaje máquina pero independiente del ordenador y el sistema operativo en que se ejecuta (llamado en el mundo Java bytecodes).

Finalmente, se interpreta ese lenguaje intermedio por medio de un programa denominado máquina virtual de Java (JVM), que sí depende de la plataforma.

Los java bytecodes permiten el ya conocido “write once, run anywhere” (compila una sola vez y ejecútalo donde quieras). Podemos compilar nuestros programas a bytecodes en cualquier plataforma que tenga el compilador Java. Los bytecodes luego pueden ejecutarse en cualquier implementación de la máquina virtual de Java (JVM). Esto significa que mientras el ordenador tenga un JVM, el mismo programa escrito en Java puede ejecutarse en Windows, Solaris, iMac, Linux, etc.

La plataforma Java

Con plataforma nos referimos al ambiente de hardware y software en donde el programa se ejecuta, por ejemplo, plataformas como Linux, Solaris, Windows 2003 y MacOS. En casi todos los casos las plataformas son descritas como la combinación del sistema operativo y el hardware. La plataforma Java se diferencia de estas plataformas, es que es una plataforma sólo de software y se ejecuta sobre las otras plataformas de hardware.

La plataforma Java tiene 2 componentes:

·                     La máquina virtual de Java (JVM)

·                     El Java API (Application Programming Interface)

Ya hemos visto algo de la máquina virtual de Java (JVM); es la base de la plataforma Java y es llevada a diferentes plataformas de hardware.

El Java API es una gran colección de componentes de software que proporcionan muchas utilidades para el programador, por ejemplo, los API’s para las interfases gráficas. Los API’s de Java están agrupados en librerías de ciertas Clases e interfaces, estas librerías son conocidas como paquetes.

El siguiente gráfico describe un programa que se está ejecutando sobre la plataforma Java. Como vemos, el Java API y la máquina virtual aíslan al programa del hardware.

(*) Lenguajes de alto nivel = son aquellos en los que las instrucciones o sentencias son escritas con palabras similares a las de los lenguajes humanos (mayormente en Inglés). Esto facilita la escritura y comprensión del código al programador.

_____________________________________________________________________________________
 
INFORMACION DEL LIBRO
 

 

HISTORIA DE JAVA

 

El lenguaje de programación Java fue desarrollado por Sun Microsystems en 1991. Nace como parte de un proyecto de investigación para desarrollar software para comunicación entre aparatos electrónicos de consumo como vídeos, televisores, equipos de música, etc. Durante la fase de investigación surgió un problema que dificultaba enormemente el proyecto iniciado: cada aparato tenía un microprocesador diferente y muy poco espacio de memoria; esto provocó un cambio en el rumbo de la investigación que desembocó en la idea de escribir un nuevo lenguaje de programación independiente del dispositivo que fue bautizado inicialmente como Oak.

La explosión de Internet en 1994, gracias al navegador gráfico Mosaic para la Word Wide Web (WWW), no pasó desapercibida para el grupo investigador de Sun. Se dieron cuenta de que los logros alcanzados en su proyecto de investigación eran perfectamente aplicables a Internet. Comparativamente, Internet era como un gran conjunto de aparatos electrónicos de consumo, cada uno con un procesador diferente. Y es cierto; básicamente, Internet es una gran red mundial que conecta múltiples ordenadores con diferentes sistemas operativos y diferentes arquitecturas de microprocesadores, pero todos tienen en común un navegador que utilizan para comunicarse entre sí. Esta idea hizo que el grupo investigador abandonara el proyecto de desarrollar un lenguaje que permitiera crear aplicaciones que se ejecutaran en cualquier ordenador de Internet con el único soporte de un navegador.

A partir de aquí ya todo es conocido. Se empezó a hablar de Java y de sus aplicaciones, conocidas como applets. Un applet es un programa escrito en Java que se ejecuta en el contexto de una página Web en cualquier ordenador, independiente de su sistema operativo y de la arquitectura de su procesador. Para ejecutar un applet sólo se necesita un navegador que soporte la maquina virtual de Java como, por ejemplo, Microsoft Internet Explorer o Netscape. Utilizando un navegador de estos, se puede descargar la página Web que contiene el applet y ejecutarlo. Precisamente en este campo, es donde Java como lenguaje de programación no tiene competidores. No obstante, con Java se puede programar cualquier cosa, razón por que también puede ser considerado como un lenguaje de propósito general; pero, desde este punto de vista, hoy por hoy, Java tiene muchos competidores que le sobrepasan con claridad; por ejemplo Ada o C++.

Enter supporting content here