Étiquette : java FX

Réponse à « Faut-il encore adopter Java pour un client lourd ? » sur developpez.net

Dans l’article suivant « Faut-il encore adopter Java pour un client lourd ? » L’auteur semble ne serait ce que par sa question à insinuer que Java n’est plus fait pour créer des applications lourdes à cause sont API pour d’interface graphique vieillissante.

Pour ma part, ayant des clients dans des milieux complètement divers et développant à 80% en Java, je ne peux être d’accord.

Pour faciliter la vie des utilisateurs, je suis régulièrement amené à créer des clients lourds (mot mal choisi, car les applications sont légères au sens des fonctionnalités) en Java Swing et maintenant en Java FX.

Le cas des tablettes et smartphones

De plus l’utilisation des smartphone et tablette si elle c’est généralisé, ne remplace nullement un PC avec sont grand écran (comparer la taille d’affichage d’un écran 22 pouces avec un petit de 6,7,10,12 pouces) sa souris, son espace de stockage sa puissance et son extensibilité …
De ce fait en entreprise l’usage d’un ordinateur est toujours d’actualité et irremplaçable (les petits périphériques, sont bien petits 😉 et les développements pour ces tablettes dans leur intégration dans l’entreprise est minimes.

Une des raisons de ce manque de développement pour les tablettes (hormis les nouveaux services au public) est due à la difficulté de développement pour ces outils ainsi qu’au blocage des éditeurs à qui appartiennent ces systèmes (Apple, Google) :

  • il vous vaut un compte chez eux. Certes pas si onéreux (envieront 150 €), mais à renouveler régulièrement, en anglais et le paiement bien s’il s’adresse à un Français, est facturé à l’étrange dans un pays ou les impôts sont minime (Ca n’aide pas notre économie)
  • Passer par une phase de validation chez eux. Temps à rajouter au développement.
  • Des règles commerciales à accepter (pas le droit de …, prix), et oui vous n’êtes plus le maitre des fonctionnalités.
  • Avoir le bon matériel (un Mac pour Apple). Grosso modo vous payez une grosse licence pour développer …
  • Et par expérience, le développement est pénible. Vous compilez sur un PC/Mac, puis on lance sur un émulateur, ce qui génère des temps d’attentes, d’énervements …

Le cas des ordinateurs (Windows, Linux, Mac)

Les PC (Windows, Linux, Mac …) sont la cible préférée de Java.

Pour les services Web, Java EE est tout désigné. Son problème est qu’il utilise beaucoup de ressources à cause des frameworks. Pour info si vous voulez faire des micros services, je vous conseille de regarder les Servlets purs s(pas besoin d’EJB)

Pour les clients lourds, ce que l’on peut appeler des « Applications » il existe 3 solutions pour faire une interface graphique :

  • AWT : ville API pour créer des interfaces, n’est pratiquement plus utilisé de nos jours. Il faut remonter à Visual Age for Java pour trouver un AGL permettant de créer des interfaces en WYSIGWIG.
  • Swing : API très en vogue dans les années 2002-2012 proposant une multitude de composants. Des outils visuels WYSIGWIG existent pour générer des interfaces graphiques à la main.
  • Java FX : la dernière API d’interface graphique qu’Oracle à implémenter dans Java 7, mais qui prend sont envole dans Java 8. Oracle fournit en standard un outil Visuel WYSIGWIG « Scene builder » (qui s’intègre dans Eclipse) pour les interfaces graphiques.
    Sont adoptions n’est pas si grande dans l’industrie. Car récente, nécessite Java 8 et les développeurs Java FX ne sont pas si nombreux.

Actuellement l’industrie préfère tous misé sur des services Web, car il maitrise mieux l’intégration (une seule machine serveur à gérer, contre plusieurs pour les clients lourds).

Mais dans le cas ou il faut une application à part entière Java FX est très bonne réponse, sinon Swing l’est aussi à défaut.
Java FX permet de créer des applications « client lourdes » complètes et portables (Mac, Windows, Linux) en utilisant le système d’exploitation qui vous plaît !

En conclusion

Chaque cible (PC, tablette) à ses outils bien a lui.

Faire une analogie de Java avec les tablettes est mal choisie, car ce n’est pas sa cible première (même si des solutions existent « Robot VM » pour convertit du code Java FX pour tablettes ) .

Mais par expérience Java FX permet de créer des applications « client lourd » complètes et portables (Mac, Windows, Linux) sans se soucier des spécificités de chaque système.