ASIGNATURA: HERRAMIENTAS WEB PARA LA INVESTIGACION

RESUMEN TRABAJO 3: JAVA

AUTOR: WILLIAM TOLOZA

 

1. Orígenes:

Java nace y da sus primeros pasos en 1991 formando parte de un proyecto de desarrollo de soporte software para electrónica de consumo ( frigoríficos, lavadoras... ), llevado a cabo por un equipo de SUN llamado Green Team. Este primer enfoque le da a Java una de sus más interesantes características: La portabilidad, dado que Java tenia que funcionar en numerosos tipos de CPUs, y por tanto se pensó para ser independiente de la plataforma sobre la que funcione. Esta característica es muy posiblemente la que ha permitido a Java convertirse actualmente en el lenguaje por excelencia para la creación de aplicaciones en Internet.

Este salto de Java para convertirse en un lenguaje de programación para computadores se da definitivamente en 1995 cuando en la versión 2 del navegador web netscape se incluye un interprete para este lenguaje, produciendo de este modo una auténtica revolución en Internet.

Con este nuevo enfoque Java sigue creciendo y saca su versión 1.1 en 1997 con muchas mejoras y adaptaciones, fruto de una revisión sustancial del lenguaje. Java 1.2 aparece a finales de 1998 y más tarde se rebautizará como Java 2.

2. ¿Que es JAVA ?

Sun describe a Java como "simple, orientado a objetos, distribuido, interpretado, robusto, seguro, de arquitectura neutra, portable, de altas prestaciones, multitarea y dinámico".

Java presenta muchas características que lo diferencian de lenguajes similares como C++, empezando por las posibilidades de ejecución.

Básicamente un programa en Java puede ejecutarse como:

1.       Stand Alone: Aplicación independiente.

Aunque cada vez la tecnología Java se acerca más y más al PC de sobremesa, las aplicaciones Java han sido relativamente raras para uso doméstico, por varias razones.

         Las aplicaciones Java pueden necesitar gran cantidad de memoria física.

         La Interfaz Gráfica de Usuario (GUI) no sigue de forma estricta la Guía para la Interfaz Humana' (Human Interface Guidelines), así como tampoco aquella a la que estamos habitualmente acostumbrados. La apariencia de las fuentes no tiene las opciones de optimización activadas por defecto, lo que hace aparecer al texto como si fuera de baja calidad.

         Las herramientas con que cuenta el JDK no son suficientemente potentes para construir de forma simple aplicaciones potentes. Aunque el uso de herramientas como Eclipse, un IDE con licencia GNU de alta calidad, facilita enormemente las tareas de desarrollo.

         Hay varias versiones del Entorno en Tiempo de Ejecución de Java, el JRE. Es necesario tener instalada la versión adecuada. El paquete JRE puede ser de tamaño considerable, 7Mbytes, lo que puede ser un inconveniente a la hora de descargarlo e instalarlo.

         Las aplicaciones basadas en la Web están tomando la delantera frente a aquellas que funcionan como entidades independientes. Las nuevas técnicas de programación producen aplicaciones basadas en un modelo en red cada vez más potentes.

Sin embargo hay aplicaciones Java cuyo uso está ampliamente extendido, como los NetBeans, el entorno de desarrollo (IDE) Eclipse, y otros programas como LimeWire y Azureus para intercambio de archivos. Java también es el motor que usa MATLAB para el renderizado de la interfaz gráfica y para parte del motor de cálculo. Las aplicaciones de escritorio basadas en la tecnología Swing y SWT (Standard Widget Toolkit) suponen una alternativa a la plataforma .Net de Microsoft

2.       Applet: Una aplicación especial que se ejecuta en el navegador del cliente.

La capacidad de los navegadores Web para ejecutar applets de Java ha asegurado la continuidad del uso de Java por el gran público. Flash está más extendido para animaciones interactivas y los desarrolladores estén empezando a usar la tecnología AJAX también en este campo. Java suele usarse para aplicaciones más complejas como la zona de juegos de Yahoo, Yahoo! Games, o reproductores de video

3.       Servlet: Una aplicación especial sin Interfaz que se ejecuta en servidor.

En la parte del servidor, Java es más popular que nunca, con muchos sitios empleando páginas JavaServer, conectores como Tomcat para Apache y otras tecnologías Java.

Sun distribuye gratuitamente desde su página web, el entorno de desarrollo Java llamado indistintamente con estas siglas: JDK, SDK o J2SE. Este paquete incluye como hemos dicho las clases incluidas ya en java, es decir el API de Java. También incluye el compilador de Java y lo que permite a Java funcionar en nuestro ordenador: el JRE (Java Runtime Enviroment).

El JRE incluye los elementos necesarios para hacer funcionar programas java en nuestro ordenador. Principalmente nos instala la Maquina Virtual de Java y los plugins necesarios para el/los navegador/es instalados en nuestro sistema. El JRE también se puede descargar independientemente del entorno de desarrollo, pues se distribuye en un paquete llamado J2RE. Eso quiere decir que si hacemos un programa en Java podrá funcionar en cualquier ordenador del mercado. Es una ventaja significativa para los desarrolladores de software, pues antes tenían que hacer un programa para cada sistema operativo, por ejemplo Windows, Linux, Apple, etc. Esto lo consigue porque se ha creado una Máquina de Java para cada sistema que hace de puente entre el sistema operativo y el programa de Java y posibilita que este último se entienda perfectamente.

Aunque no se haya dado cuenta, allá donde mire verá tecnología Java en acción; en teléfonos móviles, sitios web, buscapersonas, tarjetas inteligentes, televisores, videojuegos, dispositivos personales e incluso automóviles. Los desarrolladores están sacando partido a toda la potencia y facilidad de la tecnología Java para generar nuevas oportunidades en cada campo, ofreciendo navegación a bordo en cada nuevo BMW, permitiendo a los científicos de la NASA explorar la superficie de Marte, proporcionando datos médicos cruciales sobre las tarjetas de la seguridad social de los ciudadanos brasileños y permitiendo a eBay vender más de 1.000 dólares en mercancía bruta por segundo

3. Historial de versiones

El lenguaje Java ha experimentado numerosos cambios desde la versión primigenia, JDK 1.0, así como un enorme incremento en el número de clases y paquetes que componen la librería estándar. Desde J2SE 1.4, la evolución del lenguaje ha sido regulada por el JCP (Java Community Process), que usa Java Specification Requests (JSRs) para proponer y especificar cambios en la plataforma Java. El lenguaje en sí mismo está especificado en la Java Language Specification (JLS), o Especificación del Lenguaje Java. Los cambios en los JLS son gestionados en JSR 901.

4. Filosofía

El lenguaje Java se creó con cinco objetivos principales:

  1. Debería usar la metodología de la programación orientada a objetos.
  2. Debería permitir la ejecución de un mismo programa en múltiples sistemas operativos.
  3. Debería incluir por defecto soporte para trabajo en red.
  4. Debería diseñarse para ejecutar código en sistemas remotos de forma segura.
  5. Debería ser fácil de usar y tomar lo mejor de otros lenguajes orientados a objetos, como C++.

Para conseguir la ejecución de código remoto y el soporte de red y, los programadores de Java a veces recurren a extensiones como CORBA (Common Object Request Broker Architecture), Internet Communications Engine o OSGi respectivamente.

5. Criticas

Java fue creado para abrir una nueva vía en la gestión de software complejo, y es por regla general aceptado que se ha comportado bien en ese aspecto. Sin embargo no puede decirse que Java no tenga grietas, ni que se adapta completamente a todos los estilos de programación, todos los entornos, o todas las necesidades.

General

         Java no ha aportado capacidades estándares para aritmética en punto flotante. El estándar IEEE 754 para “Estándar para Aritmética Binaria en Punto Flotante” apareció en 1985, y desde entonces es el estándar para la industria. Y aunque la aritmética flotante de Java se basa en gran medida en la norma del IEEE, no soporta aún algunas características. Más información al respecto puede encontrarse en la sección final de enlaces externos.

         A raíz de la naturaleza propietaria de Java, la supuesta inflexibilidad para cambiar, y un creciente estrechamiento de líneas alrededor del sector corporativo, se dice que Java es “el nuevo COBOL”. Aunque puede ser una afirmación exagerada, hace referencia a una preocupación real sobre el panorama de futuro de Java.

         El recolector de basura de Java sólo gestiona la memoria, pero el instante en que tiene lugar su tarea no puede controlarse manualmente. Por tanto, aquellos objetos que reservan recursos externos deben ser desalojados de memoria a mano (usando el mecanismo del lenguaje “finally”), o deben mantenerse hasta que acabe la ejecución del programa.

El lenguaje

         En un sentido estricto, Java no es un lenguaje absolutamente orientado a objetos, a diferencia de, por ejemplo, Ruby o Smalltalk. Por motivos de eficiencia, Java ha relajado en cierta medida el paradigma de orientación a objetos, y así por ejemplo, no todos los valores son objetos.

         Por el contrario, los programadores de C++ pueden caer en la confusión con Java, porque en éste los tipos primitivos son siempre variables automáticas, y los objetos siempre residen en el montículo (heap), mientras que en C++ ambos casos están en manos del programador, usando el operador new.

         El código Java puede ser a veces redundante en comparación con otros lenguajes. Esto es en parte debido a las frecuentes declaraciones de tipos y conversiones de tipo manual (casting). También se debe a que no se dispone de operadores sobrecargados, y a una sintaxis relativamente simple. Sin embargo, J2SE 5.0 introduce elementos para tratar de reducir la redundancia, como una nueva construcción para los bucles ‘’’foreach’’’.

         A diferencia de C++, Java no dispone de operadores de sobrecarga definidos por el usuario. Sin embargo esta fue una decisión de diseño que puede verse como una ventaja, ya que esta característica puede hacer los programas difíciles de leer y mantener.

         Java es un lenguaje basado en un solo paradigma.

         Java no permite herencia múltiple como otros lenguajes. Sin embargo el mecanismo de los interfaces de Java permite herencia múltiple de tipos y métodos abstractos.

         El soporte de Java para patrones de texto y la manipulación de éste no es tan potente como en lenguajes como Perl, Ruby o PHP, aunque J2SE 1.4 introdujo las expresiones regulares.

Apariencia

La apariencia externa (el ‘’’look and feel’’’) de las aplicaciones GUI (Graphical User Interface) escritas en Java usando la plataforma Swing difiere a menudo de la que muestran aplicaciones nativas. Aunque el programador puede usar el juego de herramientas AWT (Abstract Windowing Toolkit) que genera objetos gráficos de la plataforma nativa, el AWT no es capaz de funciones gráficas avanzadas sin sacrificar la portabilidad entre plataformas; ya que cada una tiene un conjunto de APIs distinto, especialmente para objetos gráficos de alto nivel. Las herramientas de Swing, escritas completamente en Java, evitan este problema construyendo los objetos gráficos a partir de los mecanismos de dibujo básicos que deben estar disponibles en todas las plataformas. El inconveniente es el trabajo extra requerido para conseguir la misma apariencia de la plataforma destino. Aunque esto es posible (usando GTK+ y el Look-and-Feel de Windows), la mayoría de los usuarios no saben cómo cambiar la apariencia que se proporciona por defecto por aquella que se adapta a la de la plataforma. Mención merece la versión optimizada del Java Runtime que ha desarrollado Apple y que incluye en su sistema operativo, el Mac OS X. Por defecto implemente su propio look-and-feel (llamado Aqua), dando a las aplicaciones Swing ejecutadas en un Macintosh una apariencia similar a la que tendría si se hubiese escrito en código nativo.

6. Enlaces externos

Sun

         Sitio oficial de Java para desarroladores, etc

         Sitio oficial de Java no técnico para usuarios no avanzados

         The Java Language Specification, Tercera edición Descripción documentada del lenguaje Java (también disponible engratis)

         Tutorial de Sun sobre el Lenguaje de programación Java

         Libro blanco original de Java, 1996

         Pruebe su VM

Tutoriales

         The Java Tutorial de Sun Microsystems (online)

         David Flanagan, Java in a Nutshell, Third Edition. O'Reilly & Associates, 1999. ISBN 1565924878

         Thinking in Java, de Bruce Eckel (online)

         Java Course, de A.B. Downey.

         Introduction to Programming Using Java Texto online de David J. Eck

         How to Think Like a Computer Scientist versión de Java

         An introduction to Computer Science using Java By Bradley Kjell. This text focuses on the principles and fundamentals of programming languages and computers in general, and uses Java as it's language of instruction.

         A Java tutorial by Hamed Alhoori, instructor at the University Of Bahrain.

         [9] Java With Passion

         En Castellano:

o        Applets Java

o        Tutorial de Java básico

o        Manual de Java

Recursos

         Java (Sun)

         Computer-Books.us Colección de libros sobre Java disponibles para descarga gratuita.

         Javapedia project

         La Wiki de Java.net

         Sun Certification Resource

         JavaRSS.com Portal de sitios Web sobre

         developerWorks Java Zone - Comunidad de recursos Java

         JavaWhat.com Directorio de recursos de Java

         Noticias e información de Java

Otros

http://www.desarrolloweb.com/articulos/1670.php

Introducción a Java

 

http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_Java

 

 

Hosted by www.Geocities.ws

1