Está en la página 1de 21

Resmen Este artculo pretende ser una lectura sobre los conceptos bsicos, la historia y las diferentes versiones

y ediciones disponibles de Java. Intenta acercar al programador, y al interesado en estas tecnologas, a conocer con mayor profundidad lo que representa el mundo de Java. Tabla de contenidos Qu es Java?Caractersticas de JavaEl recolector de basuraLa plataforma virtual JavaEl lenguaje de programacin JavaOtrasobservacionesCmo surge Java? Historia de la tecnologa JavaPrimeros proyectos en que se aplic JavaResurgimiento de JavaJava en cdigo abiertoCules son las diferencias entre JRE y SDK?Qu ediciones de Java tenemos a nuestra disposicin?Versiones de JavaIDE's Qu es Java? Java es toda una tecnologa orientada al desarrollo de software con el cual podemos realizar cualquier tipo deprograma. Hoy en da, la tecnologa Java ha cobrado mucha importancia en el mbito de Internet gracias a suplataforma J2EE. Pero Java no se queda ah, ya que en la industria para dispositivos mviles tambin hay una granacogida para este lenguaje.La tecnologa Java est compuesta bsicamente por 2 elementos: el lenguaje Java y su plataforma. Conplataforma nos referimos a la mquina virtual de Java (Java Virtual Machine).Java tambin es un lenguaje de programacin. En la actualidad es un lenguaje muy extendido y cada vez cobrams importancia tanto en el mbito de Internet como en la informtica en general. Est desarrollado por lacompaaSun Microsystems con gran dedicacin y siempre enfocado a cubrir las necesidades tecnolgicas mspunteras. Caractersticas de Java Una de las principales caractersticas por las que Java se ha hecho muy famoso es que es un lenguajeindependiente de la plataforma. Eso quiere decir que si hacemos un programa en Java podr funcionar encualquier ordenador del mercado. Es una ventaja significativa para los desarrolladores de software, pues antestenan que hacer un programa para cada sistema operativo, por ejemplo Windows, Linux, Apple, etc. Esto loconsigue porque se ha creado una Mquina de Java para cada sistema que hace de puente entre el sistema Java, su historia, ediciones, versiones y caractersticas como plataforma y lenguaje de programacin @ Club DesarrolladoresPgina 1/9

operativo y el programa de Java y posibilita que este ltimo se entienda perfectamente.La independencia de plataforma es una de las razones por las que Java es interesante para Internet, ya quemuchas personas deben tener acceso con ordenadores distintos. A su vez, Java est desarrollndose inclusopara distintos tipos de dispositivos adems del ordenador como mviles, agendas y en general para cualquier"cosa" que se le ocurra a la industria. Lo que favoreci el crecimiento y difusin del lenguaje Java es su capacidad deque el cdigo funcione sobre cualquier plataforma de software y hardware. Esto significa que nuestro mismoprograma escrito para Linux puede ser ejecutado en Windows sin ningn problema. Adems es un lenguajeorientado a objetos que resuelve los problemas en la complejidad de los sistemas, entre otras.Esto agiliza el proceso de desarrollo substancialmente, suponiendo que usted va a lanzar un producto paradiversos sistemas operativos(Windows,Linux,AIX,Solaris) y procesadores( Sparc, x86(Intel), HP-UX , Alpha )... elrealizarlo para cada combinacin posible sera una magna obra de Ingeniera, si utiliza Java puede concentrar susesfuerzosunicamente en un producto, y debido a que existen diversos JRE: Para Linux, Solaris, Windows y otrossistemas operativos, deja los detalles especficos de Plataforma (JVM) al JRE y concentra sus esfuerzos en un soloproducto. El recolector de basura Un argumento en contra de lenguajes como C++ es que los programadores se encuentran con la carga aadidade tener que administrar la memoria solicitada dinmicamente de forma manual:En C++, el desarrollador puede asignar memoria en una zona conocida como heap (montculo) para crearcualquier objeto, y posteriormente desalojar el espacio asignado cuando desea borrarlo. Un olvido a la hora dedesalojar memoria previamente solicitada puede llevar a una fuga de memoria, ya que el sistema operativoseguir pensando que esa zona de memoria est siendo usada por una aplicacin cuando en realidad no es as.As, un programa mal diseado podra consumir una cantidad desproporcionada de memoria. Adems, si unamisma regin de memoria es desalojada dos veces el programa puede volverse inestable y llevar a un eventualcuelgue. No obstante, se debe sealar que C++ tambin permite crear objetos en la pila de llamadas de unafuncin o bloque, de forma que se libere la memoria (y se ejecute el destructor del objeto) de forma automtica alfinalizar la ejecucin de la funcin o bloque.En Java, este problema potencial es evitado en gran medida por el recolector automtico de basura (o automaticgarbagecollector). El programador determina cundo se crean los objetos y el entorno en tiempo de ejecucin deJava (Java runtime) es el responsable de gestionar el ciclo de vida de los objetos. El programa, u otros objetospueden tener localizado un

objeto mediante una referencia a ste (que, desde un punto de vista de bajo nivel esuna direccin de memoria). Cuando no quedan referencias a un objeto, el recolector de basura de Java borra elobjeto, liberando as la memoria que ocupaba previniendo posibles fugas (ejemplo: un objeto creado y nicamenteusado dentro de un mtodo slo tiene entidad dentro de ste; al salir del mtodo el objeto es eliminado). Anas,es posible que se produzcan fugas de memoria si el cdigo almacena referencias a objetos que ya no sonnecesarios?es decir, pueden an ocurrir, pero en un nivel conceptual superior. En definitiva, el recolector debasura de Java permite una fcil creacin y eliminacin de objetos, mayor seguridad y puede que ms rpida queen C++.La recoleccin de basura de Java es un proceso prcticamente invisible al desarrollador. Es decir, el programadorno tiene conciencia de cundo la recoleccin de basura tendr lugar, ya que sta no tiene necesariamente queguardar relacin con las acciones que realiza el cdigo fuente.Debe tenerse en cuenta que la memoria es slo uno de los muchos recursos que deben ser gestionados. La plataforma virtual Java Java es una plataforma virtual de software desarrollada por Sun Microsystems, de tal manera que los programascreados en ella puedan ejecutarse sin cambios en diferentes tipos de arquitecturas y dispositivos computacionales( "Diferentes plataformas").La plataforma Java consta de las siguientes partes: Java, su historia, ediciones, versiones y caractersticas como plataforma y lenguaje de programacin @ Club DesarrolladoresPgina 2/9

* El lenguaje de programacin, mismo.* La mquina virtual de Java o JRE, que permite la portabilidad en ejecucin.* El API Java, una biblioteca estndar para el lenguaje. El lenguaje de programacin Java El lenguaje es parecido a C y C++, aunque su modelo de objetos es ms sencillo, y fue influenciado tambin porSmalltalk y Eiffel. El lenguaje mismo se inspira en la sintaxis de C++, pero su funcionamiento es ms similar al deSmalltalk que a ste. Incorpora sincronizacin y manejo de tareas en el lenguaje mismo (similar a Ada) e incorporainterfaces como un mecanismo alternativo a la herencia mltiple de C++.Los programas en Java generalmente son compilados a un lenguaje intermedio llamado bytecode, que luego soninterpretados por una mquina virtual (JVM). Esta ltima sirve

como una plataforma de abstraccin entre lamquina y el lenguaje permitiendo que se pueda "escribir el programa una vez, y correrlo en cualquier lado".Usualmente se usa un compilador JIT. Tambin existen compiladores nativos de Java, tanto software libre comono libre. Otras observaciones A fines del siglo XX, Java lleg a ser el lenguaje de mayor acogida para programas de servidor. Utilizando unatecnologa llamada JSP (similar a otras tecnologas del lado del servidor como ASP de Microsoft o PHP), se hizmuyfcil escribir pginas dinmicas para sitios de Internet. Sumado a JSP la tecnologa de JavaBeans, permitaadaptar al mundo web el patrn MVC (modelo-vista-controlador) que ya se haba aplicado con xito a interfacesgrficas.Java lleg a ser extremadamente popular cuando Sun Microsystems introdujo la especificacin J2EE (Java 2Enterprise Edition). Este modelo permite, entre otras cosas, lograr una separacin entre la presentacin de los datosal usuario (JSP o Applets), el modelo de datos (EJB), y el control (Servlets). Enterprise Java Beans (EJB) es unatecnologa de objetos distribuidos que pudo lograr el sueo de muchas empresas como Microsoft e IBM de crearuna plataforma de objetos distribuidos con un monitor de transacciones. Con este nuevo estndar, empresascomo BEA, IBM, Sun Microsystems, Oracle y otros crearon nuevos "servidores de aplicaciones" que tuvieron granacogida en el mercado.Adems de programas del servidor, Java permite escribir programas de interfaz grfica o textual. Tambin sepueden correr programas de manera incorporada o incrustada en los navegadores web de Internet en forma deJavaapplets, aunque no lleg a popularizarse como se esperaba en un principio.Con la evolucin de las diferentes versiones, no slo se han producido cambios en el lenguaje, sino que se hanproducido cambios mucho ms importantes en sus bibliotecas asociadas, que han pasado de unos pocos cientosen Java 1.0, a ms de tres mil en Java 5.0. En particular, se han aadido APIs completamente nuevas, talescomo Swing y Java2D. Cmo surge Java? Historia de la tecnologa Java En los primeros aos de la dcada de los noventa, Sun Microsystems decidi intentar introducirse en el mercadode la electrnica de consumo y desarrollar programas para pequeos dispositivos electrnicos. Tras unoscomienzos dudosos, Sun decidi crear una filial, denominada FirstPerson Inc., para dar margen de maniobra alequipo responsable del proyecto.La tecnologa Java se cre como una herramienta de programacin en una pequea operacin secreta y annimadenominada "the Green Project" en Sun Microsystems en el ao 1991.El equipo secreto ("Green Team"), compuesto por trece personas y dirigido por James Gosling, se encerr en una

Java, su historia, ediciones, versiones y caractersticas como plataforma y lenguaje de programacin @ Club DesarrolladoresPgina 3/9

oficina desconocida de Sand Hill Road en Menlo Park, interrumpi todas las comunicaciones regulares con Sunytrabaj sin descanso durante 18 meses.Intentaban anticiparse y prepararse para el futuro de la informtica. Su conclusin inicial fue que al menos en partese tendera hacia la convergencia de los dispositivos digitales y los ordenadores.El resultado fue un lenguaje de programacin que no dependa de los dispositivos denominado "Oak" (roble eningls).Entonces inicialmente Java se llam Oak, aunque tuvo que cambiar de denominacin, debido a que dicho nombre yaestaba registrado por otra empresa. Se dice este nombre se le puso debido a la existencia de tal rbol en losalrededores del lugar de trabajo de los promotores del lenguaje.Para demostrar cmo poda contribuir este nuevo lenguaje al futuro de los dispositivos digitales, el equipo desarrollun controlador de dispositivos de mano para uso domstico destinado al sector de la televisin digital por cable. Pordesgracia, la idea result ser demasiado avanzada para el momento y el sector de la televisin digital por cable noestaba listo para el gran avance que la tecnologa Java les ofreca.Pero poco tiempo despus Internet estaba listo para la tecnologa Java y, justo a tiempo para su presentacin enpblico en 1995, el equipo pudo anunciar que el navegador Netscape Navigator incorporara la tecnologa Java.Java fue diseado como software para dispositivos electrnicos de consumo. Curiosamente, todo este lenguaje fuediseado antes de que diese comienzo la era World Wide Web, puesto que fue diseado para dispositivoselectrnicos como calculadoras, microondas y la televisin interactiva. Tres de las principales razones que llevaron a crear Java son: 1. Creciente necesidad de interfaces mucho ms cmodas e intuitivas que los sistemas de ventanas queproliferaban hasta el momento.2. Fiabilidad del cdigo y facilidad de desarrollo. Gosling observ que muchas de las caractersticas que ofrecan C oC++ aumentaban de forma alarmante el gran coste de pruebas y depuracin. Por ello en los sus ratos libres cre unlenguaje de programacin donde intentaba solucionar los fallos que encontraba en C++.3. Enorme diversidad de controladores electrnicos. Los dispositivos electrnicos se controlan mediante la utilizacinde microprocesadores de bajo precio y reducidas prestaciones, que varan cada poco tiempo y que utilizandiversos conjuntos de instrucciones. Java permite escribir un cdigo comn para todos los dispositivos.Por todo ello, en lugar de tratar nicamente de optimizar las tcnicas de

desarrollo y dar por sentada la utilizacinde C o C++, el equipo de Gosling se plante que tal vez los lenguajes existentes eran demasiado complicadoscomo para conseguir reducir de forma apreciable la complejidad de desarrollo asociada a ese campo. Por estemotivo, su primera propuesta fue idear un nuevo lenguaje de programacin lo ms sencillo posible, con el objetode que se pudiese adaptar con facilidad a cualquier entorno de ejecucin.Basndose en el conocimiento y estudio de gran cantidad de lenguajes, este grupo decidi recoger lascaractersticas esenciales que deba tener un lenguaje de programacin moderno y potente, pero eliminando todasaquellas funciones que no eran absolutamente imprescindibles. Primeros proyectos en que se aplic Java El proyecto Green fue el primero en el que se aplic Java, y consista en un sistema de control completo de losaparatos electrnicos y el entorno de un hogar. Con este fin se construy un ordenador experimental denominado *7(StarSeven). El sistema presentaba una interfaz basada en la representacin de la casa de forma animada y elcontrol se llevaba a cabo mediante una pantalla sensible al tacto. En el sistema apareca ya Duke, la actualmascota de Java.Ms tarde Java se aplic a otro proyecto denominado VOD (Video OnDemand) en el que se empleaba comointerfaz para la televisin interactiva que se pensaba iba a ser el principal campo de aplicacin de Java. Ninguno deestos proyectos se convirti nunca en un sistema comercial, pero fueron desarrollados enteramente en un Javaprimitivo. Java, su historia, ediciones, versiones y caractersticas como plataforma y lenguaje de programacin @ Club DesarrolladoresPgina 4/9

Una vez que en Sun se dieron cuenta de que a corto plazo la televisin interactiva no iba a ser un gran xito,instaron a FirstPerson a desarrollar nuevas estrategias que produjeran beneficios. Entre ellas se encontraba laaplicacin de Java a Internet, la cual no se consider productiva en ese momento. Resurgimiento de Java Aunque muchas de las fuentes consultadas sealan que Java no lleg a caer en un olvido, lo cierto es que tuvoque ser Bill Joy (cofundador de Sun y uno de los desarrolladores principales del sistema operativo Unix deBerckley) el que sac a Java del letargo en que estaba sumido. Joy juzg que Internet podra llegar a ser el campoadecuado para disputar

a Microsoft su primaca en el terreno del software, y vio en Oak el instrumento idneo parallevar a cabo estos planes.Para poder presentarlo en sociedad se tuvo que modificar el nombre de este lenguaje de programacin y se tuvoque realizar una serie de modificaciones de diseo para poderlo adaptar al propsito mencionado. As Java fuepresentado en sociedad en agosto de 1995.Algunas de las razones que llevaron a Bill Joy a pensar que Java podra llegar a ser rentable son:* Java es un lenguaje orientado a objetos: Esto es lo que facilita abordar la resolucin de cualquier tipo de problema.* Es un lenguaje sencillo, aunque sin duda potente.* La ejecucin del cdigo Java es segura y fiable: Los programas no acceden directamente a la memoria delordenador, siendo imposible que un programa escrito en Java pueda acceder a los recursos del ordenador sin queesta operacin le sea permitida de forma explcita. De este modo, los datos del usuario quedan a salvo de laexistencia de virus escritos en Java. La ejecucin segura y controlada del cdigo Java es una caracterstica nica,que no puede encontrarse en ninguna otra tecnologa.* Es totalmente multiplataforma: Es un lenguaje sencillo, por lo que el entorno necesario para su ejecucin es depequeo tamao y puede adaptarse incluso al interior de un navegador. Java en cdigo abierto Java se ha convertido en un lenguaje con una implantacin masiva en todos los entornos (personales yempresariales). El control que mantiene Sun sobre ste genera reticencias en la comunidad de empresas confuertes intereses en Java (pe IBM, Oracle) y obviamente en la comunidad de desarrolladores de software libre.La evolucin basada en un comit en el que participen todos los implicados no es suficiente y la comunidaddemandaba desde hace tiempo la liberacin de las APIs y libreras bsicas de la JDK.En diciembre de 2006, Sun est en pleno relanzamiento de su plataforma Java bajo la licencia GPL de GNU.Cuando este cambio de licencia haya terminado.Compromiso de Sun Microsystems con el cdigo abiertoLa importancia del cdigo abierto en relacin con Java puede verse entre otras cosas, en que el presidente y CEO deSun, Jonathan Schwartz, ha retado a la compaa a que ofrezca cdigo abierto para todo el software que produceSun (fuente), Sun ya hace mucho tiempo que empez a apostar por el cdigo abierto cuando liber StarOffice(Llamado ahora OpenOffice).Sun ha aportado ms lneas de cdigo abierto que cualquier otra organizacin. Cules son las diferencias entre JRE y SDK? Adems de la amplia terminologa individual que existe en Java, existen diversos componentes ("KITS") queagrupan estas funcionalidades, y son estos componentes con los que se trabaja "da a da" en proyectos Java.JRE ("Java RuntimeEnvironment")

Java, su historia, ediciones, versiones y caractersticas como plataforma y lenguaje de programacin @ Club DesarrolladoresPgina 5/9

Como su nombre lo indica este ambiente ("KIT") es utilizado solo para ejecutar ("Runtime") programas en Java.Esta situacin se da cuando empresas de Software disean alguna interfase grfica o aplicacin en Java para suproducto. Cabe mencionar que muchos productos que utilizan Java para su interfase grfica o instalacin yaincluyen un JRE para evitarle la molestia de instalarlo, uno de estos es Oracle ; sin embargo, muchos productosrequieren que usted posea este ambiente, si se pregunta: Porque me hacen que obtenga forzosamente este JRE? Una de las principales razones es costo ya que las empresas deben pagar a Sun por distribuir este ambiente ensuproducto."JavaDevelopment Kit"(JDK), "Standard Development Kit" (SDK) y "Java 2 Standard Edition" (J2SE) son nombrespara el mismo componente e incluyen: El API de Java, el JRE ( JVM ), compilador de Java y otras funcionalidadesdefinidas por Sun. Si no esta familiarizado programando en Java, el API de Java es un conjunto de clases que esutilizado para generar programas bsicos en el lenguaje; utilizando una analoga, estas clases tienen la mismafuncionalidad que las funciones|clases estndar utilizadas en otros lenguajes C,C++, Perl (Esto es precisamentela definicin de API ("ApplicationProgramming Interface")).Partiendo de estas clases (API de Java) se generan TODOS los programas,interfaces y elementos programadosen Java, inclusive a partir de estas clases usted puede definir otras clases especificas que sern utilizadas por suprograma o producto. Una vez que defina sus programas|clases en Java an es necesario compilarlas paraproducir lo que es denominado byte-code o class files (este byte-code puede ser comparado con un binario), y eseste byte-code el que interpreta el JRE("Java RuntimeEnvironment").Este byte-code es el que directamenteofrece la interoperabilidad de Java o el afamado "Write once run everywhere" (Escribalo una vez ejecuteloentodos lados).Es una cantidad razonable de trabajo la que realiza el JDK|SDK, y por el hecho de incluir tanto el compilador,APIJava y el JRE existen diversas implementaciones de JDK: JDK's de Sun (o J2SE) y JDK's de IBM. Qu ediciones de Java tenemos a nuestra disposicin? Existen varias Ediciones de Java, cada una de ellas diseada para cierto ambiente en particular. Estas edicionesson:* Java Standard Edition (Java SE)* Java Micro Edition (Java ME)* Java EntrepriseEdition (Java EE)* Java CardJava Standard Edition es la edicin que se emplea en computadoras personales (desktops y laptops). Se le conocetambin como Java

Desktop (escritorio) y es la versin que tienes que instalar para poder programar en Java en tucomputadora, aunque tus programas estn destinados para alguna de las otras ediciones. Java Platform,StandardEdition o Java SE (conocido anteriormente hasta la versin 5.0 como Plataforma Java 2, Standard Editiono J2SE), es una coleccin de APIs del lenguaje de programacin Java utiles para muchos programas de laPlataforma Java. La Plataforma Java 2, Enterprise Edition incluye todas las clases en el Java SE, adems dealgunas de las cuales son tiles para programas que se ejecutan en servidores sobre workstations.Java Micro Edition es la edicin que se emplea en dispositivos mviles, tales como los telfonos celulares. Es unaversin recortada del Java SE con ciertas extensiones enfocadas a las necesidades particulares de esos tipos dedispositivos.La plataforma Java Micro Edition, o Java ME (anteriormente J2ME), es una coleccin de APIs en Java orientadas aproductos de consumo como PDAs, telfonos mviles o electrodomsticos.Java ME se ha convertido en una buena opcin para crear juegos en telfonos mviles debido a que se puedeemular en un PC durante la fase de desarrollo y luego subirlos fcilmente al telfono. Al utilizar tecnologas Javael desarrollo de aplicaciones o videojuegos con estas APIs resulta bastante econmico de portar a otros dispositivos.Java Enterprise Edition es la edicin que se emplea para hacer aplicaciones. Incluye a toda la Standard Edition y Java, su historia, ediciones, versiones y caractersticas como plataforma y lenguaje de programacin @ Club DesarrolladoresPgina 6/9

muchas, muchas ms extensiones.J2EE es un grupo de especificaciones diseadas por Sun que permiten la creacin de aplicaciones empresariales,esto sera: acceso a base de datos (JDBC), utilizacin de directorios distribuidos (JNDI), acceso a mtodos remotos(RMI/CORBA), funciones de correo electrnico (JavaMail), aplicaciones Web(JSP y Servlets)...etc. Aqu esimportante notar que J2EE es solo una especificacin, esto permite que diversos productos sean diseadosalrededor de estas especificaciones algunos son Tomcat y Weblogic ; la especificacin ms reciente de Sun esJ2EE 1.4, la cual esta conformada por: JSP 2.0 ,Servlet 2.4, EJB 2.1 y Connector 1.5 entre otros API's, los detallesse encuentran en http://java.sun.com/j2eeAunque varios productos Java estn diseados alrededor de estas especificaciones, no todos cumplen con elestndar completo, esto es, Tomcat solo emplea|cumple las especificaciones de JSP y Servlets, sin embargo,existen productos como Websphere y algunos otros "Java Application Servers" que son considerados "Fully J2EECompliant" , en otras palabras, cumplen con todas las especificaciones definidas por Sun.Sun ofrece una implementacin de TODAS estas

especificaciones llamada J2EE SDK , a pesar que el J2EE SDKes una implementacin, esta es solo una muestra ofrecida por Sun para utilizar las funcionalidades de lasespecificaciones J2EE, aunque funcionara en un Sistema de Produccin su diseo es poco escalable adems quesu licencia lo prohibe.JavaCard es la versin de Java enfocada a aplicaciones que se ejecutan en tarjetas de crdito con chip. Es unaversin muy recortada de Java. Una Java Card es una tarjeta capaz de ejecutar mini-aplicaciones Java. En este tipode tarjetas el sistema operativo es una pequea mquina virtual Java (JVM) y en ellas se pueden cargardinmicamente aplicaciones desarrolladas especficamente para este entorno. Versiones de Java Java 1Java 1.0 (Enero 1996) - 8 paquetes, 212 clases -Primera versin pblica. La presin hizo que se hiciera pblica demasiado pronto, lo cual significa que el diseodel lenguaje no es demasiado bueno y hay montones de errores. Respecto a seguridad, es restrictivo por defecto,no dejando hacer demasiado al cdigo no fiable.Java 1.1 (Marzo 1997) - 23 paquetes, 504 clases -Mejoras de rendimiento en la JVM, nuevo modelo de eventos en AWT, clases anidadas, serializacin de objetos,API de JavaBeans, archivos jar, internacionalizacin, API Reflection (Reflexin), JDBC (Java Data baseConnectivity), RMI (RemoteMethodInvocation). Se aade la firma del cdigo y la autentificacin. Es la primeraversin lo suficientemente estable y robusta.Java 2Java 1.2 (Diciembre 1998 ) - 59 paquetes, 1520 clases -JFC (Swing), Drag and Drop, Java2D, Corba, API Collections. Se producen notables mejoras a todos los niveles.Para enfatizar esto Sun lo renombra como "Java 2". El JDK (Java Development Kit) se renombra como SDK(Software Development Kit). Se divide en J2SE, J2EE y J2ME.Java 1.3 (Abril 2000) - 77 paquetes, 1595 clases Orientada sobre todo a la resolucin de errores y a la mejora del rendimiento; se producen algunos cambiosmenores como la inclusin de JNDI (Java Naming and Directory Interface) y la API Java Sound. Tambin incluyeun nuevo compilador de alto rendimiento JIT (Just In Time).Java 1.4 (2002) - 103 paquetes, 2175 clases -Tambin conocido como Merlin, es la versin actual. Mejora notablemente el rendimiento y aade entre otrossoporte de expresiones regulares, una nueva API de entrada/salida de bajo nivel (NIO, New I/O), clases para eltrabajo con Collections, procesado de XML; y mejoras de seguridad como el soporte para la criptografa mediantelas Java CryptographyExtension (JCE), la inclusin de la Java Secure Socket Extension (JSSE) y el Java Java, su historia, ediciones, versiones y caractersticas como plataforma y lenguaje de programacin @ Club DesarrolladoresPgina 7/9

Authentication and AuthorizationService (JAAS).Java 1.5 (Octubre 2004) - 131 paquetes, 2656 clases -Tambin conocido como Tiger, renombrado por motivos de marketing como Java 5.0.Incluye como principales novedades: tipos genricos (generics), autoboxing/unboxing conversiones impliticasentre tipos primitivos y los wrappers correspondientes, Enumerados, Bucles simplificados, printf, Funciones connmero de parmetros variable, Metadatos en clases y mtodos.Java 1.6 (diciembre de 2006) ?Tambin conocido como Mustang. Estuvo en desarrollo bajo la JSR 270. En esta versin, Sun cambi el nombre"J2SE" por Java SE y elimin el ".0" del nmero de versin.Los cambios ms importantes introducidos en esta versin son: Incluye un nuevo marco de trabajo y APIsquehacen posible la combinacin de Java con lenguajes dinmicos como PHP, Python, Ruby y JavaScript. Incluye elmotorRhino, de Mozilla, una implementacin de Javascript en Java. Incluye un cliente completo de Servicios Web ysoporta las ltimas especificaciones para Servicios Web, como JAX-WS 2.0, JAXB 2.0, STAX y JAXP. Mejoras enla interfaz grfica y en el rendimiento. IDE's Mientras un JDK|SDK ofrece las herramientas para compilar y ejecutar programas en Java ste no ofrece unambiente de trabajo para proyectos complejos, esto es, si usted compila una o dos clases quizs el comando javac ofrecido en los JDK es suficiente, pero si su proyecto estar compuesto por 100 o 200 clases, javacseramuy deficiente. Los IDE's (IntegratedDevelopmentEnvironment) ofrecen un ambiente grfico en los que se tieneacceso a mayor nmero de herramientas no ofrecidas en los JDK's: Debuggers ms elaborados, check-pointsdentro de la compilacin,creacin de WAR's (Web-Archives), "Wizards" para acelerar desarrollo, entre otras cosas.AlgunosIDE'sson:NetBeans (http://www.netbeans.org) Open-SourceEclipse (http://www.eclipse.org

) Open-SourceSun Java Studio (http://developers.sun.com/jsenterprise/index.jsp) de SunJBuilder (http://www.codegear.com/products/jbuilder) de BorlandWebSphere Studio (http://www-306.ibm.com/software/awdtools/developer/application/ ) de IBMJDeveloper (http://www.oracle.com/technology/products/jdev/index.html

) de Oracle Conclusiones finales

Actualmente, luego de cumplidos 10 aos de existencia, la plataforma Java ha atrado a cerca de 4 millones dedesarrolladores de software, se utiliza en los principales sectores de la industria de todo el mundo y est presenteen un gran nmero de dispositivos, ordenadores y redes de cualquier tecnologa de programacin.De hecho, su versatilidad y eficiencia, la portabilidad de su plataforma y la seguridad que aporta, la han convertidoen la tecnologa ideal para su aplicacin a redes, de manera que hoy en da, ms de 2.500 millones de dispositivosutilizan la tecnologa Java.* Ms de 700 millones de ordenadores* 708 millones de telfonos mviles y otros dispositivos de mano* 1000 millones de tarjetas inteligentes Java, su historia, ediciones, versiones y caractersticas como plataforma y lenguaje de programacin @ Club DesarrolladoresPgina 8/9

* Adems de sintonizadores, impresoras, web cams, juegos, sistemas de navegacin para automviles, terminalesde lotera, dispositivos mdicos, cajeros de pago en aparcamientos, etc.Hoy en da, puede encontrar la tecnologa Java en redes y dispositivos que comprenden desde Internet ysuperordenadores cientficos hasta porttiles y telfonos mviles; desde simuladores de mercado en Wall Streethasta juegos de uso domstico y tarjetas de crdito: Java est en todas partes http://es.scribd.com/doc/19475538/Java-Su-Historia-Ediciones-Versiones-yCaracteristicas-Como-Plataforma-y-Lenguaje-de-Programacion

Versiones y distribuciones Java: J2SE, J2EE, J2ME. Java 6, Java 7, cul es mejor? (CU00606B)
Escrito por Alex Rodrguez

Resumen: Entrega n6 del curso "Aprender programacin Java desde cero".


Codificacin aprenderaprogramar.com: CU00606B

VERSIONES Y DISTRIBUCIONES DE JAVA

Java, como la mayora de los lenguajes, ha sufrido cambios a lo largo de su historia. Adems, en cada momento han coexistido distintas versiones o distribuciones de Java con distintos fines. Actualmente puede considerarse que el Java vigente se denomina Java 2 y existen 3 distribuciones principales de Java 2, con ciertos aspectos comunes y ciertos aspectos divergentes.

Estas tres distribuciones son:

a) J2SE o simplemente Java SE: Java 2 Standard Edition o Java Standard Edition. Orientado al desarrollo de aplicaciones cliente / servidor. No incluye soporte a tecnologas para internet. Es la base para las otras distribuciones Java y es la plataforma que utilizaremos nosotros en este curso por ser la ms utilizada.

b) J2EE: Java 2 Enterprise Edition. Orientado a empresas y a la integracin entre sistemas. Incluye soporte a tecnologas para internet. Su base es J2SE.

c) J2ME: Java 2 Micro Edition. Orientado a pequeos dispositivos mviles (telfonos, tabletas, etc.).

En esta imagen vemos, de forma orientativa, como J2EE expande a J2SE, mientras que J2ME recorta a J2SE al tiempo que tiene una fraccin de contenido diferenciada exclusiva de J2ME. En realidad hablar de expansiones y recortes no es correcto, porque cada distribucin es en s misma distinta puesto que estn concebidas con distintas finalidades. Por tanto no puede decirse que sean expansiones o recortes, pero de forma coloquial muchas veces se interpreta as. Java hoy en da es ms que un lenguaje de programacin, como veremos ms adelante. El lenguaje Java estndar ha experimentado numerosos cambios desde la versin primigenia, JDK 1.0, as como un enorme incremento en el nmero de recursos disponibles para los programadores Java. Podemos citar en la evolucin del Java estndar:

JDK 1.0 (1996): primer lanzamiento del lenguaje Java.

JDK 1.1 (1997): mejora de la versin anterior.

J2SE 1.2 (1998): sta y las siguientes versiones fueron recogidas bajo la denominacin Java 2 y 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). Incluy distintas mejoras.

J2SE 1.3 (2000): mejora de la versin anterior.

J2SE 1.4 (2002): mejora de la versin anterior.

J2SE 5.0 (2004): originalmente numerada 1.5, esta notacin an es usada en ocasiones. Mejora de

la versin anterior. Java SE 6 (2006): en esta versin, Sun cambi el nombre "J2SE" por Java SE y elimin el ".0" del

nmero de versin. Mejora de la versin anterior.

Java SE 7 (2011): nueva versin que mejora la anterior.

Java SE 8: nueva versin que se baraja pueda hacer aparicin dentro de varios aos.

En Java todas las versiones siguen los mismos estndares de datos, esto permite que un programa que hayamos hecho con una versin antigua, pueda ser ejecutado con una versin ms nueva sin necesidad de ningn cambio.

Adems de los cambios en el lenguaje en s, con el paso de los aos los recursos disponibles para los programadores Java que ofrece la empresa que desarrolla el lenguaje (antiguamente SunMicroSystems, actualmente Oracle) han crecido enormemente. La denominada biblioteca de clases de Java (Java classlibrary) ha pasado de ofrecer unos pocos cientos de clases en JDK 1.0 hasta cerca de 4000 en Java SE 6. Se han introducido recursos completamente nuevos, como Swing y Java2D, mientras que muchos de los mtodos y clases originales de JDK 1.0 han dejado de utilizarse.

Cuando trabajamos con Java ser frecuente que busquemos informacin oficial en internet. Cuando decimos oficial nos referimos a la que ofrece la propia empresa desarrolladora de Java. Cuando buscamos informacin sobre Java hay que tener cuidado respecto a a qu versin hace alusin la informacin. Por ejemplo, prueba a buscar ArrayList java o ArrayList api java en google, yahoo, bing o cualquier otro buscador. Un resultado posible es el siguiente (fjate que en un caso es Java 1.4 y en otro Java SE 6): ArrayList (Java 2 Platform SE v1.4.2)

java.util. Class ArrayList. java.lang.Object extended by java.util.AbstractCollection extended by java.util.AbstractList extended by ... download.oracle.com/javase/.../java/.../ArrayList.html - En cach - Similares

ArrayList (Java Platform SE 6)


extended by java.util.AbstractCollection<E> extended by ...

java.lang.Object

download.oracle.com/javase/6/.../java/.../ArrayList.html - En cach - Similares

Nosotros en este curso trabajaremos con Java Platform SE 6 (Standard Edition) o Java SE 7 por ser las versiones ms usadas hoy en da: si miramos la documentacin correspondiente a versiones anteriores podemos confundirnos. Los ejemplos que mostramos en el curso son de Java SE 6. Por tanto una bsqueda ms correcta sera ArrayList api java 6, y en todo caso estar atentos a la especificacin de la documentacin para comprobar que efectivamente se corresponde con la versin con la que estemos trabajando. Si quieres utilizar otra versin Java no hay problema. Los cambios entre versiones no suelen ser tan importantes como para afectar a una persona que aprende el lenguaje por primera vez: en realidad nos dara igual usar una versin u otra. Sin embargo, hay que tener claro qu versin es la que usamos.

Hemos usado el trmino api en las bsquedas: estas siglas corresponden a ApplicationProgramming Interface o interfaz de programacin de aplicaciones. De momento, pensar que API equivale a recursos que nos ofrece el lenguaje Java (o si se prefiere, recursos que nos ofrece la empresa que lo desarrolla) para crear aplicaciones. Por ejemplo, podemos pretender ordenar una lista de nmeros denominada Lista1. Podemos hacerlo de dos maneras: escribir las instrucciones paso a paso para que tenga lugar la ordenacin, o usar un recurso ya disponible (algo as como Lista1.usarRecursoOrdenar). A medida que vayamos avanzando, nos iremos familiarizando poco a poco con el API de Java.

http://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id= 377:versiones-y-distribuciones-java-j2se-j2ee-j2me-ijava-6-java-7-cual-es-mejorcu00606b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188

Lista de IDE para java

A continuacin una lista de IDE(Entorno de Desarrollo Integrado) para java: JDeveloper El de oracle, la verdad comparado con NetBeans y Eclipse se siente un poco sencillo, pero es muy poderoso y aunque no es tan rico en funcionalidades sirve para crear prcticamente cualquier proyecto de software, adems tiene integrado ADF que es una tecnologa propia de ORACLE. Netbeans Muy interesante y con muchas funcionalidades de un solo click, web services con un solo click, EJB con un solo click muy entretenido de usar y contiene una alta variedad de plug in hechos por la comunidad. Eclipse Uno de los mejores ide para java, no por nada es utilizados en Rational de IBM. Rational Basado en eclipse pero con el poderoso servidor de websphere, uno de los mas usados en empresas de alto nivel que tienen varia tecnologa IBM, si quieren utilizarlo pueden bajar el trial o utilizar eclipse.

BlueJ Para los que empiezan, en teora te ayuda para la programacin orientada a objetos y otras buenas practicas de la programacin. http://www.probandocodigo.com/2009/11/lista-de-ide-para-java.html
CUL ES EL MEJOR IDE PARA JAVA? Hemos generado nuestro primer programa Java usando las herramientas ms bsicas posibles: el bloc de notas y la ventana consola de DOS. Los programadores utilizan herramientas ms sofisticadas ya que facilitan el trabajo enormemente. Dentro de estas herramientas podramos hablar de entornos de desarrollo (IDEs) o frameworks.

A veces ambos trminos se confunden. Nosotros nos referiremos a IDE como a un programa que nos permite desarrollar cdigo en un lenguaje y que incorpora habitualmente:

a)

Un espacio para la escritura de cdigo con cierta ayuda interactiva para generar cdigo y para

indicar los errores de sintaxis que se cometan por parte del programador. b) c) d) La posibilidad de compilar y ejecutar el cdigo escrito. La posibilidad de organizar los proyectos de programacin. Herramientas auxiliares para programadores para deteccin de errores o anlisis de programas

(debuggers). e) Otras opciones como utilidades para pruebas, carga de libreras, etc.

Existen diversos IDEs para Java. Vamos a citar algunos de ellos:

a) Eclipse: software libre que se puede descargar en http://www.eclipse.org. Es uno de los entornos Java ms utilizados a nivel profesional. El paquete bsico de Eclipse se puede expandir mediante la instalacin de plugins para aadir funcionalidades a medida que se vayan necesitando.

b) NetBeans: software libre que se puede descargar en http://www.netbeans.org. Otro de los entornos Java muy utilizados, tambin expandible mediante plugins. Facilita bastante el diseo grfico asociado a aplicaciones Java.

c) BlueJ: software libre que se puede descargar en http://bluej.org. Es un entorno de desarrollo dirigido al aprendizaje de Java (entorno acadmico) y sin uso a nivel profesional. Es utilizado en distintas universidades para la enseanza de Java. Destaca por ser sencillo e incluir algunas funcionalidades dirigidas a que las personas que estn aprendiendo tengan mayor facilidad para comprender aspectos clave de la programacin orientada a objetos.

d) JBuilder: software comercial. Se pueden obtener versiones de prueba o versiones simplificadas gratuitas en la web http://www.embarcadero.com buscando en la seccin de productos y desarrollo de aplicaciones. Permite desarrollos grficos.

e) JCreator: software comercial. Se pueden obtener versiones de prueba o versiones simplificadas gratuitas en la web http://www.jcreator.com. Este IDE est escrito en C++ y omite herramientas para desarrollos grficos, lo cual lo hace ms rpido y eficiente que otros IDEs.

f) Otros.

Qu IDE utilizar? Cada entorno de desarrollo tiene sus ventajas y sus inconvenientes. De cara al aprendizaje puede servirnos cualquiera de estos entornos, aunque nosotros vamos a recomendar y utilizar para este curso BlueJ. El motivo para ello es que es un entorno sencillo. Un manual de BlueJ puede constar

habitualmente de 40 o 50 pginas. Un manual para otro entorno puede constar de 400, 4.000 40.000 pginas. Nosotros queremos centrarnos en aprender el lenguaje Java y un entorno sencillo va a facilitar el aprendizaje evitando que nos entretengamos en aprender cuestiones de detalle sobre el IDE. Tambin podemos recomendarlo por incluir algunas herramientas con orientacin didctica para facilitar el aprendizaje. Por supuesto que BlueJ tiene sus inconvenientes como el no ser suficientemente funcional para su uso profesional o el que la ayuda sintctica contextual no es tan rica como en otros entornos.

Desaconsejamos el uso de otro IDE? No, este curso se puede seguir con cualquiera de los IDEs que hemos citado. Hay que tener en cuenta que un IDE es una herramienta y que por tanto podremos usar alternativamente una u otra en funcin de nuestras necesidades. Pongamos por caso que un IDE fuera un martillo: qu martillo elegir?

Elegiremos como hacemos habitualmente en la vida cotidiana: el que nos recomiende una fuente de confianza, o el que nos resulte ms cmodo, o el que mejor sepamos usar. Para cada trabajo o situacin que se nos plantee, podremos elegir un tipo de martillo u otro.

BlueJ es un entorno de desarrollo diseado para el aprendizaje de la programacin. No obstante, hay que tener presente que BlueJ es un entorno Java completo. No se trata de una versin de Java simplificada o recortada con fines de enseanza. Se ejecuta sobre la herramienta profesional para Java de Oracle (antes Sun Microsystems) denominada JDK (Java Development Kit) y utiliza el mismo compilador y mquina virtual que otros entornos como Eclipse o NetBeans. Por tanto BlueJ cumple con la especificacin oficial de Java, aunque obviamente es ms simplificado y tiene bastantes menos funcionalidades que otros entornos de uso profesional. BlueJ est pensado para que las personas que aprenden programacin puedan aprehender la filosofa y metodologa de la programacin orientada o objetos, que es el marco dentro del cual se encuentra Java.

http://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id= 398:netbeans-eclipse-jcreator-jbuilder-icual-es-el-mejor-entorno-de-desarrollo-ide-parajava-cu00613b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188