<body><script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener('load', function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <div id="navbar-iframe-container"></div> <script type="text/javascript" src="https://apis.google.com/js/platform.js"></script> <script type="text/javascript"> gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: 'https://www.blogger.com/navbar.g?targetBlogID\x3d5078236\x26blogName\x3dSoloJava+Noticias\x26publishMode\x3dPUBLISH_MODE_BLOGSPOT\x26navbarType\x3dBLUE\x26layoutType\x3dCLASSIC\x26searchRoot\x3dhttps://solojava.blogspot.com/search\x26blogLocale\x3des_ES\x26v\x3d2\x26homepageUrl\x3dhttp://solojava.blogspot.com/\x26vt\x3d1431656211189939993', where: document.getElementById("navbar-iframe-container"), id: "navbar-iframe", messageHandlersFilter: gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER, messageHandlers: { 'blogger-ping': function() {} } }); } }); </script>

SoloJava Noticias

Lo mejor del mundo IT con o sin Java

¿Qué hay de nuevo en Java 1.5?

27.7.04
Desde hace una semana ví esta iniciativa iniciada por Igvir hace tiempo y ahora retomada. Ayer me contactó para invitarme a colaborar, cosa que haré con mucho gusto.

Para empezar, reutilizaré (y censuraré la parte que no tiene que ver con Java) un post publicado en mi blog en Abril de este año. Como Java 1.5 continúa siendo Beta, considero que su contenido aún está vigente. El post original -sin censura ;)- puede ser visto aquí.

<-- Comienzo del Post -->

Desde el año pasado, en el sitio oficial de Java se adelantaban cuáles iban a ser las nuevas características que se agregarían a la nueva versión de Java. En febrero de este año se publicó un artículo con un resumen de las nuevas características. Para esta fecha, el Beta 2 se encuentra disponible para ser descargado.

Personalmente, recibo con mucho agrado que finalmente se puedan definir tipos genéricos en Java.

Por razones académicas, en 1998 estaba evaluando los mecanismos para la definición de clases genéricas en Java. Las opciones nativas se reducían al uso de la clase Object y el uso extensivo de castings. A nivel de investigación, me tope con trabajos como Generic Java (que había sido presentado en el OOPSLA de ese año y cuyo nombre de proyecto era "Pizza") y otros trabajos que básicamente proponían extensiones no oficiales para definir clases genéricas. En esa misma época noté que Generic Java fue adoptado como un JSR por el JCP. Finalmente, cinco años después, la especificación fue aceptada y agregada a la plataforma.

Los que han utilizado el conjunto de clases que implementan Colecciones (Vector, HashTable, HashMap, Set, List, Map...) saben que esto será un gran avance, debido a que estas clases estarán disponibles ahora en versiones genéricas. El problema de fondo que había impedido la inclusión de esta nueva característica es la compatibilidad con código anterior; además de la propia implementación de un soporte en compilación (y dependiendo de la solución escogida, también en tiempo de ejecución) para tipos genéricos.

Entre el resto de características nuevas se puede citar:
  • Revisión de las primitivas para concurrencia: Interesantísimo y muy útil para mí. Aún tengo que revisarlo.

  • Metadata en el código: lo asocio con JavaDoc, pero aparentemente permite definir metadatos que luego pueden ser obtenidos en tiempo de ejecución mediante reflexión (no se por qué, pero me parece inspirado en todo el rollo de semantic web).

  • Sintaxis simplificada del código de ciclos si se utilizan iteradores.

  • Sentencias de impresión al estilo de C (sí, con macros de formateo %s, %i, ...).
Para una explicación más detallada sobre las nuevas características recomiendo revisar este artículo.

Crece el equipo

Siguen llegando buenas noticias para esta iniciativa. El equipo esta creciendo de un forma que no me esperaba. Para esta fecha ya se han integrado Anibal, Egg y Vemeko. Todos amigos y grandes trabajadores de Java y del Blog Venezolano. Les damos la bienvenida y desde ya les agradecemos por colaborar en este trabajo.

BlueJ 2.0 beta

La versión de BlueJ 2.0 beta está disponible para el download. Para quienes no conocen que es BlueJ, es un ambiente Java integrado diseñado especificamente para el aprendizaje introductorio.

BlueJ fue desarrollado en una universidad específicamente con el propósito de enseñar orientación a objeto con Java.

BlueJ soporta:

  • un ambiente totalmente integrado
  • visualizar la estructura de classes gráficamente
  • edición en modo gráfica y de texto
  • incluye un editor, compilador, máquina virtual, depurador (debugger), etc.
  • interfaz fácil de usar, ideal para principiantes
  • creación de objetos interactiva
  • invocación de objetos interactiva
  • pruebas interactivas
  • desarrollo de aplicaciones incrementalmente
También existe un libro, pero continuando el tema del mensaje anterior, solo en inglés

Actualización: hay una versión del tutorial en español

Mi trabajo en Java

24.7.04

Desde hace varios años estoy trabajando en Java, el lenguaje de programación que ha dado de que hablar a todos los interesados en el mundo de la informática en tiempos recientes. Quienes han seguido la historia de este lenguaje de programación saben que se ha ganado amigos y no tan amigos gracias a su promesa básica, permitir que las aplicaciones corran en casi cualquier sistema operativo sin que el programador intervenga en cambios de código. Lo cierto es que con Java hoy se pueden realizar aplicaciones de cualquier nivel y con muchas ventajas sobre otros lenguajes de programación.

Cuando me iniciaba en estos temas de la programación, la documentación en español estaba rezagada respecto a la documentación en ingles. Resultaba una tarea larga y hasta complicada el tener que buscar información específica en español por lo que tardamos algunos años en ver resultados de la incursión de Java al mercado venezolano. Aun existe en muchas formas esta demora en la información escrita en español para Java, incluso en internet, pero es una brecha que se está acortando.

No había muchos lugares donde buscar, pero había gente trabajando. Así surgió la oportunidad de crear un grupo para los programadores Java, de Venezuela en primer lugar, pero con internet no tardó mucho de en ser de todos los que hablan español. No fue, ni estuvo cerca de ser, el primero en su clase, pero ha llenado un espacio importante en esta comunidad de programadores. Por razones que ahora no recuerdo con total exactitud el grupo recibió el nombre de SoloJava, y el 28 de agosto del 2000 el primer mensaje enviado al grupo logró que la idea pasara a ser una realidad.

Hoy a casi cuatro años de su creación hemos retomado otra idea que por la eterna falta de tiempo se había perdido en los cajones de mi escritorio, crear un blog grupal que apoye el trabajo del grupo de programadores en español con noticias, artículos e incluso tutoriales. Un formato tan fresco como el blog que le dibuje una cara nueva al trabajo de Java en Venezuela y por que no del resto de los países en los que se habla español. Un nuevo frente en la lucha contra el imperio del mal, si quieren decirlo en términos más radicales. Ahora estamos comenzando, buscando ideas, ayuda y colaboradores. Síganle la pista y ayúdennos a mejorarlo.













Únete a SoloJava





Con el apoyo de Yahoo! Grupos

¿Problemas con GridBagLayout?

20.7.04
¿Alguna vez han sufrido usando GridBagLayout? seguro que si, al principio es dificil usarlo correctamente, asi que para recordar un poco lo que muchos de nosotros hemos pasado diviertanse con esta animación (audio en inglés).

Tips para usar correctamente GridBagLayout:
  1. Tratar en lo posible de usar un editor gráfico
  2. Combinar con otros layouts disponibles, no hacer todo un panel complejo con GridBagLayout
  3. Utilizar la propiedad "colums" de los TextFields para determinar el tamaño horizontal de este, es aconsejable evitar combinar celdas del grid para este objetivo
  4. Igualmente al tip anterior, preferredSize puede ayudar mucho cuando se usan componentes grandes en tamaño dentro de un GridBagLayout, como por ejemplo un JTable con su respectivo JScrollPane
Tengan paciencia con los layouts, sin ellos no fuese posible diseñar GUIs portables a diferentes OSs

Nueva Etapa


Estamos trabajando para darle nueva vida a este espacio. Pienso que la idea de tener un Blog de Java que complemente el trabajo del grupo sigue siendo muy valida. Pronto tendrán buenas noticias. Desde ya les digo a todos los interesados que pueden hacernos llegar sus ideas que con toda seguridad sera bienvenida.

Libro Gratis

Se ha puesto a disposición un nuevo libro llamado Servlets and JavaServer Pages: The J2EE Technology Web Tier, gratis para los miembros de TheServerSide.com. No pierden nada con registrase