oneth:/tmp/blog

lunes, octubre 23, 2006
-source 1.5

Hoy toca hablar de Java, que para ser una de las cosas a las que más tiempo le dedico en la vida lo tengo bastante alejado del blog. Para una buena introducción al lenguaje/plataforma recomiendo visitar su entrada en la wikipedia.

Un breve resumen de su historia debería comenzar a principios de los 90, como un nuevo lenguaje (de nombre Oak) para la programación de dispositivos inteligentes por parte de Sun. Estaba basado en C++ pero incorporanba unas cuantas mejoras entre las que destacaba la simplificación de la gestión de memoria (no más punteros). El proyecto no cuajó y fue abandonado hasta mediados de los 90, en que los ingenieros de Sun vieron la posibilidad de añadir interactividad a la web y rescataron a Oak del cajón, aunque tuvieron que renombrarlo a Java por estar este nombre ya registrado.

La primera versión (1.0) salió en 1996 y apostaba por el "write-once-run-everywhere", la independencia de plataforma, y el enfoque hacia internet mediante la programación de applets (de hecho muchos de los primeros tutoriales de Java que leí presentaban el "Hola mundo" como un applet). A partir de esta Java ha ido dejando un poco de lado el concepto de "lenguaje para applets" y ha evolucionado como plataforma de desarrollo mucho más genérica: la versión 1.2 fue nombrada Java 2 y se diferenció entre J2SE (el JDK que teníamos hasta el momento), J2EE (un conjunto de especificaciones para acceso a bases de datos, objetos remotos, aplicaciones web, etc) y J2ME (para dispositivos móviles). La versión 1.4 supuso un nuevo paso a delante al ser la primera versión controlada por el JCP, un conjunto de empresas que se encargan de recopilar distintas mejoras o necesidades de forma "ajena" a Sun.

Actualmente la versión "estable" es la 1.5 (Tiger), también llamada Java 5.0. Como no conocía muy bien que mejoras introducía he cogido de la biblioteca lo que ha resultado ser una fuente de ideas: Java 5.0 Tiger, A Developer's Notebook. Una lectura ideal para todo aquel que sepa programar en Java pero que todavía no ha tenido tiempo de repasar que novedades incluye la nueva versión. La verdad es que hay cosas que hacían mucha falta y que ya estaban presentes en otros lenguajes. El libro está escrito para que cada capítulo sea totalmente individual, así que de momento he leido los temas salteados según me iba interesando.
  • Generics: por fin podremos dejar de usar castings para sacar objetos de las colecciones. Ahora definiremos de ante mano el tipo de objetos que llevará la lista y todas las comprobaciones de tipado serán en tiempo de compilación.
  • Tipos enumerados: adios a las clases de constantes y a los flags. Las enumeraciones suplen a la perfección sus funcionalidades de una forma mucho más elegante y menos críptica.
  • Autoboxing/unboxing: ya no será necesario hacer manualmente la conversión de los tipos primitivos a sus correspondientes tipos objectuales. Una de las cosas que más se le achacaba a Java para acusarlo de no ser un lenguaje orientado a objetos "puro".
  • Varargs: un método ya no tiene que recibir un número de parámetros especificado en tiempo de compilación.
  • Anotaciones.
  • Bucle for/in: para iterar en colecciones de objetos empleando un Iterator.
  • Importaciónes estáticas: por ejemplo podremos importar todos los métodos estáticos de la clase Math y ya no tendremos que hacer: Math.sqrt(2) sino simplemente sqrt(2).
  • Formateo: aplicación de locales y formato al más puro estilo printf.
  • Mejoras al sistema de threads.
Quitando las características de threads y anotacione, el resto de las mejoras se enfocan a mejorar cosas que se usan una y otra vez en todos los proyectos, así que es totalmente recomendable echarle una ojeada. Sobre todo cuando ya se empiezan a ver explicaciones de las mejoras introducidas por la próxima versión, Java SE 6.

10/23/2006 07:49:00 p. m.
Comentarios:
Así da gusto leer sobre informática y programación, en serio. Es la primera vez que me leo algo de seguido y sin aburrirme y no entender nada.

Me sorprende la gente que sabe tanto, en serio, os admiro ^^
 

bueno.. yo tampoco he entendido mucho, pero se me ha quedao que va a haber una version 6.0 :P

interesante e intrigante, pena que uno no sea informatico para entenderlo, pero vamos, el java mola :P
 

Muy interesante el artículo. Yo aún no he podido probarlo y eso que llevo años programando en Java en el trabajo.

Lo malo de todo esto es que a no ser que se empiece un nuevo proyecto es muy difícil que se utilice en una empresa, porque ninguna aplicación hecha en una versión de Java anterior a la 1.5 va a portarse a la 1.5 (sería una locura y un gasto innecesario).

La verdad es que tengo ganas de probarlo. Me recuerda mucho a C# de Microsoft, ¿verdad?
 

Pues la verdad es que mi experiencia con C# es nula totalmente, pero sí que hay varias características de las nuevas que son comunes a C# como por ejemplo autoboxing/unboxing o el bucle for/in.

Pero todavía sigue habiendo cosas novedosas. En un ejemplo tangible, los "generics" (para mi una de las mejoras más útiles) era algo que ya existía en C++ pero que Microsoft no incluyó en C# hasta la versión 2005 (oct 2005) mientras que Java lo incluyó en la 1.5 que lleva desde septiembre del 2004.

Microsoft con C# arregló todos los problemas que se le achacaban a Java pero como los generics nunca fueron una "deficiencia" de Java se le pasó completamente emplearlos hasta que los vio en el lenguaje de Sun.
 

Ya que hablais de standar java, sabéis si ha salido EJB 3.0?, que en eso toy muy interesado que cuando lei las versiones previas cambiaban los Beans de acceso a Base de datos a algo parecido a invernate cargandose al fin los tropecientos interfaces.

Lo malo de esto es que le queda minimo un año o algo mas para que empiece a existir y usarse productos que aprovechen esta nueva versión.
 

No sabía que la 1.5 traía los Generics! :o eso sólo lo había visto en la 2.0 de NET ^^' jajajja, ya le había agarrado el truco a los cast, me quitas la diversión oneth xD
Muchas gracias por el artículo, voy a ponerme más en practicar Java, hasta ahora casi todo lo hago con C# ^^
 

Pos EJB 3.0 ya se está usando. De hecho la usamos en nuestra práctica de Integración de Sistemas el año pasado. No sé cómo se hacía en versiones anteriores pero ahora el acceso a datos va todo por anotaciones en las clases.
 

Si usado ya esta, pero algun producto "comercial" que no sea el servidor de aplicaciones de Sun, que lo cumpla pk weblogic 8.1 y 9 fijo que no y de websphere ni idea, asi que si no encuentras alguno no te vendria mal mirar EJB 2.0 para cuando trabajes. ;)
 

Nazz,

jolin Oneth, me da por mirar el blog desde el curso de java que estoy haciendo y veo esto.. pon más cosas a ver si me aclaro un poco!! :)

Un besin
Ny
 

Publicar un comentario

<< Home
Webs Anime Cine Oriental Blogs

Anteriores

marzo 2005 / abril 2005 / mayo 2005 / junio 2005 / julio 2005 / agosto 2005 / septiembre 2005 / octubre 2005 / noviembre 2005 / diciembre 2005 / enero 2006 / febrero 2006 / marzo 2006 / abril 2006 / mayo 2006 / junio 2006 / agosto 2006 / septiembre 2006 / octubre 2006 /

Parte de abajo chachi en la que todavía no sé que poner ^^U