miércoles, 16 de diciembre de 2009

Bienvenidos a JavaFX

¡¡Buenos días Señores!!

¡Qué ganas tenía de volver a deciros esta frase!. Y es que, las cosas hay que reconocerlas, me encantó daros clase, no sólo porque a muchos os conociera de antes, sino también porque tuve la suerte de poder dar las clases de programación, que es aquello que más me gusta en la Informática, y por supuesto, porque mostrasteis un interés desmesurado por la programación, aunque por desgracia no pudiéramos avanzar con todo el ritmo que a mí me hubiese gustado.

Pero de repente me encuentro que estáis en este blog, ya lo sabía del año pasado pero no esperaba que esto siguiera activo, así que con vuestro permiso, pongo los pies en este rinconcito de la web.

Pero no vengo sólo a leer, sino a intentar aportaros algo y, aunque ya no sea vuestro profesor, procuraré orientaros en lo que considero que debéis conocer, y resolver vuestras dudas, si las tenéis y yo conozco la respuesta.

Bueno, dicho todo esto, y agradeciendo otra vez que me dejéis entrar en el blog, me gustaría empezar con algo bastante bonito dentro de la programación Java. Todos sabéis la gran difusión que está teniendo Flash como herramienta de desarrollo de contenidos multimedia, sobretodo en el ámbito de Internet. Pero también estaréis enterados de que Action Script CS3 (que es, si no me equivoco, la actual herramienta de programación de Flash) despierta muchos recelos entre los desarrolladores, y posee además una cantidad de librerías muy limitada. ¿Qué os parecería si tuvieramos una nueva forma de crear contenidos multimedia para la web, con una apariencia que concuerda con la de la web 2.0?, ¿Qué os parecería, además, si la aplicación que desarrolláis pudiese, con el mismo código, sin necesidad de compilación, funcionar no sólo en multiplataforma, sino en multidispositivo, a través de ordenadores de todo tipo, móviles, PDA's, y hasta la nueva generación de televisores? ¿Pero y si además todo está basado en tecnología Java y se trata, en realidad, de una librería que supera a SWING en todos los sentidos?, ¿y si además la interfaz de las aplicaciones de este tipo se pudiera personalizar simplemente con una hoja de estilos en formato CSS?. Pero esto no es todo, además de lo dicho es que esta nueva tecnología nos pone al alcance de la mano la posibilidad de crear videojuegos de una forma extremadamente sencilla y visual. De manera que estamos hablando de una tecnología que se encuentra naciendo de la mano de Sun Microsystems y apoyada por varias comunidades de código libre, cuyas aplicaciones tienen una apariencia inmejorable, que se puede personalizar a través de CSS, y de carácter tan general que puede funcionar independientemente en ordenadores, PDA's, móviles, televisores de nueva generación, y que tiene en su interior todas las librerías Java actuales, de manera que podemos desde crear un entorno en 3D para un videojuego, a utilizar los puertos de nuestro ordenador, grabar CD's, conectarnos a cientos de BBDD, obtener información y recursos de toda la web para nuestro programa, y un milenario etc de posibles aplicaciones. Pero es que además de todo esto, vosotros hacéis una aplicación en forma de "applet" (es decir, embebido en una página) y si el usuario quiere instalarla en su ordenador para que funcione como aplicación independiente sólo tiene que arrastrar esta ventana desde el navegador al escritorio, y nada más. No contentos con esto, uno de los principales entornos de desarrollo en código libre para Java del panorama (NetBeans) ya incorpora todo lo que necesitamos para crear nuestro programas en la nueva tecnología.

Pues de toda esta monserga, que sepáis que la tecnología de la que estamos hablando tiene algo más de un año de vida, se está imponiendo con rapidez, y se llama JavaFX.

Hoy no tengo mucho más tiempo, pero os dejo un enlace para que vayáis viendo algo de todo esto, y en poco tiempo, empezaremos a explicar los ejercicios que podemos encontrar en la web, y a aprender de ellos.

El que esté interesado en esto, que empiece por:
Para empezar a profundizar:
El que quiera que se le haga la boca agua con lo que se puede hacer con muy poquitas líneas de código:

Por supuesto, no olvidéis que para que podáis utilizar JavaFX como desarrolladores, os haría falta descargar la JDK de referencia:

Un consejo, las páginas que os he puesto están en inglés pero no debéis asustaros, ya que el inglés técnico, además de ser bastante fácil una vez que aprendes lo básico, es necesario para los estudios que estáis realizando, y yo estoy dispuesto a ayudaros en todo lo que no entendáis. ¡Ah!, y por supuesto, no olvidéis que tenéis a vuestra disposición:

6 comentarios:

Enano007jr dijo...

ya me he puesto a investigar un poco auque es la primera vez que escucho hablar de esto, espero que tenga existo, tiene buena pinta. Los diseñadores de flash estan recelosos en parte con action script 3 porque han puesto las entradas de raton y teclado como en java, con listeners o al menos, eso he escuchado

Pakiyopgd dijo...

Si, la verdad es que es muy interesante, esta navidad le meteré mano a ver si puedo hacer cualquier consilla minimamente curiosa jaja xD

Mocitofeliz dijo...

Lo primero me presento, pues es mi primer mensaje por aqui, y lo segundo darle la bienvenida a Rafa, que algo nos acordamos de el.

Por suerte (o por desgracia) me ha tocado aprender AS3 este año, partiendo de que mis conocimientos en este lenguaje eran nulos, la verdad, sabiendo java te puedes defender medianamente bien y sin mayor contratiempo.

Mi pregunta es la siguiente; me han propuesto en la empresa que empiece a ponerme al dia en Flex, hasta donde he podido ver es una herramienta muy potente, con las que he podido ver webs que han quedado realmente bien. ¿Debería empezar con JavaFX o con Flex?

Rafael Muñoz dijo...

Hola a todos, perdón por la tardanza, pero ya se sabe que tener lo que se dice mucho tiempo, pues no tengo.

Vamos por partes. A Enano007jr, los diseñadores de Flash no han copiado sólo el sistema de eventos de Java. Lo han copiado prácticamente todo. Lo cual no quiere decir que hayan hecho mal, todo lo contrario: han cogido algo que saben que funciona perfectamente, a lo que muchos programadores están acostumbrados y lo han aplicado a su lenguaje. Si ahora se quejan de esto, pues la verdad... me parece más una rabieta ante las críticas que reciben a diario por haber copiado a Java que otra cosa. De todas formas, no quiero que se me malinterprete, AS3 no está mal, lo único de lo que peca es de tener "aún" pocas librerías con respecto a lenguajes con más solera, tales como Java. El modelo de eventos basado en listeners es el más lógico teniendo en cuenta que el código de cualquier aplicación es multiplataforma y que cada SO maneja estas interrupciones del sistema (tales como las que genera el teclado o el ratón) en una forma diferente. Verás como, dentro de tres años AS3 sigue manejando el teclado y el ratón con listeners, no son tontos.

A pakiyopgd, métete con JavaFX, como ya te digo la tecnología está comenzando pero ya es prometedora. Java por fin se ha dado cuenta de ciertas cosas fundamentales, que muchos programadores hemos nombrado una y otra vez en diferentes foros. Si un applet tarda en cargarse en el sistema, el usuario (al que se la suda que la página sea flash o flex o Java) no aguanta y carga otra página. Por otra parte, las aplicaciones Java no podían seguir con la estética de SWING que, aunque potente a más no poder, no ha cuidado su imagen en los últimos 10 años, y se ha quedado super anticuado visualmente hablando. Los usuarios quieren tener la estética de la web 2.0 en todo lo que les rodea. En mi opinión este es otro de los problemas de Linux, y en los que últimamente me alegra ver que se están haciendo muchos esfuerzos y muchos logros.

Como te digo, Pakigopdg, ponte con JavaFX, no estoy seguro de hasta donde llegará esta tecnología, pero a mí me gusta, me gusta mucho.

Mocitofeliz, hombre lo que tu tienes es un chollo. Si tu empresa te está pidiendo que te pongas con Flex, eso quiere decir que te va a pagar por aprender una tecnología nueva. Es decir, te podrás poner en tu empresa, en tu tiempo de trabajo a aprender algo y no te dirán que te pongas a trabajar y a dejar de leer. Eso es un auténtico chollo. Lo normal es que tengas que aprender cosas nuevas en tu tiempo libre, como lo hacemos casi todos los mortales. Aprovéchate y aprende. No te equivoques con JavaFX. Esta tecnología es algo muchísimo más general que Flash o Flex, tanto que solamente una cara de JavaFX es la que está orientada a Internet, mientras que Flash o Flex se centran únicamente en este mercado. Aunque al principio, como siempre pasa, JavaFX te podrá parecer difícil (a mí me lo parece), verás como la curva de aprendizaje es exponencial y, en poco tiempo, consigues hacer cosas muy "graciositas", con la ventaja de que tus aplicaciones podrán funcionar independientemente en una página de Internet, como aplicaciones de ventanas convencionales (standalone), o incluso en terminales móviles. ¿Te puede dar esto Flash o Flex?.... creo que no.

Por esto te digo, aprovecha la coyuntura que te ofrece tu empresa, es una buena oportunidad. Yo he trabajado en sitios en los que he cobrado una auténtica mier..., pero en los que aprendí muchísimo. Ahora, por las tardes, podrías ponerte a aprender cosas nuevas por tu cuenta, y ahí es donde entra JavaFX.

alberto dijo...

Buenos dias queria hacer una pequeña consula una vez tengo instalado lo del fx y tal algun manual o algo paara saber como se usa se tiene por hay ¿? para empezar haciendo alguna cosita

Rafael Muñoz dijo...

Ayyyy, alberto, pero ¿tú te has leído el post que escribí?. Al fondo vienen las direcciones para empezar. Por desgracia no he encontrado nada que merezca la pena en castellano.

Mañana cojo vacaciones por cinco días en la Delegación y os empiezo a desglosar los inicios.

Un saludo
Rafa