Bien débuter avec Java pour Pocket PC

Il existe principalement 3 machines virtuelles Java intéressantes sous Pockets PC:
- CrEme de NSIcom
- SuperWaba
- J9(Ive) de IBM
Nous allons en faire le tour rapidement et voir les avantages et inconvénients de chacune.
CrEme de NSIcom
CrEme est sûrement la machine virtuelle que je connais le moins et celle pour laquelle j'ai porté le moins d'intérêt, sûrement à tord.
Le premier point positif de cette machine virtuelle, est l'expérience de la société qui développe cette machine virtuelle depuis un certain nombre d'années, ce qui permet de se dire que NSIcom nous fournit une JVM fiable et de qualité.
Cependant, ce qui saute aux yeux en exécutant les programmes de démonstration est la vétusté des toolkit graphiques fournis avec la JVM! (on se pose des questions concernant le reste) Sachant qu'on ne développe en général que des programmes visuels (avec interface graphique) sur Pocket PC on est mal barré! Pour ma part, je ne pas essayé de voir plus loin concernant cette JVM, puisqu'il n'est pas vraiment encourageant de développer des logiciels avec des interfaces dépassées, surtout quand ces logiciels s'adressent à des professionnels.
Il existe sûrement un autre toolkit plus intéressant à utiliser avec CrEme, SWT peut sûrement tourner dessus sans problème, mais cumulé au fait que la JVM est payante, développée par une société dont on ne connait rien d'elle, ni de ses projets concernant la CrEme (souhaitent-il continuer son développement? point crucial), j'ai préféré aller voir ailleurs et voir ce qu'on me proposait!
Les points positifs:
- Cette JVM suit le standard J2ME/CDC.
- Cette JVM propose un plugin qui s'intègre parfaitement dans IE des Pocket PC! (cf: une application de démo plutôt sympa de cube qui tourne en 3D)
Les points négatifs:
- Pas de toolkit graphique à la hauteur
- NSIcom ne fait pas parti des moins cher (Il y a sûrement une raison ?) - Faut-il s'inquiéter de la continuité du produit?
- Aucune documentation ou presque relative à cette JVM? Mauvais signe! Ou alors on prend son chapeau et son fouet et on part à l'aventure (Mauvais idée!)
- La machine virtuelle fournie ne tourne principalement que sur Pocket PC, et Windows CE (pas de Palm, ni Zaurus, ni Symbian)!
Bref il n'y a pas que des bons points! Pour trouver plus d'informations concernant NSIcom, vous pouvez aller sur leur site: http://www.nsicom.com
SuperWaba
Il y a beaucoup de choses à dire ou à redire concernant SuperWaba, mais ce qui est sûr c'est que SuperWaba a ses fan, ainsi qu"une communauté, ce qui est déjà un bon point!
SuperWaba en est maintenant à la version 5, et propose une plateforme qui fonctionne sur Pocket PC, Palm et Symbian! C'est fait déjà pas mal et un vrai bon point! Cependant, il faut savoir que SuperWaba n'est pas une plateforme Java à propre parlé, puisqu'elle ne respecte pas la norme Java à 100%, ajouté à cela leurs développeurs ont décidé de suivre un chemin qui va à l'opposé des standards de Java (cf: J2ME CLDC/CDC, ...)! On peut se dire évidement puisque leur plateforme n'est pas réellement java, mais ça ne fait pas un peu beaucoup pour une plateforme basée sur le langage Java!!
Cependant ces "dérives" par rapport aux spécifications du langage et des différentes configurations est due principalement à l'aspect et aux particularités des ces petites machines que sont les PDA!
En bref on peut dire que SuperWaba n'est pas une plateforme qui se soucie d'être standardisée Java, mais plutôt qui souhaite fournir les outils les mieux adaptés aux PDA(Pocket PC et Palm) et téléphones mobiles de type Symbian.
Qu'en est-il de la pérennité de la plateforme? Je ne mettrais pas toute mes billes sur cette plateforme, puisque les personnes qui s'occupent du développement de la JVM ont dû se tourner vers un modèle semi-commercial pour des raisons financières. Ce point me laisse quelque peu sceptique: dans ces cas là, c'est une chance sur deux. Surtout quand on sait que la plateforme (malgré ses qualités) n'a jamais réellement percé !
Cependant SuperWaba a plusieurs cordes à son arc, puisqu'il existe tout un tas de projets gravitant autour de ce langage:
- Un compilateur natif pour Palm: Jump qui permet d'obtenir des programmes natifs à partir de programmes SuperWaba (Se pose ici, le débat du compilé contre non compilé...)
- Des plugins pour développer avec Eclipse
- Des IDE divers et variés
- Un outils utilisé pour développer avec SuperWaba qui est Ant
Là encore pour terminer sur SuperWaba, et tout casser pour ceux qui avaient des espoirs... (Désolé), je trouve que là encore le toolkit graphique de SuperWaba casse tout! Et encore une fois on se dit: " Non! je ne peux pas proposer une interface comme ça à mes client!".
Pour en savoir plus sur SuperWaba, il suffit d'aller sur: http://www.superwaba.com.br

J9 (Ive) de IBM
Rien que le nom diront certains, donne de quoi se réjouir, je n'irais pas jusqu'à là, mais ça laisse présager de bonne choses, et en effet, il n'y a pas de quoi être déçu. Pour faire court puisque la JVM d'IBM sera le sujet d'un certain nombre de prochains articles, J9 propose tout ce qu'on peut attendre d'une machine Virtuelle pour PDA ou presque, j'ai bien dit presque:
- Une JVM compatible sur plusieurs plateformes (Palm, Pocket PC, Zaurus). Cependant, elle ne fonctionne pas sur Symbian. De plus sur palm elle n'est portée qu'en partie, puisque seul le profil CLDC, autrement MIDP 1.0/2.0, est fourni. Les autres plattes-formes Zaurus et Pocket PC se voient dotées également du profil CDC. - La JVM est payante mais le coût est minime puisqu'il faut dépenser 6€ pour se la procurer! Sur la plateforme Palm qui je le rappelle n'est équipée que le J2ME/CLDC, la JVM est gratuite pour un certain nombre de PDA (dont les Tungsten TC/TT3/TT5, et certains Zire)
- Certaines JSR sont implémentées en tant qu'extension: PIM / les Web Services.
- Le toolkit SWT a été porté sur J9 pour Pocket PC, ce qui permet d'utiliser toute la puissance de SWT sur un PDA!
- Il est possible de se connecter à une base de donnée sans réel problème. Je pense à Apache Derby ou plus particulièrement à HSQLDB.
- De plus si vous utilisé WSDD (Qui n'est pas gratuit entre nous) pour développer des applications, vous aurez accès à bien des fonctionnalités, telles que les optimisations d'applications Java au format JXE(Format d'exécution optimisé relatif à J9), la possibilité d'accéder à tous les outils professionnels d'IBM liés à J9.
- Cependant là encore tout n'est pas rose, WSDD coûte cher, et développé sans n'est pas une mince affaire si on ne s'y connait pas un petit peu.
Bref, il y a beaucoup à dire sur la JVM d'IBM. Une partie des articles de mon blog en fera allusion. Pour ne pas trouver d'informations complémentaire, il faut aller sur le site d'IBM: http://www-306.ibm.com/software/wireless/wsdd/
Conclusion
Mon argumentaire part évidemment d'un avis déjà fait sur la question, puisque j'utilise la JVM d'IBM, mais c'est justement des explications que recherchent les personnes qui souhaitent à s'initier au Java sur PDA. Cette initiation assez est pénible à cause du manque d'informations à ce sujet, et cet article tente de faire ressortir une impression globale concernant les plateformes actuelles, en expliquant leur principaux points forts et points faibles!