jueves 2 de julio de 2009

NetBeans 6.7 está aquí

Bueno NetBeans no se podía quedar atrás, ya esta disponible la versión 6.7 de este poderoso IDE. Realmente aprecio que han mejorado considerablemente el soporte para Apache Maven, Groovy and Grails. Aparentemente han mejorado el rendimiento, y como siempre, NetBeans sigue siendo líder en WYSIWYG tanto para Swing como para Web.

Visite http://www.netbeans.org/ para más información

miércoles 24 de junio de 2009

Galileo está aquí

El día de hoy ha sido liberado Eclipse Galileo, este release en especial me llama mucho la atención debido a que por fin SWT soporta COCOA, la librería nativa para MacOS Leopard. Por otro lado para las otras plataformas igualmente están consideradas muchas mejoras y pronto anexaré mi evaluación respecto al IDE.

http://www.eclipse.org

lunes 22 de junio de 2009

EBS4J, Consultoría y Servicios

El día de hoy Lunes 22 de Junio, inicia el desarrollo del portal ebs4j, sitio web orientado a brindar consultoría y y entrenamiento de Java y JEE a la pequeña y mediana empresa de El Salvador, el equipo integrado y mi persona espera que este proyecto a corto/mediano plazo tenga el éxito y aprobación necesaria del mercado y atender la demanda actual de servicios profesionales, además de trabajar de la mano con la gente que necesita actualizar y/o mejorar su procesos con las nuevas tecnologías para el beneficio común y social de nuestro país.

Visite http://www.ebs4j.com/ para más información

miércoles 10 de junio de 2009

Comparación de Tecnologías RAD

Rapid Web Application Development, ¿¿¿en JAVA???

Hace ya como 3 o 4 años, he estado investigando sobre un modelo o plataforma para desarrollo rápido de aplicaciones en Java, tomando en cuenta que una de las quejas generales de Java es que toma mucho tiempo realizar tareas relativamente simples en comparación con otros lenguajes, tales como conexión a bases de datos relacionales, gestión de archivos, el mantenimiento CRUD de una tabla, etc. Colegas de Microsoft, me han demostrado como es posible desarrollar dichas tareas con unos cuantos clicks y drag & drops en el ambiente de Visual Studio, independientemente del lenguaje: Visual Basic, C#Sharp, entre otros. Claro esta, que al demostrarle las bondades de Java, tales como independencia de plataforma, IDE, librerías libres de gran calidad, entre otros; la comparación entre ambos queda bastante igualada. Lamentablemente para el ambiente empresarial un factor primordial es el tiempo basándose en la simple y vieja ecuación tiempo = dinero.

Es por ello que muchos de los sistemas en que he desarrollado o al menos participado han utilizado diferentes plataformas y marcos de trabajo, tales como Spring, TopLink, Hibernate, Struts, JSP & JSTL, JSF, Ajax, etc. Y básicamente en todas, a pesar de su irrefutable calidad y rendimiento, el tiempo de programación es un factor en contra en el desarrollo. Ya que además de la curva de aprendizaje de cada una de ellas, prácticamente no hay una manera de generar código de manera automática. Y las herramientas de autogeneración, tales como middlegen, hibernatetools, etc. No siempre cumplen con las expectativas deseadas y definitivamente el tiempo que nos toma corregir, es el mismo que nos hubiera tomado diseñarlo artesanalmente.

¿La solución?
No RAD, AGIL,


Pues...la verdad...No existe una solución. No hay RAD, sin embargo si es posible ser más ÁGIL. Con el tiempo y luego de horas de dolores de cabeza, me he dado cuenta que todo depende sobre qué, para qué y para quien, es el sistema, al formular esas simples preguntas, es posible tomar las decisiones que nos lleven al camino adecuado para reducir el tiempo y ser más efectivos. Por ejemplo: Si por X o Y motivo estamos bajo Oracle, lo recomendable es utilizar las herramientas de Oracle, por otro lado si estamos sobre Websphere, pues lo recomendable es utilizar las herramientas de IBM. Y si estamos sobre Open Source??? en este caso es un poco más complicado, pero todo se resume a combinar las tecnologías de manera ecológica y armónica o el ecosistema JEE

Ecosistema JEE

Para la mayoría de proyectos JEE (especialmente orientados a RAD) es necesario la inclusión de diferentes herramientas, tecnologías, librerías y plataformas que faciliten el análisis, desarrollo, implementación y funcionamiento de las aplicaciones. Sin embargo un proyecto JEE puede estar agobiado de dichos componentes, muchas veces innecesarios, o por el contrario, carecer parcial o totalmente de ellas. Es necesario formar y establecer un ECOSISTEMA JEE que estandarizen y armonicen el posible caos dentro de las aplicaciones y servicios, tanto en el desarrollo como en la publicación y el ciclo de vida completo de los sistemas, de tal manera que la productividad se aumente y se disminuyan los posibles errores y cuellos de botella, que son realmente, los que consumen el tiempo y vuelven el desarrollo e implementación un caos.

Algunos de los componentes, y sus combinaciones, que no deben de faltar en ninguna implementación RAD son:

1. Build Tool : Ant, Maven, IVY
2. Dependency Injection / IoC : Spring Framework
3. Data Access Layer (JDBC ú ORM's : Hibernate, TopLink, iBatis)
4. Model View Controller, Struts, Spring MVC, JSF
5. IDE: Tales como (Sin orden de preferencia) : Eclipse, NetBeans, JDeveloper, IntelliJ Idea
6. Generadores o plantillas : Tales como AppFuse, Grails, FireStorm

Ejemplo de ello, pueden ser:
  1. Ant + Spring + TopLink + ADF Faces + JDeveloper
  2. Maven + Spring + Hibernate + Struts + Eclipse
  3. Maven + Spring + JPA + Eclipse/NetBeans
  4. Groovy / Grails + Intellij IDEA
Definitivamente, Java es cambiante, cada día surgen nuevas herramientas, lo importante es no perder de vista las preguntas: Sobre qué, Para qué y Para quién. Una vez estamos inmersos en el mundo de JEE, sabremos exactamente que camino tomar y cual arsenal vamos a llevar con nosotros.

Fundamentos de Java

El sábado anterior finalizó el entrenamiento de Java Fundamentals, el cual fué impartido a 2 empresas interesadas en tecnologías Java. Fueron 20 horas divididas en 4 sesiones, anexo el material de trabajo junto con el material de la presentación. Todo el material está basado en el entrenamiento de Sun Microsystems, aunque el material de trabajo fué redactado según mi criterio y recolección de información de Internet.

jueves 4 de septiembre de 2008

Guías y Tutorial de Java

Actualmente un nuevo reto se ha presentado en mi carrera como Analista de Sistemas, entrenamiento... Este nuevo reto surge lo tomo muy a pecho porque creo que al colaborar con el aprendizaje de los demás en el mundo de Java aporto el granito de arena que desde hace tiempo he querido brindar, y que mejor manera que enseñando a otros mis experiencias con el lenguaje.

La pedagogía definitivamente no es mi rama, sin embargo, soy creyente de que cada uno de las personas que nos involucramos con el desarrollo de sistemas, tenemos un tutor interno, el que nos empuja a auto-enseñarnos de manera empírica uno que otro tema que deseamos conocer.

Es común que en nuestras labores diarias se acerque el jefe inmediato y diga clásicamente "El programa es para mañana", o aún peor, el cliente notifica que lo necesita para hoy a las 3:00PM, y esta "tradición" o "costumbre" ha hecho que encontremos las más rápidas maneras de realizar algo, que no es lo mejor, pero al menos funcional. ¿Porque menciono esto? Porque si cada uno diéramos un poco de nuestro conocimiento, nuestro día a día sería mucho mejor.

Por otro lado, una cosa si la tengo bien clara, el recurso en español es muy escazo, al menos en google, comparado con el inglés, este es otro reto, por tanto he decidido basarme en dividir el Java Tutorial de Sun para una versión basica y avanzada del JSE. Así que manos a la obra, y espero que el contenido publicado en el blog sea de interés y que sirva de guía para los demás.

viernes 16 de mayo de 2008

Adiós 1.4 fué un placer conocerte

Luego de llegar a la actualización 15 del JDK 1.5 o Java SE 5, he decidido finalmente migrar e instalar el JDK 6 (Actualización 6 a la fecha) ... Tomando en cuenta que estamos todavía con algunos pocos proyectos sobre JDK 1.4, me parece que es hora de migrar.

Si hay algo que es admirable en Java es su compatibilidad entre versiones, a la fecha no he tenido ningun problema al cambiarme de versiones. De 1.3 a 1.4 a 1.5 y ahora a 6 espero que sea igual de transparente que en las anteriores ocasiones.

Reconozco que Java 6 tiene ya buen tiempo de estar disponible, sin embargo tomo muy cuenta personalmente en que versión de JEE (Java Enterprise Edition) esta trabajando la industria comercialmente. Actualmente compilo sobre 1.5 con compatibilidad sobre 1.4, tomando en cuenta que los servidores de aplicaciones empresariales siempre estan una o dos versiones atrás que la más actual de Sun, claro por compatibilidad y estabilidad. Pero a la fecha muchos de ellos, entre ellos: JBoss, IBM, BEA y Oracle, ya estan en producción sobre 1.5, creo que es hora de compilar sobre 1.6 utilizando compatibilidad con 1.5.

Vamos a ver si 1.6 nos ofrece tan buena compatibilidad como la familia 1.5 y al recordad tanto tiempo programando sobre 1.4, con un poco de nostalgia, creo que es hora de decirle "Adiós venerable 1.4 fué un placer conocerte".