samedi 15 septembre 2007

Une cardioïde en JavaFX

Ci-après, un premier petit essai en JavaFX qui a pour objectif de dessiner une cardioïde...
Je doute que le code que j'ai réalisé soit optimisé ou respecte les bonnes pratiques du codage en JavaFX.

Pour faire ce petit programme, j'ai utilisé Netbeans comme il le conseil dans ce tutoriel... je sais c'est un peu lourd pour un petit programme comme cela mais je n'avais pas envie de me prendre la tête et j'utilise déjà Netbeans pour une bonne partie de mes développements Java "personnels" (sinon, c'est comme au bureau j'utilise Eclipse/RSA). D'ailleurs il existe un plugin Eclipse pour JavaFX.

Une petit explication du principe du programme : je génère un tableau de points dont les coordonnées suivent l'équation paramètrique de la cardioïde. Ce tableau de points est ensuite utilisé pour construire un objet Polyline.

J'avoue que pour l'instant je ne suis pas convaincu par JavaFX mais c'est peut-être parce que cela change mes habitudes de programmation.
Cela donne çà :



Je viens également de tomber sur ce tutoriel sur JavaFX (sur le réseau O'Reilly) mais je n'ai pas encore eu le temps de regarder de près.

3 commentaires:

Rodrigue a dit…

Salut,

Je suis également programmeur (C++, C++/Cli .NET, C#). Je me renseigne un peu sur les différentes techno disponibles pour créer des RIA.
Il en existe pour moi trois qui valent le coup:
- Silverlight de Microsoft: possibilité de coder en C#, visual studio comme IDE (donc le luxe), etc. mais, mis à part le projet moonlight, aucun support pour linux.
- Flash d'Adobe: 98% des navigateurs ont Flash installé par contre je ne sais pas si tu as déjà utilisé Flash sous Linux (Ubuntu 8) mais c'est très lent...
- FlashFx de Java: c'est java: on le compile, ça fonctionne partout! Le problème c'est que d'après les benchmarks que j'ai vu c'est très lent (d'ailleurs Silverlight l'emporte haut la main).

Pourquoi dis-tu que tu n'es pas très convaincu par javafx?

Rodrigue
http://www.rodrigueroland.net

The Geek In The Shell a dit…

Bonjour Rodrigue,

Ce qui ne m'a pas convaincu au moment où j'ai écris ce billet c'est le langage JavaFX en lui-même et la facilité pour faire quelquechose avec JavaFX.

JavaFX est un langage déclaratif et du coup c'est un peu perturbant quand on est habitué à programmer les IHM de manière procédural en C/C++ ou en Java.

Ceci étant il y a beaucoup d'éléments qui semble intéressant dans JavaFX...
néanmoins pour en profiter, cela implique un investissement certain en temps dans la plateforme JavaFX et il n'est pas évident pour l'instant que la "ROI" soit au rendez-vous, parce que la technologie est jeune et ne sera peut-être pas pérenne.

Dans l'absolu, je trouve JavaFX intéressant et j'aimerais pouvoir y consacrer plus de temps, si du temps j'en avais.

Hélas cette plateforme arrive un peu tardivement, elle est encore un peu jeune et son avenir n'est pas certain.

Donc pour l'instant, je garde un oeil sur cette technologie mais j'attends de voir ce que cela va donner... surtout que comme tu le fais remarquer, il y a une très forte concurrence dans le domaine avec Microsoft et Silverlight mais surtout avec Adobe et Flash/Flex/AIR.

Rodrigue a dit…

Je suis tout à fait d'accord avec toi. D'ailleurs je suis tombé sur le projet pulpcore qui remet les applets sur le devant de la scène:
- programmation aisée (style de boucle de message de windows)
- framerate élevée (meilleur score au bubble test)
- l'applet se télécharge en deux temps: une première partie est téléchargée, elle affiche une animation pendant qu'une seconde applet est téléchargée en arrière plan.
- animations automatiques (ELASTIC etc.)
- etc.