Quelle solution de développement choisir pour le Palm ?

Cet article a été publié dans le numéro 1 (septembre 1999) du magazine Team Palmtops.
Il est reproduit avec l'aimable autorisation de Posse Press.

 

Sa grande ouverture, sans conteste l'un des points forts du Palm, a suscité l'intérêt d'une communauté de développeurs nombreuse (plus de 10 000 !) et active, débouchant sur une myriade d'applications.

Initialement limitée aux outils officiellement promus par le constructeur, la gamme de solutions de développement s'est vite étoffée et s'enrichit régulièrement. Cet article vous propose un tour d'horizon des outils existants, en abordant les principaux produits généralistes actuellement disponibles sur le marché.

C et C++

A tout seigneur, tout honneur : le C s'avère le langage de développement privilégié et le point de passage obligé pour disposer d'un contrôle intégral de la machine (abstraction faite de l'assembleur !). Il est donc naturel de s'intéresser en premier lieu aux solutions qui l'utilisent : CodeWarrior et GCC. Le premier, préconisé par 3Com, fait figure de référence. Le second, dont la mise au point a été initiée alors que CodeWarrior n'existait encore qu'en environnement Mac, constitue une alternative séduisante (car gratuite), dont l'ossature est dérivée des produits élaborés par la Free Software Fundation dans le cadre de son fameux projet GNU.

CodeWarrior

Ce logiciel commercial est un excellent produit. Toutefois, il déroutera peut-être les habitués de Windows par un "look and feel" qui ne dément nullement sa filiation : on sent bien qu'il s'agit de l'adaptation à Windows d'un logiciel conçu pour le Mac. Par ailleurs, son prix un peu élevé le met hors de portée du développeur amateur.

Copie d'écran CodeWarrior

L'environnement riche et intégré de CodeWarrior...
Cliquer sur l'imagette pour l'agrandir (100 Ko).

GCC

L'alternative "Free Software" que représente GCC souffre d'un côté "bidouille" assez prononcé. Les outils sont du type "ligne de commande", l'environnement n'est pas intégré, certaines limitations nécessitent des manœuvres acrobatiques et la convivialité de l'ensemble laisse à désirer. Cependant, quelques outils complémentaires bien choisis et un peu d'habitude conduisent à un confort d'utilisation tout-à-fait satisfaisant.

Copie d'écran CodeWarrior

GCC, rustique mais puissant et surtout... gratuit !
Cliquer sur l'imagette pour l'agrandir (58 Ko).

Les autres solutions

Face à ces deux géants, PocketC joue le rôle d'outsider en visant une cible radicalement différente, puisqu'il s'agit ici de développer directement sur le Palm ! Bien évidemment, un certain nombre de restrictions en découlent : le C proposé est simplifié, l'intégration de PalmOS s'avère relativement limitée et la compilation débouche sur un p-code (pseudo langage machine) nécessitant un run-time pour être exécuté. La bibliothèque de fonctions de PocketC peut être complétée en utilisant CodeWarrior ou GCC et il existe désormais un environnement PocketC fonctionnant sous Windows.

Copie d'écran CodeWarrior

Le classique Hello World directement sur un Palm, grâce à PocketC.

C ou C++ ?

S'il est possible de développer en C++ pour le Palm, il faut savoir que PalmOS n'a pas été conçu dans ce sens. L'approche objet ne se révèle pas aisée lorsqu'il s'agit d'interagir avec le système d'exploitation. Des solutions apparaissent néanmoins, telles que Teenee, proposé par la société Class Action, qui réalise ses logiciels grâce à cet outil de développement.

En résumé

Le développeur professionnel choisira avec CodeWarrior un outil complet, sûr et pérenne, tandis que l'amateur averti privilégiera l'aspect économique, sans pour autant compromettre l'efficacité, en s'orientant vers GCC. PocketC satisfera quant à lui ceux qui cherchent un outil de développement embarqué, que ce soit pour mettre au point de petites applications ou pour tester une idée dans les transports en commun !

Produit CodeWarrior GCC PocketC
Origine Metrowerks Dérivé des outils GNU Orbworks
Plateforme

MacOS

Windows

Windows

Unix/Linux

PalmOS

Windows (Desktop Edition)

Format d'application Exécutable natif Exécutable natif P-code + run-time (37 Ko)
Points forts

Plateforme de développement officielle.

Exemples du SDK directement utilisables.

Environnement intégré convivial.

Support technique.

Puissant, complet et... gratuit !

Programmation directement sur le Palm.

Possibilité de travailler sur un PC (Desktop Edition)

Points faibles Version Windows : look and feel terriblement Mac... Un côté "bidouille" assez prononcé. Faible intégration de PalmOS.
Prix $369 (environ 2400 F). Gratuit. $18,50 (environ 120 F).
Usage

Professionnel.

Toutes applications.

Amateur averti.

Toutes applications.

Développeur itinérant (!).

Applications simples.

Solutions RAD

Grâce à un environnement simplifié et visuel, plus faciles à appréhender que les outils classiques, les solutions "RAD" (Rapid Application Development) ont séduit bon nombre de développeurs, car elles répondent efficacement aux besoins les plus courants.

Satellite Forms, édité par Puma Technology, s'avère certainement le plus abouti des produits RAD pour Palm. Son principal point fort est de bien prendre en compte (surtout avec la version "entreprise"), la nécessité de maintenir une continuité des données entre le terminal itinérant et la base de données de l'entreprise. A cet égard, Satellite Forms incorpore des solutions sophistiquées de synchronisation avec Access, Oracle et Lotus Notes. De plus, le produit est extensible par composants, sur le modèle de Visual Basic avec les contrôles ActiveX. L'environnement génère un "p-code" qui nécessite un run-time.

Dans la gamme des produits à coût réduit, CASL (prononcer "castle" à l'anglaise) se révèle original et complet. La même application peut indifféremment fonctionner sous PalmOS, WindowsCE et Windows. A partir d'un source écrit dans un langage rappelant Pascal ou Basic, la version de base génère du p-code (run-time : 40 Ko). La version "pro" est capable de produire du source C directement compilable par l'outil ad hoc (GCC ou CodeWarrior). La bibliothèque de fonctions intégrée, plutôt riche, peut être étendue par des bibliothèques complémentaires développées en C.

Même s'il entre un peu tardivement dans l'arêne, PalmFactory est un nouveau venu, disposant de toutes les chances de tirer son épingle du jeu. Il s'agit en effet d'un environnement de développement visuel très simple d'utilisation. Il se trouve encore dans les phases initiales de son développement mais ses caractéristiques en font d'ores et déjà un outil prometteur pour les applications légères " formulaires + données ". A suivre…

Ici encore, chacun pourra trouver un outil adapté. Le professionnel retiendra Satellite Forms pour le prototypage rapide ou sa capacité à s'intégrer dans un existant et à prolonger le système d'information de l'entreprise. L'amateur trouvera en CASL une solution intéressante pour les développements ne nécessitant pas de se frotter à la complexité parfois épineuse du C. Enfin, nous resterons attentifs à l'évolution de PalmFactory.

Produit Satelite Forms CASL PalmFactory
Origine Puma Technology CASL Soft Alcita
Plateforme

Windows

Windows

Windows

Format d'application P-code + run-time

P-code + run-time (40 Ko), avec la version de base.

Exécutable natif, avec la version "pro".

 

Points forts

Continuité des données du Palm au serveur d'entreprise.

Extensibilité par composants.

Support technique.

Multi-cibles (PalmOS, WindowsCE, Windows).

Riche.

Peu coûteux.

Programmation visuelle.

Très prometteur.

Points faibles

Prix très élevé.

Run-time payant (version entreprise).

Langage propriétaire.

Langage propriétaire. Encore en version alpha.
Prix

$795 (environ 5200 F).

$995 (environ 6500 F) pour la version entreprise.

$64,95 (environ 430 F).

Supplément de $40 (environ 260 F) pour la version "pro".

Inconnu.
Usage

Développement d'applications professionnelles.

Prototypage.

Applications simples à moyennement complexes.

Applications simples à moyennement complexes.

 

Et Java ?

"Write once, run anywhere" (écrit une fois, tourne n'importe où), clame Sun, promoteur et principal artisan de Java. Pourtant, jusqu'au début de l'été, l'offre Java sur Palm était plutôt limitée avec deux produits s'écartant assez notablement de la "norme Java" officielle.

Cependant, lors de la dernière édition de JavaONE fin juin, Sun et 3Com ont présenté KJavaVM, une machine une machine virtuelle Java allégée fonctionnant sur Palm. Cette version préliminaire, en diffusion restreinte, est susceptible d'évoluer dans les mois qui viennent, mais ses caractéristiques allècheront les amateurs de Java, notamment le multi-threading (la possibilité d'exécuter simultanément plusieurs tâches au sein d'une même application).

Copie d'écran CodeWarrior

KJavaVM : le Palm peut également être programmé en Java !

Langages alternatifs

L'offre en matière de solutions de développement est loin de se restreindre aux exemples mentionnés précédemment. Que vous soyiez fanatique de l'assembleur, inconditionnel de Forth, passionné par Smalltalk ou même nostalgique du bon vieux Tiny Basic de 1977, vous trouverez votre bonheur pour programmer le Palm.

Copie d'écran CodeWarrior

Quartus Forth est l'un des langages alternatifs disponibles sur le Palm.

Quelques adresses utiles (mis à jour le 11 juin 2000)

Produit Site web
ASDK http://www.massena.com/darrin/pilot/asdk/asdknews.htm
CASL http://www.caslsoft.com/
cBasPad http://www.hotpaw.com/rhn/hotpaw/
CodeWarrior http://www.palmos.com/dev/tech/tools/cw/
GCC http://www.palmos.com/dev/tech/tools/gcc/
Jump http://hewgill.com/pilot/jump/
PalmFactory http://www.pdatoolbox.com/
PocketC http://www.orbworks.com/
Pocket Smalltalk http://www.pocketsmalltalk.com/
Quartus Forth http://www.quartus.net/products/forth/
Satellite Forms

http://www.pumatech.com/Satellite_Forms_Standard.html
http://www.pumatech.com/Satellite_Forms_Enterprise.html

Sun KVM http://java.sun.com/products/cldc/
TeeNee

http://www.classactionpl.com/Teenee/index.htm

Waba http://www.wabasoft.com/

Conclusion

Compte tenu de la large palette de solutions disponibles, il est peu probable que vous ne trouviez pas chaussure à votre pied :

Dans le cadre de la rubrique " Programmation ", nous nous appuierons principalement sur l'environnement GCC pour Windows, accessible au plus grand nombre. Le mois prochain, nous aborderons l'installation et la configuration de cet environnement.

Denis Faivre - palmprog@ablivio.com.

Copyright © 1999-2000 - Denis Faivre et Posse Press.
Tous droits réservés.