Buscar
Social
Ofertas laborales ES
miércoles
sep172008

Artículo sobre cómo integrar componentes Flex en JSF empleando Fiji

En DZone han publicado un artículo donde se muestra cómo emplear componentes Flex empleando la librería JSF Exadel Fiji, de tal modo que los datos que necesitan los componentes Flex sean proporcionados directamente por los managed beans de JSF. Exadel Fiji es una librería opensource que tiene detrás de ella a una empresa que vende herramientas para desarrollar con ella, así como servicios de formación y consultoría.



Dado que hace unos días el tema de integrar componentes Flex en páginas JSF desató bastante interés en el portal, me pareció que este artículo resultaría interesante.

martes
sep162008

Mas anotaciones en Java7

Desde la version 5 de Java tenemos la posibilidad de anotar  nuestro codigo, a estas alturas todos conocemos las anotaciones, las hemos usado o sencillamente la hemos visto en ejemplos de frameworks o en codigo de nuestros amigos. Son esas @Cosas que vemos antes de clases, campos o metodos. Aunque se puede decir que las anotaciones han sido utiles, porque la mayoria de los frameworks las usan, dentro de JSE, son realmente muy pocas, las mas comunes: @Override y @SupressWarning. 

La noticia es que Java7 incluira el paqueta javax.annotation con muchas nuevas (algunas muy buenas) anotaciones. Basicamente se incluiran anotaciones para los siguientes contextos:

  • Anotaciones para el lenguaje
  • Precondiciones
  • Uso adecuado de APIs
  • I/O
  • Seguridad
  • Concurrencia
En las anotaciones para el lenguaje tendremos por ejemplo @NonNull (ojo es diferente a @NotNull), cuando se utiliza el compilador verifica que si el campo anotado es nulo es porque algo anda mal y notifica al programador. Un uso comun seria en los compareTo 
public int compareTo(@Nonnull Integer anotherInteger)
{
int thisVal = this.value;
int anotherVal = anotherInteger.value;
return (thisVal < anotherVal ? -1 : (thisVal==anotherVal ? 0 : 1));
}
O tambien @CheckForNull, @Nullable. En el caso d la anotaciones para precondiciones existiran:
  • Signed
  • Nonnegative
  • MatchesPattern
  • Syntax

La @Sytanx por ejemplo se podra usar en metodo que retornen una String y esa deba estar formateada siguiendo alguna sintaxis. Por ejemplo  @Syntax("HTML")   o @Syntax("Groovy") Hay muchas otras como @Inmutable, @WillClose para IO @ThreadSafe, @GuardedBy para seguridad y muchas mas que pueden encontrar en. http://today.java.net/pub/a/today/2008/09/11/jsr-305-annotations.html Mi duda ahora es: "¿Bienvenidos al Annotations Hell?" es cierto que algunas de esas anotaciones podrian reducir el trabajo del programador y dejar muchas cosas en mano del compilador y del JRE, el miedo esta en llegar al punto de ver cosas como:

@Class("Empleado")@Extends(@Class("Persona"))
@UseDatabase(@JNDI("jdbc/myCon")) 
@Require@NonNull@ThradSafe@ Method("sayHello")@NeedWebAccess(@Mode("JSF"),@AlternateMode("WebServices"))
@CanExport(@Language("Ruby"))
public class @Class("name"){   
}

Sencillamente sera el fin de Java como lenguaje, porque como siempre he dicho, la plataforma esta hecha para durar muuucho tiempo mas usando cualquier otro lenguaje jejej. 

martes
sep162008

El principal problema a largo plazo para Java según Robert Miller

Robert Miller en una entrada en TSS comenta cuál es para él el principal problema a largo plazo de Java: no es la tecnología que eligen los innovadores. Esta gente, según él, prefiere emplear tecnologías más simples como Ruby, Python o PHP. Según Miller, el énfasis de Sun en competir con Microsoft en clientes grandes ha hecho que las tecnologías de la compañía no resulten atractivas a este sector, y eso puede perjudicarle a largo plazo. 


Desde mi punto de vista, este argumento tienen dos fallos. El primero, es lógico que Sun trate de hacer llegar sus tecnologías a las grandes compañías que, a través de la contratación de servicios de consultoría y soporte, y a través de la compra de hardware, pueden proporcionar más beneficio a la compañía. Indudablemente, es lo mejor para la compañía y no se le puede reprochar por ello. 


Segundo, si bien es cierto que tecnologías como Ruby on Rails pueden ser más adecuadas para desarrollar una prueba de concepto rápida (que es lo que habitualmente le interesa a un innovador para luego conseguir financiación y seguir creciendo) no veo que Sun se haya olvidado de los proyectos de este tipo. Más bien todo lo contrario: Ruby on Rails, a través de JRuby, es parte de la plataforma Java. El porte a Java Python (otro de los lenguajes que él menciona), JPython está muy cercano a soportar toda las características de la implementación realizada en C. E e incluso contamos con un lenguaje propio similar a los anteriores: Groovy. Por no mencionar el interés de Sun en soportar PHP (aparte de Ruby, Groovy y Python) en NetBeans. 


¿Qué opináis vosotros al respecto?

martes
sep162008

Maxine, una máquina virtual java implementada en... ¡Java!

Maxine es una máquina virtual Java desarrollada como un proyecto de investigación dentro de Sun Microsystems y distribuida bajo licencia GPL 2.0. La novedad es que la inmensa mayoría de la máquina virtual (menos una mínima parte para arrancar que está escrita en ensamblador y C) está escrita en Java.


Se trata de un proyecto de investigación y su principal aplicación actual es el uso en docencia: este código es mucho más fácil de entender y manipular que el código de la máquina Hot Spot. Y el hecho de poder usar una herramienta como NetBeans para trabajar con la máquina virtual también simplifica considerablemente el desarrollo.


La máquina virtual es aproximadamente cinco veces más lenta que Hot Spot y el proyecto se encuentra alojado en java.net.

sábado
sep132008

Griffon: el Grails para Swing

Andrés Almiray anuncia en su blog la publicación de la primera versión de Griffon, un framework Groovy open source que busca ser para el desarrollo de aplicaciones Swing lo que es Grails para el desarrollo web. De acuerdo al post de Andrés, este framework tuvo su semilla un año atrás, cuando el proyecto SwingBuilder cambió de código Java a código Groovy.

La forma de trabajar con Griffon está inspirada en la de Grails: se basa en comandos de consola que se encargan de cosas como crear un proyecto nuevo, crear nuevos objetos del modelo del dominio y su respectivas controladores/pantallas usando un patrón MVC y ejecutar la aplicación.

La verdad que con la simplicidad que aporta Groovy al mundo Swing desde hace tiempo con SwingBuilder, se extrañaba una herramienta así para construir aplicaciones de escritorio de forma sencilla. Enhorabuena a los desarrolladores de Griffon que incluso hacen que Swing parezca divertido ;-) (venga que yo siempre he sido más del mundo web).