Programacion Java

Resúmen Este artículo pretende ser una lectura sobre los conceptos básicos, la historia y las diferentes versiones y edi

Views 162 Downloads 8 File size 492KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Resúmen Este artículo pretende ser una lectura sobre los conceptos básicos, la historia y las diferentes versiones y ediciones disponibles de Java. Intenta acercar al programador, y al interesado en estas tecnologías, a conocer con mayor profundidad lo que representa el mundo de Java. Tabla de contenidos ¿Qué es Java?Características de JavaEl recolector de basuraLa plataforma virtual JavaEl lenguaje de programación JavaOtrasobservaciones¿Cómo surge Java? Historia de la tecnología JavaPrimeros proyectos en que se aplicó JavaResurgimiento de JavaJava en código abierto¿Cuáles son las diferencias entre JRE y SDK?¿Qué ediciones de Java tenemos a nuestra disposición?Versiones de JavaIDE's ¿Qué es Java? Java es toda una tecnología orientada al desarrollo de software con el cual podemos realizar cualquier tipo deprograma. Hoy en día, la tecnología 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 móviles también hay una granacogida para este lenguaje.La tecnología Java está compuesta básicamente por 2 elementos: el lenguaje Java y su plataforma. Conplataforma nos referimos a la máquina virtual de Java (Java Virtual Machine).Java también es un lenguaje de programación. En la actualidad es un lenguaje muy extendido y cada vez cobramás importancia tanto en el ámbito de Internet como en la informática en general. Está desarrollado por lacompañíaSun Microsystems con gran dedicación y siempre enfocado a cubrir las necesidades tecnológicas máspunteras. Características de Java Una de las principales características 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 antestenían que hacer un programa para cada sistema operativo, por ejemplo Windows, Linux, Apple, etc. Esto loconsigue porque se ha creado una Máquina de Java para cada sistema que hace de puente entre el sistema Java, su historia, ediciones, versiones y características como plataforma y lenguaje de programación @ Club DesarrolladoresPágina 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á desarrollándose inclusopara distintos tipos de dispositivos además del ordenador como móviles, agendas y en general para cualquier"cosa" que se le ocurra a la industria. Lo que favoreció el crecimiento y difusión del lenguaje Java es su capacidad deque el código funcione sobre cualquier plataforma de software y hardware. Esto significa que nuestro mismoprograma escrito para Linux puede ser ejecutado en Windows sin ningún problema. Además 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 combinación posible sería una magna obra de Ingeniería, 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 específicos 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 añadidade tener que administrar la memoria solicitada dinámicamente de forma manual:En C++, el desarrollador puede asignar memoria en una zona conocida como heap (montículo) 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 aplicación cuando en realidad no es así.Así, un programa mal diseñado podría consumir una cantidad desproporcionada de memoria. Además, si unamisma región de memoria es desalojada dos veces el programa puede volverse inestable y llevar a un eventualcuelgue. No obstante, se debe señalar que C++ también permite crear objetos en la pila de llamadas de unafunción o bloque, de forma que se libere la memoria (y se ejecute el destructor del objeto) de forma automática alfinalizar la ejecución de la función o bloque.En Java, este problema potencial es evitado en gran medida por el recolector automático de basura (o automaticgarbagecollector). El programador determina cuándo se crean los objetos y el entorno en tiempo de ejecución 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 dirección 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 método sólo tiene entidad dentro de éste; al salir del método el objeto es eliminado). Aúnasí,es posible que se produzcan fugas de memoria si el código almacena referencias a objetos que ya no sonnecesarios?es decir, pueden aún ocurrir, pero en un nivel conceptual superior. En definitiva, el recolector debasura de Java permite una fácil creación y eliminación de objetos, mayor seguridad y puede que más rápida queen C++.La recolección de basura de Java es un proceso prácticamente invisible al desarrollador. Es decir, el programadorno tiene conciencia de cuándo la recolección de basura tendrá lugar, ya que ésta no tiene necesariamente queguardar relación con las acciones que realiza el código fuente.Debe tenerse en cuenta que la memoria es sólo 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 características como plataforma y lenguaje de programación @ Club DesarrolladoresPágina 2/9

* El lenguaje de programación, mismo.* La máquina virtual de Java o JRE, que permite la portabilidad en ejecución.* El API Java, una biblioteca estándar para el lenguaje. El lenguaje de programación Java El lenguaje es parecido a C y C++, aunque su modelo de objetos es más sencillo, y fue influenciado también porSmalltalk y Eiffel. El lenguaje mismo se inspira en la sintaxis de C++, pero su funcionamiento es más similar al deSmalltalk que a éste. Incorpora sincronización y manejo de tareas en el lenguaje mismo (similar a Ada) e incorporainterfaces como un mecanismo alternativo a la herencia múltiple de C++.Los programas en Java generalmente son compilados a un lenguaje intermedio llamado bytecode, que luego soninterpretados por una máquina virtual (JVM). Esta última sirve

como una plataforma de abstracción entre lamáquina y el lenguaje permitiendo que se pueda "escribir el programa una vez, y correrlo en cualquier lado".Usualmente se usa un compilador JIT. También 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 unatecnología llamada JSP (similar a otras tecnologías del lado del servidor como ASP de Microsoft o PHP), se hizómuyfácil escribir páginas dinámicas para sitios de Internet. Sumado a JSP la tecnología de JavaBeans, permitíaadaptar al mundo web el patrón MVC (modelo-vista-controlador) que ya se había aplicado con éxito a interfacesgráficas.Java llegó a ser extremadamente popular cuando Sun Microsystems introdujo la especificación J2EE (Java 2Enterprise Edition). Este modelo permite, entre otras cosas, lograr una separación entre la presentación de los datosal usuario (JSP o Applets), el modelo de datos (EJB), y el control (Servlets). Enterprise Java Beans (EJB) es unatecnología de objetos distribuidos que pudo lograr el sueño de muchas empresas como Microsoft e IBM de crearuna plataforma de objetos distribuidos con un monitor de transacciones. Con este nuevo estándar, empresascomo BEA, IBM, Sun Microsystems, Oracle y otros crearon nuevos "servidores de aplicaciones" que tuvieron granacogida en el mercado.Además de programas del servidor, Java permite escribir programas de interfaz gráfica o textual. También 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 evolución de las diferentes versiones, no sólo se han producido cambios en el lenguaje, sino que se hanproducido cambios mucho más importantes en sus bibliotecas asociadas, que han pasado de unos pocos cientosen Java 1.0, a más de tres mil en Java 5.0. En particular, se han añadido APIs completamente nuevas, talescomo Swing y Java2D. ¿Cómo surge Java? Historia de la tecnología Java En los primeros años de la década de los noventa, Sun Microsystems decidió intentar introducirse en el mercadode la electrónica de consumo y desarrollar programas para pequeños dispositivos electrónicos. Tras unoscomienzos dudosos, Sun decidió crear una filial, denominada FirstPerson Inc., para dar margen de maniobra alequipo responsable del proyecto.La tecnología Java se creó como una herramienta de programación en una pequeña operación secreta y anónimadenominada "the Green Project" en Sun Microsystems en el año 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 características como plataforma y lenguaje de programación @ Club DesarrolladoresPágina 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 informática. Su conclusión inicial fue que al menos en partese tendería hacia la convergencia de los dispositivos digitales y los ordenadores.El resultado fue un lenguaje de programación que no dependía de los dispositivos denominado "Oak" (roble eninglés).Entonces inicialmente Java se llamó Oak, aunque tuvo que cambiar de denominación, 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 cómo podía contribuir este nuevo lenguaje al futuro de los dispositivos digitales, el equipo desarrollóun controlador de dispositivos de mano para uso doméstico destinado al sector de la televisión digital por cable. Pordesgracia, la idea resultó ser demasiado avanzada para el momento y el sector de la televisión digital por cable noestaba listo para el gran avance que la tecnología Java les ofrecía.Pero poco tiempo después Internet estaba listo para la tecnología Java y, justo a tiempo para su presentación enpúblico en 1995, el equipo pudo anunciar que el navegador Netscape Navigator incorporaría la tecnología Java.Java fue diseñado como software para dispositivos electrónicos de consumo. Curiosamente, todo este lenguaje fuediseñado antes de que diese comienzo la era World Wide Web, puesto que fue diseñado para dispositivoselectrónicos como calculadoras, microondas y la televisión interactiva. 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 queproliferaban hasta el momento.2. Fiabilidad del código y facilidad de desarrollo. Gosling observó que muchas de las características que ofrecían C oC++ aumentaban de forma alarmante el gran coste de pruebas y depuración. Por ello en los sus ratos libres creó unlenguaje 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ónde microprocesadores de bajo precio y reducidas prestaciones, que varían cada poco tiempo y que utilizandiversos 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ónde 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 programación lo más sencillo posible, con el objetode 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 lascaracterísticas esenciales que debía tener un lenguaje de programación 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 consistía en un sistema de control completo de losaparatos electrónicos 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 representación de la casa de forma animada y elcontrol se llevaba a cabo mediante una pantalla sensible al tacto. En el sistema aparecía ya Duke, la actualmascota de Java.Más tarde Java se aplicó a otro proyecto denominado VOD (Video OnDemand) en el que se empleaba comointerfaz para la televisión interactiva que se pensaba iba a ser el principal campo de aplicación 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 características como plataforma y lenguaje de programación @ Club DesarrolladoresPágina 4/9

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 laaplicación de Java a Internet, la cual no se consideró productiva en ese momento. Resurgimiento de Java Aunque muchas de las fuentes consultadas señalan 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 podría llegar a ser el campoadecuado para disputar

a Microsoft su primacía en el terreno del software, y vio en Oak el instrumento idóneo parallevar a cabo estos planes.Para poder presentarlo en sociedad se tuvo que modificar el nombre de este lenguaje de programación y se tuvoque realizar una serie de modificaciones de diseño para poderlo adaptar al propósito mencionado. Así Java fuepresentado 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 delordenador, siendo imposible que un programa escrito en Java pueda acceder a los recursos del ordenador sin queesta operación le sea permitida de forma explícita. De este modo, los datos del usuario quedan a salvo de laexistencia 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 depequeño tamaño y puede adaptarse incluso al interior de un navegador. Java en código abierto Java se ha convertido en un lenguaje con una implantación 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 evolución basada en un comité en el que participen todos los implicados no es suficiente y la comunidaddemandaba desde hace tiempo la liberación de las APIs y librerías básicas 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 código abiertoLa importancia del código abierto en relación con Java puede verse entre otras cosas, en que el presidente y CEO deSun, Jonathan Schwartz, ha retado a la compañía a que ofrezca código abierto para todo el software que produceSun (fuente), Sun ya hace mucho tiempo que empezó a apostar por el código abierto cuando liberó StarOffice(Llamado ahora OpenOffice).Sun ha aportado más líneas de código abierto que cualquier otra organización. ¿Cuáles son las diferencias entre JRE y SDK? Además de la amplia terminología individual que existe en Java, existen diversos componentes ("KITS") queagrupan estas funcionalidades, y son estos componentes con los que se trabaja "día a día" en proyectos Java.JRE ("Java RuntimeEnvironment")

Java, su historia, ediciones, versiones y características como plataforma y lenguaje de programación @ Club DesarrolladoresPágina 5/9

Como su nombre lo indica este ambiente ("KIT") es utilizado solo para ejecutar ("Runtime") programas en Java.Esta situación se da cuando empresas de Software diseñan alguna interfase gráfica o aplicación en Java para suproducto. Cabe mencionar que muchos productos que utilizan Java para su interfase gráfica o instalación 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 básicos en el lenguaje; utilizando una analogía, estas clases tienen la mismafuncionalidad que las funciones|clases estándar utilizadas en otros lenguajes C,C++, Perl (Esto es precisamentela definición 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 serán utilizadas por suprograma o producto. Una vez que defina sus programas|clases en Java aún 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 disposición? Existen varias Ediciones de Java, cada una de ellas diseñada 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 edición que se emplea en computadoras personales (desktops y laptops). Se le conocetambién como Java

Desktop (escritorio) y es la versión que tienes que instalar para poder programar en Java en tucomputadora, aunque tus programas estén destinados para alguna de las otras ediciones. Java Platform,StandardEdition o Java SE (conocido anteriormente hasta la versión 5.0 como Plataforma Java 2, Standard Editiono J2SE), es una colección de APIs del lenguaje de programación Java utiles para muchos programas de laPlataforma Java. La Plataforma Java 2, Enterprise Edition incluye todas las clases en el Java SE, además dealgunas de las cuales son útiles para programas que se ejecutan en servidores sobre workstations.Java Micro Edition es la edición que se emplea en dispositivos móviles, tales como los teléfonos celulares. Es unaversión 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 colección de APIs en Java orientadas aproductos de consumo como PDAs, teléfonos móviles o electrodomésticos.Java ME se ha convertido en una buena opción para crear juegos en teléfonos móviles debido a que se puedeemular en un PC durante la fase de desarrollo y luego subirlos fácilmente al teléfono. Al utilizar tecnologías Javael desarrollo de aplicaciones o videojuegos con estas APIs resulta bastante económico de portar a otros dispositivos.Java Enterprise Edition es la edición que se emplea para hacer aplicaciones. Incluye a toda la Standard Edition y Java, su historia, ediciones, versiones y características como plataforma y lenguaje de programación @ Club DesarrolladoresPágina 6/9

muchas, muchas más extensiones.J2EE es un grupo de especificaciones diseñadas por Sun que permiten la creación de aplicaciones empresariales,esto sería: acceso a base de datos (JDBC), utilización de directorios distribuidos (JNDI), acceso a métodos remotos(RMI/CORBA), funciones de correo electrónico (JavaMail), aplicaciones Web(JSP y Servlets)...etc. Aquí esimportante notar que J2EE es solo una especificación, esto permite que diversos productos sean diseñadosalrededor de estas especificaciones algunos son Tomcat y Weblogic ; la especificación más 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 están diseñados alrededor de estas especificaciones, no todos cumplen con elestándar 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 implementación de TODAS estas

especificaciones llamada J2EE SDK , a pesar que el J2EE SDKes una implementación, esta es solo una muestra ofrecida por Sun para utilizar las funcionalidades de lasespecificaciones J2EE, aunque funcionaría en un Sistema de Producción su diseño es poco escalable además quesu licencia lo prohibe.JavaCard es la versión de Java enfocada a aplicaciones que se ejecutan en tarjetas de crédito con chip. Es unaversión 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 pequeña máquina virtual Java (JVM) y en ellas se pueden cargardinámicamente aplicaciones desarrolladas específicamente para este entorno. Versiones de Java Java 1Java 1.0 (Enero 1996) - 8 paquetes, 212 clases -Primera versión pública. La presión hizo que se hiciera pública demasiado pronto, lo cual significa que el diseñodel lenguaje no es demasiado bueno y hay montones de errores. Respecto a seguridad, es restrictivo por defecto,no dejando hacer demasiado al código 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, serialización de objetos,API de JavaBeans, archivos jar, internacionalización, API Reflection (Reflexión), JDBC (Java Data baseConnectivity), RMI (RemoteMethodInvocation). Se añade la firma del código y la autentificación. Es la primeraversión 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 resolución de errores y a la mejora del rendimiento; se producen algunos cambiosmenores como la inclusión de JNDI (Java Naming and Directory Interface) y la API Java Sound. También incluyeun nuevo compilador de alto rendimiento JIT (Just In Time).Java 1.4 (2002) - 103 paquetes, 2175 clases -También conocido como Merlin, es la versión actual. Mejora notablemente el rendimiento y añade 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 criptografía mediantelas Java CryptographyExtension (JCE), la inclusión de la Java Secure Socket Extension (JSSE) y el Java Java, su historia, ediciones, versiones y características como plataforma y lenguaje de programación @ Club DesarrolladoresPágina 7/9

Authentication and AuthorizationService (JAAS).Java 1.5 (Octubre 2004) - 131 paquetes, 2656 clases -También conocido como Tiger, renombrado por motivos de marketing como Java 5.0.Incluye como principales novedades: tipos genéricos (generics), autoboxing/unboxing conversiones impliticasentre tipos primitivos y los wrappers correspondientes, Enumerados, Bucles simplificados, printf, Funciones connúmero de parámetros variable, Metadatos en clases y métodos.Java 1.6 (diciembre de 2006) ?También conocido como Mustang. Estuvo en desarrollo bajo la JSR 270. En esta versión, Sun cambió el nombre"J2SE" por Java SE y eliminó el ".0" del número de versión.Los cambios más importantes introducidos en esta versión son: Incluye un nuevo marco de trabajo y APIsquehacen posible la combinación de Java con lenguajes dinámicos como PHP, Python, Ruby y JavaScript. Incluye elmotorRhino, de Mozilla, una implementación 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 gráfica 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 quizás el comando javac ofrecido en los JDK es suficiente, pero si su proyecto estará compuesto por 100 o 200 clases, javacseríamuy deficiente. Los IDE's (IntegratedDevelopmentEnvironment) ofrecen un ambiente gráfico en los que se tieneacceso a mayor número de herramientas no ofrecidas en los JDK's: Debuggers más elaborados, check-pointsdentro de la compilación,creación 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 años de existencia, la plataforma Java ha atraído 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 número de dispositivos, ordenadores y redes de cualquier tecnología de programación.De hecho, su versatilidad y eficiencia, la portabilidad de su plataforma y la seguridad que aporta, la han convertidoen la tecnología ideal para su aplicación a redes, de manera que hoy en día, más de 2.500 millones de dispositivosutilizan la tecnología Java.* Más de 700 millones de ordenadores* 708 millones de teléfonos móviles y otros dispositivos de mano* 1000 millones de tarjetas inteligentes Java, su historia, ediciones, versiones y características como plataforma y lenguaje de programación @ Club DesarrolladoresPágina 8/9

* Además de sintonizadores, impresoras, web cams, juegos, sistemas de navegación para automóviles, terminalesde lotería, dispositivos médicos, cajeros de pago en aparcamientos, etc.Hoy en día, puede encontrar la tecnología Java en redes y dispositivos que comprenden desde Internet ysuperordenadores científicos hasta portátiles y teléfonos móviles; desde simuladores de mercado en Wall Streethasta juegos de uso doméstico y tarjetas de crédito: 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, cuál es mejor? (CU00606B) Escrito por Alex Rodríguez

Resumen: Entrega nº6 del curso "Aprender programación Java desde cero". Codificación aprenderaprogramar.com: CU00606B

VERSIONES Y DISTRIBUCIONES DE JAVA

Java, como la mayoría de los lenguajes, ha sufrido cambios a lo largo de su historia. Además, 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 tecnologías para internet. Es la base para las otras distribuciones Java y es la plataforma que utilizaremos nosotros en este curso por ser la más utilizada.

b) J2EE: Java 2 Enterprise Edition. Orientado a empresas y a la integración entre sistemas. Incluye soporte a tecnologías para internet. Su base es J2SE.

c) J2ME: Java 2 Micro Edition. Orientado a pequeños dispositivos móviles (teléfonos, 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 fracción de contenido diferenciada exclusiva de J2ME. En realidad hablar de expansiones y recortes no es correcto, porque cada distribución es en sí misma distinta puesto que están 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 día es más que un lenguaje de programación, como veremos más adelante. El lenguaje Java estándar ha experimentado numerosos cambios desde la versión primigenia, JDK 1.0, así como un enorme incremento en el número de recursos disponibles para los programadores Java. Podemos citar en la evolución del Java estándar:

·

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

·

JDK 1.1 (1997): mejora de la versión anterior.

·

J2SE 1.2 (1998): ésta y las siguientes versiones fueron recogidas bajo la denominación 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 versión anterior.

·

J2SE 1.4 (2002): mejora de la versión anterior.

·

J2SE 5.0 (2004): originalmente numerada 1.5, esta notación aún es usada en ocasiones. Mejora de

la versión anterior. ·

Java SE 6 (2006): en esta versión, Sun cambió el nombre "J2SE" por Java SE y eliminó el ".0" del

número de versión. Mejora de la versión anterior.

·

Java SE 7 (2011): nueva versión que mejora la anterior.

·

Java SE 8: nueva versión que se baraja pueda hacer aparición dentro de varios años.

En Java todas las versiones siguen los mismos estándares de datos, esto permite que un programa que hayamos hecho con una versión antigua, pueda ser ejecutado con una versión más nueva sin necesidad de ningún cambio.

Además de los cambios en el lenguaje en sí, con el paso de los años 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 métodos y clases originales de JDK 1.0 han dejado de utilizarse.

Cuando trabajamos con Java será frecuente que busquemos información “oficial” en internet. Cuando decimos oficial nos referimos a la que ofrece la propia empresa desarrolladora de Java. Cuando buscamos información sobre Java hay que tener cuidado respecto a a qué versión hace alusión la información. 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 (fíjate 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)

java.lang.Object

extended

by

java.util.AbstractCollection

extended

by

...

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 más usadas hoy en día: si miramos la documentación correspondiente a versiones anteriores podemos confundirnos. Los ejemplos que mostramos en el curso son de Java SE 6. Por tanto una búsqueda más correcta sería “ArrayList api java 6”, y en todo caso estar atentos a la especificación de la documentación para comprobar que efectivamente se corresponde con la versión con la que estemos trabajando. Si quieres utilizar otra versión 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 daría igual usar una versión u otra. Sin embargo, hay que tener claro qué versión es la que usamos.

Hemos usado el término api en las búsquedas: estas siglas corresponden a “ApplicationProgramming Interface” o interfaz de programación 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 números denominada Lista1. Podemos hacerlo de dos maneras: escribir las instrucciones paso a paso para que tenga lugar la ordenación, 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 continuación 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 prácticamente cualquier proyecto de software, además tiene integrado ADF que es una tecnología 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 tecnología IBM, si quieren utilizarlo pueden bajar el trial o utilizar eclipse.

BlueJ Para los que empiezan, en teoría te ayuda para la programación orientada a objetos y otras buenas practicas de la programación. http://www.probandocodigo.com/2009/11/lista-de-ide-para-java.html ¿CUÁL ES EL MEJOR IDE PARA JAVA? Hemos generado nuestro primer programa Java usando las herramientas más básicas posibles: el bloc de notas y la ventana consola de DOS. Los programadores utilizan herramientas más sofisticadas ya que facilitan el trabajo enormemente. Dentro de estas herramientas podríamos hablar de entornos de desarrollo (IDEs) o frameworks.

A veces ambos términos se confunden. Nosotros nos referiremos a IDE como a un programa que nos permite desarrollar código en un lenguaje y que incorpora habitualmente:

a)

Un espacio para la escritura de código con cierta ayuda interactiva para generar código y para

indicar los errores de sintaxis que se cometan por parte del programador. b)

La posibilidad de compilar y ejecutar el código escrito.

c)

La posibilidad de organizar los proyectos de programación.

d)

Herramientas auxiliares para programadores para detección de errores o análisis de programas

(debuggers). e)

Otras opciones como utilidades para pruebas, carga de librerías, 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 más utilizados a nivel profesional. El paquete básico de Eclipse se puede expandir mediante la instalación de plugins para añadir 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, también expandible mediante plugins. Facilita bastante el diseño gráfico 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 académico) y sin uso a nivel profesional. Es utilizado en distintas universidades para la enseñanza de Java. Destaca por ser sencillo e incluir algunas funcionalidades dirigidas a que las personas que estén aprendiendo tengan mayor facilidad para comprender aspectos clave de la programación 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 sección de productos y desarrollo de aplicaciones. Permite desarrollos gráficos.

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 gráficos, lo cual lo hace más rápido 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 páginas. Un manual para otro entorno puede constar de 400, 4.000 ó 40.000 páginas. 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. También podemos recomendarlo por incluir algunas herramientas con orientación didáctica 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 sintáctica 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 función 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 más cómodo, o el que mejor sepamos usar. Para cada trabajo o situación que se nos plantee, podremos elegir un tipo de martillo u otro.

BlueJ es un entorno de desarrollo diseñado para el aprendizaje de la programación. No obstante, hay que tener presente que BlueJ es un entorno Java completo. No se trata de una versión de Java simplificada o recortada con fines de enseñanza. Se ejecuta sobre la herramienta profesional para Java de Oracle (antes Sun Microsystems) denominada JDK (Java Development Kit) y utiliza el mismo compilador y máquina virtual que otros entornos como Eclipse o NetBeans. Por tanto BlueJ cumple con la especificación oficial de Java, aunque obviamente es más simplificado y tiene bastantes menos funcionalidades que otros entornos de uso profesional. BlueJ está pensado para que las personas que aprenden programación puedan aprehender la filosofía y metodología de la programación 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