ASIGNATURA: HERRAMIENTAS WEB PARA
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.
•
• 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
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
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
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
El lenguaje Java se creó con cinco objetivos principales:
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.
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.
• 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.
• 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.
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.
• 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
• 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:
• Computer-Books.us Colección de libros sobre Java disponibles para descarga gratuita.
• 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