10
¿Que es Java? Historia generaciones

Que es Java

Embed Size (px)

DESCRIPTION

Lenguaje orientado a objetos

Citation preview

Que es Java? Historia generaciones

Que es Java?Historiageneraciones

Qu es java?Java es una tecnologa que se usa para el desarrollo de aplicaciones que convierten a la Web en un elemento ms interesante y til. Java no es lo mismo que javascript, que se trata de una tecnologa sencilla que se usa para crear pginas web y solamente se ejecuta en el explorador.Java le permite jugar, cargar fotografas, chatear en lnea, realizar visitas virtuales y utilizar servicios como, por ejemplo, cursos en lnea, servicios bancarios en lnea y mapas interactivos. Si no dispone de Java, muchas aplicaciones y sitios web no funcionarn.

En trminos prcticosJavaes unlenguaje de programacindepropsito general,concurrente,orientado a objetosy basado enclasesque fue diseado especficamente para tener tan pocas dependencias de implementacin como fuera posible. Su intencin es permitir que losdesarrolladoresde aplicaciones escriban el programa una vez y lo ejecuten en cualquier dispositivo (conocido en ingls comoWORA, o "write once, run anywhere"), lo que quiere decir que elcdigoque es ejecutado en una plataforma no tiene que serrecompiladopara correr en otra. Java es, a partir de 2012, uno de los lenguajes de programacin ms populares en uso, particularmente para aplicaciones decliente-servidorde web, con unos 10 millones de usuarios reportados.El lenguaje de programacin Java fue originalmente desarrollado porJames GoslingdeSun Microsystems(la cual fue adquirida por la compaaOracle) y publicado en 1995 como un componente fundamental de laplataforma Javade Sun Microsystems. Susintaxisderiva en gran medida deCyC++, pero tiene menos utilidades debajo nivelque cualquiera de ellos. Las aplicaciones de Java son generalmentecompiladasabytecode(clase Java) que puede ejecutarse en cualquier mquina virtual Java(JVM) sin importar laarquitectura de la computadorasubyacente.

HistoriaEn Diciembre de1950Patrick Naughton, ingeniero deSun Microsystems, reclut a varios colegas entre ellosJames Gosling y Mike Sheridanpara trabajar sobre un nuevo proyecto conocido como"El proyecto verde".Con la ayuda de otros ingenieros, empezaron a trabajar en una pequea oficina enSand Hill Road en Menlo Park, California. Y as interrumpi todas las comunicaciones regulares con Sun y trabaj sin descanso durante 18 meses.Intentaban desarrollar una nueva tecnologa para programar la siguiente generacin de dispositivos inteligentes, en los queSunvea un campo nuevo a explorar. Crear un lenguaje de programacin fcil de aprender y de usar.En un principio se considerabaC++como lenguaje a utilizar, pero tantoGoslingcomoBill Joylo encontraron inadecuado.Goslingintent primero extender y modificarC++resultando el lenguajeC++ ++ -(++ - porque se aadan y eliminaban caractersticas a C++), pero lo abandon para crear un nuevo lenguaje desde cero al que llamoOak(roble en ingls, segn la versin mas aceptada, por el roble que vea atravs de la ventana de su despacho).

El resultado fue un lenguaje que tena similitudes conC, C++ y Objetive Cy que no estaba ligado a un tipo de CPU concreta.Mas tarde, se cambiara el nombre deOak a Java, por cuestiones de propiedad intelectural, al existir ya un lenguaje con el nombre de Oak. Se supone que le pusieron ese nombre mientras tomaban caf (Java es nombre de un tipo de caf, originario de Asia), aunque otros afirman que el nombre deriva de las siglas deJames Gosling, Arthur Van Hoff, y Andy Bechtolsheim.EnAgosto de 1991Oakya corra sus primeros programas.Para1992, el equipo ya haba desarrollado un sistema en un prototipo llamadoStar7 (*7), dispositivo parecido a una PDA, cuyo nombre vena de la combinacin de teclas del telfono de la oficina delProyecto Greenque permita a los usuarios responder al telfono desde cualquier lugar.

Java ha experimentado numerosos cambios desde la versin primigenia,JDK1.0, as como un enorme incremento en el nmero de clases y paquetes que componen la biblioteca estndar.DesdeJ2SE1.4, la evolucin del lenguaje ha sido regulada por el JCP (Java Community Process), que usaJava Specification Requests(JSRs) para proponer y especificar cambios en la plataforma Java. El lenguaje en s mismo est especificado en laJava Language Specification(JLS), o Especificacin del Lenguaje Java. Los cambios en los JLS son gestionados enJSR 901.JDK 1.0(23 de enerode1996) Primer lanzamiento:comunicado de prensaJDK 1.1(19 de febrerode1997) Principales adiciones incluidas:comunicado de prensauna reestructuracin intensiva del modelo de eventos AWT (Abstract Windowing Toolkit)clases internas (inner classes)JavaBeansJDBC(Java Database Connectivity), para la integracin de bases de datosRMI(Remote Method Invocation)J2SE 1.2(8 de diciembrede1998) Nombre clavePlayground. Esta y las siguientes versiones fueron recogidas bajo la denominacinJava 2y el nombre "J2SE" (Java 2 Platform, Standard Edition), reemplaz a JDK para distinguir la plataforma base de J2EE (Java 2 Platform, Enterprise Edition) y J2ME (Java 2 Platform, Micro Edition). Otras mejoras aadidas incluan:comunicado de prensala palabra reservada (keyword)strictfpreflexin en la programacinla API grfica (Swing) fue integrada en las clases bsicasla mquina virtual (JVM) de Sun fue equipada con uncompiladorJIT(Just in Time) por primera vezJava Plug-inJava IDL, una implementacin de IDL (Lenguaje de Descripcin deInterfaz) para la interoperabilidad conCORBAColecciones (Collections)VersionesJ2SE 1.3(8 de mayode2000) Nombre claveKestrel. Los cambios ms notables fueron:comunicado de prensalista completa de cambiosla inclusin de la mquina virtual deHotSpotJVM (la JVM de HotSpot fue lanzada inicialmente en abril de 1999, para la JVM de J2SE 1.2)RMIfue cambiado para que se basara enCORBAJavaSoundse incluy elJava Naming and Directory Interface(JNDI) en el paquete de bibliotecas principales (anteriormente disponible como una extensin)Java Platform Debugger Architecture(JPDA)J2SE 1.4(6 de febrerode2002) Nombre ClaveMerlin. Este fue el primer lanzamiento de la plataforma Java desarrollado bajo el Proceso de la Comunidad Java comoJSR 59. Los cambios ms notables fueron:comunicado de prensa, lista completa de cambiosPalabra reservadaassert(Especificado enJSR 41.)Expresiones regularesmodeladas al estilo de las expresiones regularesPerlEncadenacin de excepcionesPermite a una excepcin encapsular la excepcin de bajo nivel original.non-blocking NIO (New Input/Output) (Especificado enJSR 51.)Logging API (Specified inJSR 47.)API I/O para la lectura y escritura de imgenes en formatos comoJPEGoPNGParserXMLintegrado y procesadorXSLT(JAXP) (Especificado enJSR 5yJSR 63.)Seguridad integrada y extensiones criptogrficas (JCE,JSSE,JAAS)Java Web Startincluido (El primer lanzamiento ocurri en marzo de 2001 para J2SE 1.3) (Especificado enJSR 56.)J2SE 5.0(30 de septiembrede2004) Nombre clave:Tiger. (Originalmente numerado 1.5, esta notacin an es usada internamente.[2]) Desarrollado bajoJSR 176, Tiger aadi un nmero significativo de nuevas caractersticascomunicado de prensaPlantillas (genricos) proveeconversin de tipos (type safety)en tiempo de compilacin para colecciones y elimina la necesidad de la mayora deconversin de tipos (type casting). (Especificado porJSR 14.)Metadatos tambin llamadosanotaciones, permite a estructuras del lenguaje como las clases o los mtodos, ser etiquetados con datos adicionales, que puedan ser procesados posteriormente por utilidades de proceso de metadatos. (Especificado porJSR 175.)Autoboxing/unboxing Conversiones automticas entretipos primitivos(Como losint) yclases de envoltura primitivas(ComoInteger). (Especificado porJSR 201.)Enumeraciones la palabra reservadaenumcrea unatypesafe, lista ordenada de valores (comoDia.LUNES,Dia.MARTES, etc.). Anteriormente, esto solo poda ser llevado a cabo por constantes enteras o clases construidas manualmente (enum pattern). (Especificado porJSR 201.)Varargs (nmero de argumentos variable) El ltimo parmetro de un mtodo puede ser declarado con el nombre del tipo seguido por tres puntos (e.g.void drawtext(String... lines)). En la llamada al mtodo, puede usarse cualquier nmero de parmetros de ese tipo, que sern almacenados en un array para pasarlos al mtodo.Bucleformejorado La sintaxis para el bucleforse ha extendido con una sintaxis especial para iterar sobre cada miembro de un array o sobre cualquier clase que implementeIterable, como la clase estndarCollection, de la siguiente forma:

void displayWidgets (Iterable widgets) { for (Widget w : widgets) { w.display(); } }Este ejemplo itera sobre el objetoIterablewidgets, asignando, en orden, cada uno de los elementos a la variablew, y llamando al mtododisplay()de cada uno de ellos. (Especificado por JSR 201.)Java SE 6(11 de diciembrede2006) Nombre claveMustang. Estuvo en desarrollo bajo laJSR 270. En esta versin, Sun cambi el nombre "J2SE" porJava SEy elimin el ".0" del nmero de versin.[3]. Est disponible enhttp://java.sun.com/javase/6/. Los cambios ms importantes introducidos en esta versin son:Incluye un nuevo marco de trabajo y APIs que hacen posible la combinacin de Java con lenguajes dinmicos como PHP, Python, Ruby y JavaScript.Incluye el motor Rhino, de Mozilla, una implementacin de Javascript en Java.Incluye un cliente completo de Servicios Web y soporta las ltimas especificaciones para Servicios Web, como JAX-WS 2.0, JAXB 2.0, STAX y JAXP.Mejoras en la interfaz grfica y en el rendimiento.Java SE 7 Nombre claveDolphin. En el ao2006an se encontraba en las primeras etapas de planificacin. Su lanzamiento fue en julio de 2011.Soporte para XML dentro del propio lenguaje.Un nuevo concepto de superpaquete.Soporte paraclosures.Introduccin de anotaciones estndar para detectar fallos en el software.No oficiales:NIO2.Java Module System.Java Kernel.Nueva API para el manejo de Das y Fechas, la cual reemplazara las antiguas clases Date y Calendar.Posibilidad de operar con clases BigDecimal usando operandos.Java SE 8 lanzada en marzo de 2014. Cabe destacar:Incorpora de forma completa la librera JavaFX.Diferentes mejoras en seguridad.Diferentes mejoras en concurrencia.Aade funcionalidad para programacin funcional mediante expresiones Lambda.Mejora la integracin de JavaScript.Nuevas API para manejo de fechas y tiempo (date - time).En el2005se calcula en 4,5 millones el nmero de desarrolladores y 2.500 millones de dispositivos habilitados con tecnologa Java.