IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

L'Etat de Java : où en est la technologie en 2014 ?
Deuxième partie de l'entretien avec le CTO et les experts de DigitasLBi

Le , par Gordon Fowler

100PARTAGES

2  2 
L'État de Java : où en est la technologie en 2014 ?
Entretien croisé avec le CTO France, le responsable du pôle JAVA et un expert de DigitasLBi

NB : cet entretien est en deux parties

S'il y a une technologie de développement qui alimente les chroniques des gazettes (IT et même grand public), c'est bien Java.

Sécurité critiquée ou louée, rachat par Oracle, avantages et faiblesses de la JVM, procès Android, nouveaux frameworks, orientations prises… les sujets ne manquent pas.

À tel point qu'il nous a paru bon de prendre un peu de recul pour dresser un « État de Java », sur le modèle de l'« État de l'Union » en politique, loin du flux continu de news et de « trolls » plus ou moins argumentés qui, à la longue, aveugle.

Nous avons envisagé plusieurs options. Faire cet « État » avec Oracle, par exemple. Mais l'entreprise de Larry Ellison étant partie prenante sur toutes les questions sensibles (GlassFish, Android, mises à jour, etc.), nous avons cherché une autre option. Avec des SSII (ESN) ? L’idée nous paraissait bonne. Jusqu’à ce que nous rencontrions des développeurs de DigitasLBi.

Pourquoi ? D’abord, parce que DigitasLBi – un réseau d'agences de « digitalisation & d'innovation technologique » (6.000 experts dont 300 en France) qui gère des projets globaux pour des marques comme Nissan, eBay, American Express ou La Poste - est totalement indépendant des éditeurs (voir aussi : sa page sur Developpez.com)

Ensuite, parce que cette agence d’un nouveau genre se place à la croisée d’une multitude de chemins (beaucoup plus que les ESN). DigitasLBi fait aussi bien de la communication numérique, du design d’UI que du développement. Et dans le développement pur, l’agence touche aussi bien au web (HTML, CSS, JS) qu’au .NET ou, donc, à Java (sans oublier les bases de données). Simple exemple, DigitasLBi a pris en charge toute la communication numérique de Nissan (site web, applis mobiles, etc.)… mais va jusqu’à concevoir tout l'embarqué de ses véhicules.

Enfin - et surtout - parce que son pôle Java/JEE est un nid d'expertises. Cette équipe d’environ 40 personnes est chapeautée depuis maintenant cinq ans par Romaric Le Bever, doté d'un riche background (e-commerce, ingénieur d’études, chef de projets techniques, etc.) et dont le bras droit est un passionné diplômé de l'Ecole des Mines de Nantes. Les deux, ainsi que le CTO – Arnaud Defrenne – se sont révélés être loin de toute querelle de chapelles malgré plus d'une dizaines d'années de carrière dédiée à leur technologie de prédilection.

Dans la première partie de cet entretien nous avons abordé avec eux la popularité du langage, sa sécurité, Java 7 et Java 8, et le virage vers l’embarqué. N'hésitez pas à nous faire part de vos propres points de vue d’experts et à interagir avec eux (nous savons de source sûre qu'ils gardent un œil sur Developpez.com). La deuxième partie est ici

Developpez.com : Quatre années après son rachat par Oracle, comment se porte Java aujourd’hui ? Vous semble-t-il toujours aussi populaire en France ?

DigitasLBi : Je vous ferai une réponse influencée par ma perception de l’utilisation des technologies Java dans l’univers du marketing numérique. Cette mise en garde effectuée, il me semble que le Java se porte comme un charme. Nous assistons même à une recrudescence des projets web en Java.

Une certaine image de sécurité, fiabilité et de solidité le rend populaire auprès des entreprises industrielles et aussi banques et assurances. Enfin à l’heure où les appareils connectés mobiles se multiplient, où la diversité des systèmes d’exploitation est de mise, finalement Java est un langage de développement multi-device, multi-OS, ce qui est très précieux. Android y est aussi pour quelque chose.

Developpez.com : Certains accusent Java d’être lourd, lent et verbeux. Côté technique, comment voyez-vous le travail d’Oracle et de la communauté sur l’amélioration du langage avec l’arrivée de Java 7, et à l’aube de Java 8 ?

DigitasLBi : Java a été à l’origine conçu comme un meilleur C++ dans les années 1990, incorporant des concepts de SmallTalk, Objective-C et Ada. À cette époque, Internet était balbutiant et la plupart des technologies d’aujourd’hui n’existaient pas.

Java 7 est la reconnaissance qu’un langage unique n’est pas forcément adapté à toutes les situations, et s’est ouvert à des langages dérivés de la JVM avec l’instruction invokedynamic (qui est la 1ère nouvelle instruction JVM depuis Java 1.0 !). Oracle ne reste pas en plan, s’inspirant du meilleur des autres langages pour rendre Java plus productif — je parle ici du Project Coin incorporé à Java 7, et des lambda attendues avec impatience avec Java 8.

Bien évidemment, toute modification substantielle de Java prend du temps (et parfois beaucoup !). Mais je pense que nous avons un équilibre entre évolution et stabilité du langage, ce qui est très important dans le monde de l’entreprise.

Enfin, oui, Java est verbeux, particulièrement face à des langages comme Groovy ou Ruby. Nous supportons ici l’héritage des années 1990.

Par contre, je ne peux pas laisser dire que Java est lent ! Ce qui est lent, ce sont les algorithmes pas toujours très optimisés pondus par certains développeurs (tous langages confondus). Ce qui est lent, c’est la masse de données à traiter, en augmentation constante. Ce qui est lent, ce sont les frameworks et solutions toujours plus complexes, libérant le développeur de considérations bas niveau en cachant la complexité (gain de productivité) mais également le coût associé.

Java en lui-même est grossièrement aussi rapide que le C (ceci n’est pas un appel à troll…). Je teste régulièrement mes applications personnelles sur un vieux Pentium M (en fin de vie) de 2005 ainsi que sur un Raspberry Pi, ce qui me permet de détecter d’éventuel code non optimal.

Developpez.com : Au passage, si l’on ne devait retenir que trois nouveautés de Java 7, quelles seraient-elles ?

DigitasLBi : Je retiendrais principalement les améliorations apportées par Project Coin qui facilitent la vie quotidienne du développeur.

Java 7 a également connu depuis sa sortie en 2011 une évolution « transparente » sur la JVM (début de l’intégration Hotspot et JRockit, notamment les aspects monitoring). C’est à mon sens important pour optimiser au maximum les performances d’applications toujours plus riches.

Developpez.com : Que peut-on espérer pour Java 8 ?

DigitasLBi : Personnellement j'attends de Java 8 de substantielles améliorations tant au niveau de la JVM (continuation de la fusion de HotSpot et JRockit, même si G1 a été repoussé à Java 9) qu’au niveau de la productivité développeur (les lambda, mais également javac multi-threadé).

Malheureusement, pour certains de nos projets, nous ne pourrons passer à Java 8 que lorsque les éditeurs le supporteront officiellement !

Developpez.com : Java a été beaucoup critiqué sur ses failles de sécurité. Vous parait-il plus sûr aujourd’hui, voire très sûr, ou pensez-vous - comme le disent certains - que régler ce problème prendra encore quelques années ?

DigitasLBi : Le sujet de la sécurité est à prendre très au sérieux. La recrudescence des attaques et des piratages est une réalité. D’autre part avec le développement des applications « cloud » nous assistons à une explosions du stockage d’informations personnelles sur les réseaux. L’enjeu est donc doublement important.

Par Java on peut entendre deux choses :

- l’utilisation de Java comme langage Backend ;
- les applets Java compilées et exécutées côté client.

Les technologies utilisées en particulier en backend ont un rôle important dans la sécurisation des applications, quand on compare les différentes options, Java comme framework backend est plutôt bien placé. Néanmoins au-delà de cela, choisir un environnement ne suffit pas. Pour garantir à nos clients des applications sûres, nos propositions combinent des bons choix d’architecture avec exigences sur les processus, la documentation, la fréquence des mises à jours logiciels, et aussi certains services de sécurité qui vont simuler régulièrement des attaques pour éprouver les solutions.

Sécuriser les serveurs c’est une choses, mais côté navigateur c’est un peu plus compliqué.

Developpez.com : Sur ce sujet de la sécurité, Mozilla a désactivé tous les plug-ins par défaut de Firefox 26 (sauf Flash). Les applets Java sont au centre de cette décision. Vous parait-elle bonne ou mauvaise ?

DigitasLBi : À partir du moment où des codes dangereux se diffusent comme des virus à l’échelle de la planète c’est une décision défensive mais sage.

Nous n’utilisons pas cette technique qui tend à disparaître avec l’enrichissement du JavaScript coté client. Le véritable enjeu maintenant c’est garantir l’absence de faille en JavaScript.

Developpez.com : Ces derniers temps, Oracle met beaucoup en avant l’embarqué (Java SE Embedded, Java ME, Java Card sur les cartes à puces, Java TV pour les téléviseurs connectés et les Box, etc.) comment analysez-vous ce mouvement ?

DigitasLBi : Oui c’est le grand retour d’une des principales forces de Java : un langage qui s’exécute sur n’importe quel assembleur grâce à la machine virtuelle Java.

L’explosion du DIGITAL c’est avant tout un très grand cycle d’innovation pour les périphériques. Téléphones, baladeurs, télé numériques furent les précurseurs mais on assiste maintenant à l’exploration systématique du potentiel de connecter tous les objets de la vie de tous les jours… Une balance pour se peser (et suivre son poids avec une appli), une montre pour se localiser et courir avec ses amis, un collier qui localise son animal familier etc…

Cette formidable innovation sur le terrain des périphériques s’accompagne d’une diversité de systèmes d’exploitation très difficile à gérer !
Dans ce monde de diversité il y a une recherche pour des solutions multi-device.

Java apparaît comme une réponse pour les applications. HTML/JS une autre réponse pour les interfaces. Android est un système qu’on voit se répandre dans de nombreux appareils. D’autres systèmes open-source sont aussi très intéressants.

Deuxième partie de l'entretien

Publications techniques et offres d’emplois de DigitasLBi sur Developpez.com
Vous avez lu gratuitement 2 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de la.lune
Membre chevronné https://www.developpez.com
Le 19/02/2014 à 19:25
Citation Envoyé par Peck777 Voir le message

Si javaFX me fait des camembert 3D et des transitions de TabPanel en slide à la jQuery, euuhhhh j'en pas besoin, à moins que mon client m'en fasse expressément la demande mais j'en doute...
Je crois que le fait de penser que c'est principalement ça qui pousserait un développeur à migrer de Swing ou Swt vers JavaFX serait une erreur, ce n'est pas juste une question d'animation, d'effets et de 3D.
JavaFX est une api construit à partir de zéro et une architecture bien pensée, et j'aurais aimé souligner qu'en JavaFX on retrouve:
  • Une très bonne api de gestion des beans et simple à utiliser, qui permet la gestion facile de l'aspect dynamique des interfaces et la mise à jour des données avec le concept du binding, Tout contrôle qui s'affiche devant vous, c'est que derrière il y a un ensemble de propriétés(beans) qui définissent son comportement, chaque propriété peut être bindé avec un autre pour synchroniser ou non les modifications, comme il peut être la cible d'un événement et on peut écouter son changement de façon synchrone ou asynchrone selon notre choix. Sans pour autant nier la faisabilité de cela en Awt/Swing et Java2D, ou SWT mais je parle d'une architecture bien pensée à l'avance et simple à manier. Et pourquoi réinventer difficilement la roue alors qu'il y a ce qui est déjà servi et bien conçu.
  • JavaFX est la meilleur API Java en matière de simplification à la conception d'applications suivant le pattern MVC, certains voient que le support de MVC en Swing pour manque de cohérence dans certains cas.
  • Comment faites-vous pour personnaliser le Look&Feel de vos interfaces en SWT et en Swing? et avec quel coût? et pour quel résultat? Alors qu'en JavaFX vous programmer vos interfaces en toute tranquillité et après avec les feuilles de styles CSS vous faites tout ce que vous voulez en matière de style.
  • Le langage FXML que vous pouvez adopter si vous voulez, et l'outils Scene Builder qui permet de concevoir rapidement l'UI en FXML et personnaliser après avec les CSS. Et tout est conçu à l'avance pour aller avec le pattern MVC.
  • Alors les fan de gestion de contenu multimédia, ils vont trouvent ce qu'ils veulent, de même que les développeur de Jeux 3D, mais surtout le fait que JavaFX soit écrit à partir de zéro, de la base profonde, ça lui permet d'exploiter des nouvelles technologies graphiques des puissantes cartes graphiques modernes qui embarquent le GPU avec, ainsi ça offre une nouvelle expérience.
  • Interopérabilité avec Swing et SWT, après la sortie de JavaFX 2.0, l'équipe JavaFX avait développé JFXPanel et FXCanvas pour permettre d'intégration de JavaFX respectivement dans Swing et SWT, ceci afin de permettre l’extension des interfaces existantes ou cas où on veut ajouter, des composants avec des effets ou des transitions à des interfaces existantes vu que cela n'était pas possible, après maintenant ils ont développé SwingNode pour intégrer Swing dans une application JavaFX existence, et récemment j'ai vu un article quelqu'un qui expliquait comment intégrer Swing,SWT,et JavaFX ensemble et les forcer à s’exécuter dans le thread JavaFX.
  • .......

Personne ne nie que un API comme Swing est très riche et il y a quelques composants en Swing qui ne sont pas encore développés en JavaFX, mais tout reste que JavaFX possède aussi des contrôles qui n'existent pas en Swing comme les Chart par défaut, ou recensement plusieurs contrôles, il y a même le contrôle qui ressemble carrément à une feuille de calcul comme Excel et beaucoup d'autres. Et l'interopérabilité permet de combler tout vide quel qu'il soit.

Nous sommes devant HTML5 et on ne peut rester les mains croisés si un besoin de performance ou autre se pressentent, et qu'on se trouve qu'on ne peut pas faire exactement en natif ce que HTML5 fait dans le web, pour la pure et simple raison qu'on n'arriverait pas à réaliser cela avec Swing ou SWT. Bienvenue JavaFX!!

J'ai bien aimé le fait de voir que depuis la sortie de Windows 8, un développeur a pu reproduire le style Moderne UI en JavaFX rien qu'avec les css comme vous voyez dans ces images:




C'est du JavaFX personnalisé avec css en Fait.
1  0 
Avatar de la.lune
Membre chevronné https://www.developpez.com
Le 20/02/2014 à 19:27
Citation Envoyé par dfiad77pro Voir le message


Existe-il un designer comme Microsoft blend en .net qui gère les styles , les storyboards ( GPU accéléré) etc...
sans pondre du code et en permettant une prévisualisation des animations sans compilation.
Pour ce qui est de la génération de styles css et de code pour les animations on utilise FX Experience Tools et on visualise ce qui ça donner sans être obliger de pondre du code.

De même, avec certaines limite, pour ce qui est de la modification de l'apparence et l'ajout des effets(reflexion, trensparence, ombre..) et la prévisualisation des styles en Css on utilise JavaFX Scene Builder, mais Scene Builder ne génère pas de code css à votre place mais il applique ces modifications sur le fxml, mais il permet aussi avec autocompletion(v2.0) de choisir vous même les styles css que vous voulez appliquez, ou intégrer un fichier existant et visualiser le comportement sans être obligé de faire de la compilation.

Citation Envoyé par dfiad77pro Voir le message

En Xaml on a la notion de template (en plus des styles) pour changer notamment la structure d'un contrôle simplement
( exemple remplacer une progressBar par un thermométre dont la température progresse de manière animée)
Le css +fxml permet-t-il de gérer simplement ça ?
Alors je vais essayer de vous expliquer une chose très importante existante en JavaFX et l'approche qui permet de réaliser facilement ce que vous dites. D'abord en JavaFX on a la notion de Skin qui est une classe qui communique avec un Behaveor et le Control, pour former le controle en sa totalité. Ainsi, il faut comprendre qu'en JavaFX chaque contrôle obéit au modèle MVC : le M:Model est représenté par le Control en soi, la classe qui s'en charge de garder l'état du control en détenant l'ensemble des propriétés du control, les propriétés sont des beans comme j'ai expliqué au premier message, et le V:view : c'est le Skin, la classe qui gère la partie Look&Feel du control, ainsi on sépare la partie look&Feel du Control avec les interaction de l'utilisateur. Et enfin le Behaveor qui n'est autre que le C: controlleur, c'est celle qui encapsule l'ensemble des interactions de l'utilisateur(clique de la souris, taper sur clavier, bouger le molette de la souris....)
Ainsi, l'habillage du control peut facilement être modifié en modifiant la variable skin sans que qu'on modifie ni son comportement ni son état, déjà les css s'applique à la classe SkinBase.

Ainsi, la logique fonctionnel d'un control est totalement séparée à son apparence, alors selon moi je ne vois pas encore le besoin de définir spécialement de Template dans le moment où chaque control tout son habillage est paramétrable et les propriétés(modèle) (sont des beans) qui peuvent êtres modifiés, écouter des événements et toutes les modifications se synchronisent entre tout, et on peut faire du binding partout et faire des animations personnalisé(pas les transitions par défaut) qui vont modifier les propriétés et le control agit en "temps réel". Et les CSS supportent les contrôles personnalisés et on peut créer des StealableProperties afin de permettre de styler les propriétés via CSS.

Alors pour l'exemple que tu as donné d'un progresse bar transformé en en thérmomètre cela est facilement faisable en JavaFX comme j'a dis l’apparence peut facilement changer et la logique fonctionnel du control reste le même et on peut ajouter des animations. Je vais te montrer un exemple d'application où on voit des contrôles par défaut, et vu que que tous les controles sont skinnables, alors dans la démo les controles sont skinné pour donner une apparence voulu mais derrière on a des controles connus et existant dans l'api JavaFX, regarde la vidéo suivante et tu peux retrouver le code source ici


Tout reste qu'avec JavaFX8 la notion de Skin à un peu évolué, bien développé et a subit quelques modifications, (on attend la version finale en Mars), déjà l'API SkinBase était privé c'est récemment qu'il est rendu publique pour permettre de créer des contrôles customisés et le BehavorBase reste encore privé. Mais la nouveauté avec JavaFX8 c'est qu'il est désormais possible de créer toute une classe à part avec nouveau Look&Feel qui implémente l'interface Skin et le spécifier dans le fichier css comme suit:
Code : Sélectionner tout
1
2
3
4
.custom-control {
    -fx-skin: com.javafx.customControl.skin.CustomControlSkin;
}
A noter que les attribuits css de JavaFX ne sont pas forcement ceux de html5.

EDIT: Je n'ai aucune expérience en Xaml mais je me suis basé sur ce que tu as dis et l'exemple que tu as donné
1  0 
Avatar de la.lune
Membre chevronné https://www.developpez.com
Le 22/02/2014 à 2:02
Citation Envoyé par DonQuiche Voir le message
En fait tu te méprends sur les templates dont il parlait.
.......
La grosse différence il me semble c'est que côté WPF le template est défini en XAML (le langage UI) plutôt qu'en C#/VB, tandis qu'en JavaFX une skin est codée en Java plutôt qu'en FXScript. Et du coup c'est plus facile en WPF : on spécifie directement un arbre visuel avec ses animations et tout le reste (plutôt que d'avoir à le rebâtir à la main en Java), et surtout le lien avec les propriétés du contrôle "skinné" est fait très simplement via des déclarations comme <TextBlock Text="{TemplateBinding Content}"/>, là où en Java il faudra souscrire aux abonnements du "skinné" pour détecter les changements de propriétés.
Je m'excuse d'abord du fait qu'on pense comme si je banalise ou je méprend les Template en XAML, car je voulais juste dire qu'au début j'ai pensé à l'objectif visé en spécifiant un exemple à réaliser comme le cas souligner avec le progress bar. Mais après avoir vu aussi à quoi ça ressemble et l'objectif des Template en XAML, ça m'a donné une idée maintenant sur quoi on veut arriver vraiment.

En plus de ça, étant donné que je suis fan de java je n'avais jamais pensé à cherché sur ce truc de Template ou semblable(pourtant ça existe en FXML) dans le moment où le même comportement on peut le réaliser en tout facilité avec Java et css . Et même si en FXML on avait assigné des valeurs figés aux contrôles mais on peut après avec le code Java et les css, faire ce qu'on veut. Et personnellement j'aime le pure java même pour les vues, car ça consomme moins de mémoire et il y a un gain de plus en performance, mais pour des raison de productivité on se retrouve avec FXML.

Mais bon, la question que je vois qui tu poses actuellement c'est une question de facilité et de gain en productivié. Alors, alors le fait de faire du binding en FXML comme vous faites avec les Template en WPF existe bien en JavaFX, pas besoin de souscrire aux abonnements du "skinné comme tu dis. Voici un exemple où je bind le contenu qu'un champs Text avec un Label, dès qu'on tape quelque chose sur le champs text ça s'affiche sur le label, voici le code source du fichier FXML, pas besoin de Java pour binder:
Code : Sélectionner tout
1
2
3
4
5
6
<AnchorPane id="AnchorPane" prefHeight="200" prefWidth="320" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8" fx:controller="app5.fxml1Controller">
    <children>
        <Label fx:id="label" layoutX="39.0" layoutY="34.0" prefHeight="55.0" prefWidth="247.0" text="${champ1.text}" />
        <TextField fx:id="champ1" layoutX="74.8759765625" layoutY="132.5" />
    </children>
</AnchorPane>

Alors j'ai fais un petit vidéo de 5min pour faire un petit exemple et exécuter pour voir ce que ça donne, sans pourtant tout expliquer les cas possibles d'exploitation de cette technique, j'ai montré aussi l’équivalent de ça en Java en simple binding. Alors je ne dis pas que ce que j'ai fais c'est 100% à la WPF vu mon manque de connaissance dessus, mais bon voyez un peu ce que ça donne et faites moi part de vos remarques.



Alors comme vous voyez on est pas obligé d'enregistrer un événement pour écouter le changement et modifier, dans notre cas on a fait qu'on peut spécifier un property par défaut d'un champs existant dans l’arborescente du fichier fxml encours avec l'id, comme le textProperty d'un cahmps text, mais aussi on peut spécifier celle d'un autre fichier FXML gérer même par un autre controlleur, il reste savoir comment adapter le chemin en accédant à une proprieté qu'on peut accéder via un autres controlleur ....
De la même manière qu'on peut aussi créer une propriété à part entière variable membre du contrôleur, ou à l'extérieur dans une autre classe, on peut ajouter des controles et des format de contenu sur les données bindés ou peut animer, mais comme j'ai dis avant le Look&Feel peut se gérer via css, et on peut créer aussi des propriétés styllables, à paramétrer leurs changement sur les css. Alors j’attends vos feed back.

Je tiens à rappeler juste que FXScript est mort à présent on travail avec Java, FXML et CSS, depuis JavaFX 2.0, les choses ont carrément changé, côté architecture, performances et ce n'est pas lourd comme Swing, JavaFX est nativement bien intégré, l'api est en pure java mais l'execution se fait en grande partie en native pure ce n'est pas du baytcode interpreté, déjà ça , ça existait avant au debut de Java, pas les reccents JDK. De plus JavaFX exploite de l’accélération graphique matérielle car comme j'ai dis avant qu'il est réécris depuis la base, pas une simple couche sur le JDK, déjà c'est depuis JDK 8 que le jdk tout court commencera a pourvoir lancer des applications JavaFX, mais elles s'exécutent dans leurs propres threads, mais pas le thread Main d'une application java simple.
1  0 
Avatar de Mickael_Istria
Membre expert https://www.developpez.com
Le 19/02/2014 à 11:58
Cet article (qui titre a propos des IDE plutot que du runtime mais qui ne parle pas que de ca) revient pas mal sur le debat Spring vs JEE. http://martijndashorst.com/blog/2014...ive-first-day/

La morale, c'est que maintenant, il est parfois (souvent?) plus complique d'integrer Spring dans un Tomcat et d'ajouter plein de libs en fonction des besoins, que d'utiliser un serveur JEE qui fournit deja tout dans un bon etat de fonctionnement.
0  0 
Avatar de Saverok
Expert éminent https://www.developpez.com
Le 19/02/2014 à 15:41
Je suis un peu déçu par la seconde partie car elle ne contient pas grand chose comme info (plus des opinions que des remises à plat d'informations).
La première partie m'a nettement plus plu.


Developpez.com : Un article de Développez.com titrait récemment : « Un développeur PHP n'est pas moins compétent qu'un développeur Java ou C++ ». @Cédrik, je sais qu’il vous a fait sourire. Pourquoi ?

DigitasLBi : Nous ne faisons aucune différence en effet et cherchons avant tout des talents pour poursuivre notre développement, dans chaque langage. Mais les développeurs ont des égos et aiment la compétition. Et c’est une bonne chose !
Je rejoins le point de vue de DigitasLBi.
Un bon développeur est avant tout doué en algorithmie et en conception.
Ensuite, l'expérience sur un langage fait le reste (connaissance des librairies et gestion de la mémoire propre à chaque langage).

Chaque langage a ses atouts, tout dépend ce que l'on veut faire.
Si on veut faire du calcul scientifique avec de la virgule flottante à tout va, on ne fait pas de Java.
Si on veut faire web, on ne fait pas de l'ADA.
0  0 
Avatar de dfiad77pro
Membre chevronné https://www.developpez.com
Le 19/02/2014 à 21:13
J'aurais une question à poser sur Java FX.

Existe-il un designer comme Microsoft blend en .net qui gère les styles , les storyboards ( GPU accéléré) etc...
sans pondre du code et en permettant une prévisualisation des animations sans compilation.

En Xaml on a la notion de template (en plus des styles) pour changer notamment la structure d'un contrôle simplement
( exemple remplacer une progressBar par un thermométre dont la température progresse de manière animée)
Le css +fxml permet-t-il de gérer simplement ça ?
0  0 
Avatar de dfiad77pro
Membre chevronné https://www.developpez.com
Le 20/02/2014 à 21:23
très belle réponse , je vais essayer de voir ce que ça donne, j'avais déja essayer java fx , mais au tout début de sa création. D'après ce que tu me montre , ça a évolué, j'ai donc besoin d'en apprendre plus par la pratique pour pouvoir émettre un jugement face à XAML.
0  0 
Avatar de la.lune
Membre chevronné https://www.developpez.com
Le 21/02/2014 à 1:12
Citation Envoyé par dfiad77pro Voir le message
j'avais déja essayer java fx
J'ai vu tu as écris deux fois Java FX en séparant le FX avec le mot Java, alors je tiens juste te rappeler que les deux ne se séparent pas ce n'est pas comme Java EE ou Java SE, car le EE ou le SE sont des abréviations, mais JavaFX c'est un mot à part entière crée pour désigner cette technologie c'est comme si tu dit Swing, SWT, Silverlight, Flex... certes le terme FX veut désigner "Flexible" mais la technologie s'appel JavaFX en un seul mot. Déjà, en dehors de FXML et css, ce n'est pas forcement avec le langage Java qu'on code les applications JavaFX, avec l'arrivé de JavaFX 2.0 tous les langages supportés par le JVM sont supportés aussi notamment Groovy, Scala, Visage ....
0  0 
Avatar de DonQuiche
Expert confirmé https://www.developpez.com
Le 22/02/2014 à 7:13
Citation Envoyé par la.lune  Voir le message
La 2e chose, je m'excuse aussi d'abord du fait qu'on pense comme si je banalise ou je méprend les Template en XAML

Ce n'était pas un reproche, nous avons tous deux une vue partielle de la situation du fait de nos expériences respectives. En fait j'ai trouvé ton premier message intéressant car je n'étais pas certain que JavaFX ait vraiment découplé logique et apparence, j'ai donc été heureux d'apprendre que c'est également le cas de ce framework.

je n'avais jamais pensé à cherché sur ce truc de Template ou semblable(pourtant ça existe en FXML)

Vraiment ? Tu ne parles pas de simples inclusions de fichiers tiers mais bien d'un mécanisme aussi puissant que les skins où l'on déclare l'arbre visuel directement en FXML ?
Un petit exemple, si je veux une liste d'éléments représentés par une icône à côté d'un texte, et une disposition en grille, en XAML ça se fait à peu près aussi simplement que ça (un seul fichier) :

Code quasi-XAML : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
<DataTemplate x:Key="ItemTemplate"> 
   <Grid> 
        <Image Source={Binding ImagePath}> 
        <TextBlock Text={Binding Name}> 
    </Grid> 
 
   <Trigger Property="{TemplateBinding IsSelected}" Value="true"> 
        <Setter Property="Background" Value="Red"/> 
   </Trigger> 
</DataTemplate> 
 
<ListBox Items={Binding AllItems} ItemTemplate={StaticResource ItemTemplate} ItemPanelTemplate={x:Type UniformGrid}/>

Concrètement avec JavaFX peux-tu faire ça entièrement en FXML ?
PS : les bindings sont en général vis-à-vis d'une classe "viewmodel" qui fait l'interface entre l'UI et le modèle de données. Par exemple on associera à une classe "Produit" une classe "ProduitVM" exposant des propriétés nécessaires à l'affichage.
PPS : le véritable code est un peu plus verbeux, un gros travers de XAML.

Alors j'ai fais un petit vidéo de 5min pour faire un petit exemple et exécuter pour voir ce que ça donne

J'ai vu ça et je te remercie. Et je constate avec amusement que WPF et JavaFX ont opté pour la même solution moche consistant à exposer des objets représentant des propriétés UI via des membres "TextProperty" et autres.

Et personnellement j'aime le pure java même pour les vues, car ça consomme moins de mémoire et il y a un gain de plus en performance, mais pour des raison de productivité on se retrouve avec FXML.

FXML est interprété à l'exécution ? A nouveau même solution moche puisque c'est le cas de Xaml en WPF. Heureusement pour Modern UI ils sont passé à une génération de code.

Je tiens à rappeler juste que FXScript est mort à présent on travail avec Java, FXML et CSS, depuis JavaFX 2.0

Erf, tu m'en vois bien déçu : le fait de ne pas avoir à se taper un code XML bien verbeux et moche était pour moi un gros avantage de JavaFX, même si la première mouture de FXScript laissait à désirer.
0  0 
Avatar de dfiad77pro
Membre chevronné https://www.developpez.com
Le 22/02/2014 à 10:59
Merci pour ta vidéo. Tu fais honneur à ta techno en prenant le temps d'expliquer

En effet ça a bien évolué et ça reprends beaucoup de concepts de WINFX (beta de wpf sortie en 2005).

PS : il me semble que le XAML est compilé en un langage intermédiaire en WPF.
0  0