Compte-rendu de l’Adobe Designer Developer Experience

juin 4, 2009

image001J’étais hier après-midi (3 juin 2009) à l’Adobe Designer Developer Experience à Paris, qui était l’occasion de découvrir les nouveautés d’Adobe Flash Platform, au travers des dernières évolutions du framework Flex, du Flash Builder (projet Gumbo) et de la Beta d’Adobe Flash Catalyst.
Voici le compte-rendu de mes notes prises à chaud, un peu télégraphique je l’admets.

Pourquoi Flash Catalyst (FC) ?

Actuellement, sur Flex Builder (FB), les flexeurs codent d’abord puis à la fin s’évertuent à skinner via css leur « belle appli » toute grise. Or ce n’est pas la bonne façon de faire.
Les designers font l’inverse, on skinne + ergonomie et enchainements d’abord, on valide avec les user finaux et après on ajoute l’accès aux données, et c’est comme ça qu’il faut développer une RIA.
FC est juste une passerelle pour récupérer les écrans (par ex. calques PS) produits par les designers (sous forme FXG, le nouveau format déclaratif lisible d’échange entre les outils de design de la CSuite et FC). Après import du FXG, FC permet de mapper une widget standard (bouton, liste, scrollbar etc…) sur un composant purement vectoriel importé de l’outil CS4 (on dit : ce rectangle est en fait un bouton etc…), d’ajouter les navigation/enchainements/transitions puis on transforme tout ça en du code (déclaratif) importable par FB (i.e. un fichier .FXP = nouveau format de projet FC et FB). FC ne fait que du déclaratif/descriptif en MXML, pas de code.
La séparation visuel / logique est améliorée par Flex 4 : MVC est poussé au niveau du composant. FC permet de créer un skin de composant. FB d’y ajouter la logique AS.
Tiens au fait, les démos ont montré le workflow académique de dev d’une RIA : PS pour les calques (avec parfois l’aide d’AI) , puis export FXG dans FC, puis export FXP dans FB.
Quid de l’outil Flash Pro ?
Bref, pour résumer, Catalyst est un outil passerelle « super designer » qui génère du mxml pour FB.

Nouveautés FB4 : 3 maitres mots : ultra productif, data-centric, intégration design/dev

  • package explorer avec des vrais packages sans arborescence pénible
  • skinning halo versus sparks (ns mx: vs. s:) (puisque Flex4)
  • génération auto de la calback sur le click= » » du tag MXML !🙂
  • génération auto des set/getter (enfin !)
  • refactoring (rename/move) : enfin !
  • templates d’en-têtes (copyright etc..)
  • pomme-i ré-indente le code
  • flex thèmes
  • convertir automatiquement un projet web en Air
  • spark recommandé car tire bénéfice des nouvelles fonctionnalités du player 10 mais du coup en dépend
  • droit admin nécessaire pour flash player ?! -> flash player admin guide
  • mxml = purement visuel donc ce qui ne l’ai pas va dans un tag , par ex. : DateFormatter, http service, remote object
  • code private = code enlevé pendant la compilation (par ex. catalyst génère du code private en prévision du roundtrip FB/FC)
  • api de dessin disponible dans un tag Graphics (ala degrafa) (composant léger)
    o évidemment pas fait pour du dessin intensif (dans ce cas, privilégier import Illustrator)

  • Notion d’état (mx:State) :à l’envers : on part de l’élément et on dit dans quel état il est présent
    o + propriété en fonction du state : syntaxe = nom_prop.nom_etat=valeur
    o + élégant, + lisible, – de code, + support de l’IDE (grise/dégrise en sélectionnant l’état dans une combo)

  • layout d’une application a changé : maintenant tag Layout = objet
    o on peut créer son layout : demo de boutons en cercle

  • index.html template utilise swfobject
  • binding double (two-way)
  • rendu textuel = moteur de rendu TextLayoutEngine et TextLayoutFramework (cf. NY Times)
  • Dans le mode design FB, new Flash component ou new Flash container (.swf)
  • Introspection des services : glisser déposer du service introspécté vers datagrid, form, bouton : on drag/drop le service introspecté vers le widget et ça marche direct. Énorme gain de productivité.
  • datapaging généré (coté client et serveur : demo php mais censé marcher aussi avec BlazeDS)
    o au niveau php, reste à coder les requêtes des functions count() et getItems_paged()
    o clic droit enabling Paging -> wizard
    o résultat : charge on demande de la scroll et charge tout en background

  • + data management = maîtrise du commit (i.e. qd on veut)
  • debug conditionnel
  • point d’arrêt au runtime : runtoline() si oublié de mettre un point d’arrêt avant de lancer l’appli
  • gestion du mode déconnecté : seulement avec LCDS pour l’instant avec commit différé
  • bien comprendre que le passage halo -> spark est gros changement, d’où les évènements préparatifs d’Adobe comme celui-ci.
  • blog tontons flexeurs permettra de donner ses idées
  • Au fait, Certification Flex nouveau en France, via formation Baao

Conclusion : FC va permettre aux designers de livrer leurs travaux sous forme exploitable par des développeurs Flex. Car – et je l’ai constaté sur un projet récemment – il y a en fossé entre les designers Flash et les développeurs Flex (qui sont grosso modo des développeurs Java). C’est donc une bonne chose, si le workflow design -> dev est respecté.
Le pb est que dans la vraie vie de projet d’entreprise, ce n’est pas évident de faire démarrer des protos RIA directement en sous-traitance d’une agence Web/design. Tous les protos fait en avance de phase ou en avant-vente retomberont dans le schéma « dev Flex puis skinning ». Pour ce qui est de FB4, j’attends avec impatience cette version, il y a une réelle amélioration (ensemble de petites de choses mais surtout l’accès aux données !)


Le prochain Oracle NetBeans

mai 10, 2009

image  Oracle n’a pas encore officiellement indiqué quel avenir précis il réservait à NetBeans. Bien peu de personnes, hors les aficionados de NetBeans, parient sur sa survie, limitant leur logique à une explication des plus succinctes : “Oracle est un grand supporter d’Eclipse”, “Oracle n’a jamais investi dans NetBeans”, “Oracle a déjà JDeveloper”.

Essayons d’analyser cette situation de manière un peu plus approfondie.

On peut retrouver une position comparable lors du rachat de BEA, qui comportait BEA Workshop dans son portefeuille. Une roadmap avait alors été annoncée pour faire converger BEA Workshop avec les autres outils d’Oracle. Et effectivement il existe aujourd’hui un Oracle Workshop for WebLogic 10g R3 basé sur Eclipse, etqui est progressivement migré dans la nouvelle offre Oracle Enterprise Pack for Eclipse (OEPE 11g).  :

image

Oracle l’avait clairement annoncé : “Oracle will seek to combine the capabilities of BEA’s Workshop development tool into Oracle’s Enterprise Eclipse Pack. Workshop users will be able to continue to use it in its familiar form in the Eclipse Pack. Oracle will continue development of its own JDeveloper tool and will add characteristics of BEA tools to JDeveloper, such as their design time modeling features.

Le socle historique de BEA Workshop avait été abandonné par BEA depuis le passage à la v9.2 (ou Studio 3.0), et les fonctionnalités marquantes telles AppXRay ont été portées sur Eclipse et maintenant diffusés par Oracle dans un modèle free et non open source.

Un autre socle logiciel a disparu sans causer de remous : celui de JBuilder, dont d’ailleurs les premières versions de JDeveloper étaient un fork commercial. Continuant les efforts initiés par Borland, la dernière mouture Embarcadero JBuilder 2008 R2 est basée sur Eclipse.

Le futur du socle JDeveloper est assuré non pas par les développements JEE / Spring, mais par tout ce qui existe à coté dans le portefeuille d’Oracle et qui n’est pas encore suffisamment stabilisé et standardisé par les communautés Eclipse ou JCP : SOA, WS-*, BPEL, Oracle Applications (OFM), BI, SCA… Il y aura donc bien maintenance conjointe par Oracle du socle JDeveloper et d’un jeu de plugins Eclipse (OEPE).

Ceci posé, comment peut se placer NetBeans ? Il suffit de le décomposer en ses diverses parties :

  • un socle : NetBeans RCP Platform, qui est en concurrence et non compatible avec ceux de JDeveloper et d’Eclipse
  • des plugins pour JEE 5, en concurrence avec ceux d’OEPE ou JDeveloper for JEE
  • des plugins pour Glassfish, mais qui existent aussi pour Eclipse
  • des plugins pour Java ME, C/C++, et PHP/Python/ruby/JS, Groovy/grails, qui sont en concurrence avec Eclipse Embedded & Mobile ainsi que les outils accessibles sur le portail Eclipse Language IDE.
  • des plugins pour d’autres technos hors JEE : JavaFX, Profiler, Maven, Hudson, Ajax, services SaaS… qui existent peu ou prou également sur Eclipse, même pour JavaFX
  • des plugins pour des assistants graphiques, comme UML, Visual Web, Visual Mobile ou Swing GUI Builder. Les deux premiers n’ont pas connu de succès auprès de la communauté NetBeans, et ils ont été retirés de la distribution officielle : “In order to focus our efforts on the latest and most popular developer technologies, the UML, SOA and Visual Web modules in NetBeans have been removed from the installer. The modules are available on the Beta Update Center or can be installed by via the Tools > Plugins menu in the IDE” précisent les notes de la release 6.7. Visual Web est en concurrence avec certains plugins open source pour Eclipse du projet Amateras. Swing Gui Builder est en concurrence avec Eclipse Visual Editor, mais VE n’est plus très vivace.

Il ne reste finalement comme différenciateurs que des outils pour les applications RIA ou Mobile : Swing, JavaFX Mobile, Java ME. C’est un domaine où Oracle était notablement absent.

En conclusion, mon pronostic est donc le suivant : maintien de la marque NetBeans pendant 1 ou 2 ans; abandon de la roadmap des plugins NetBeans en concurrence avec ceux de JDeveloper & OEPE; maintien des autres développements de plugins pour sortir une offre Oracle NetBeans qui concentre cette valeur et cette différence. Puis basculement progressif des fonctionnalités dans OEPE et/ou JDeveloper et arrêt des nouveaux développements sur le socle NetBeans, avec un support Oracle pendant quelques années pour les précédents clients utilisateurs de cette offre Oracle NetBeans.


Bob et Gavin sont dans un bateau

mai 8, 2009

…et qui va tomber à l’eau ?

Gavin et Red Hat étaient solidement arnachés grâce à SEAM 3 / Web Beans / JSR 299, laquelle est propulsée par JEE6 / JSR 316.

Le requin Rod et SpringSource, tournant autour du bateau de JEE 6, ne l’entendait pas de cette oreille. Et fin février le pied de Gavin a glissé du bateau JEE 6 (spécification générale et celle du profil web). Il vacille, et le statut de l’inclusion de la JSR 299 dans JEE 6 est devenu indécis.

Note – The expert group would like to solicit feedback from the community on whether to include Web Beans (JSR-299) 1.0 in the full Java EE Platform (see Section 6.30 of the Platform specification) and/or in the Web Profile. 

Note – The expert group hasn’t yet made a decision regarding the inclusion of the Web Beans 1.0 technology in the platform. The present section was added to solicit feedback from the community during public review.

Web Beans revendiquait depuis son origine (3 ans!) un héritage spirituel de Guice, mais Bob et Google étaient absents de la JSR 299. Google est bien présent en embuscade dans la JSR 316, malgré un dédain maintes fois affirmé pour JEE.

Et voila que depuis le 05 Mai, Rod et Bob proposent une nouvelle spécification “Annotations for Dependency Injection” ! Elle est très proche d’une petite sous-partie de la JSR 299, donc plus facile et rapide pour s’entendre sur ce standard. Et Bob pense qu’il est possible de monter un Groupe d’Experts et d’obtenir une validation finale de cette JSR en 5 mois (du jamais vu), juste à temps pour le round final de validation de JEE 6 en septembre. Gavin et Bob sont des potes (puisqu’on vous le dit) mais le débat fait rage depuis lors dans un fil de discussion technique des plus animés.

IBM, présent dans la JSR 299, mais aussi dans la 316, et Oracle/Sun, qui dirige la 316, vont devoir se positionner très vite.

Derrière ce débat d’apparence purement technique, c’est bien davantage le débat de la force des standards concernant Java pour l’entreprise, et l’enjeu de leur contrôle pour des acteurs historiques (Red Hat ou IBM avec un modèle JEE) ou de nouveaux entrants dans le monde de l’entreprise (Google avec un modèle JEGE à base de Guice 2 et Google App Engine, SpringSource avec Spring DM Server et leurs framework). Ce que l’on pourrait résumer en une phrase : assurer la portabilité des applications, c’est d’abord assurer leur passage vers le Cloud.


JEGE (Java Enterprise Google Edition)

avril 8, 2009

Google donne un grand coup de pied dans la fourmilière du groupe d’experts JEE et dans l’univers du développement des applications d’entreprise.

Désormais avec la sortie officielle de Java for Google App Engine, il faudra aussi compter dans le paysage le modèle d’applications JEGE (Java Entreprise Google Edition), qui utilise les “standards where relevant”.

Cette stack nous offre déjà dans le package :

bien sur toujours avec un passage instantané entre le développement et la mise en prod !

Nos précédents essais avec GAE/Python nous ont montré que les problèmes de performances n’étaient pas toujours magiquement gommés, un apprentissage du bon découpage de l’application restait nécessaire. Il nous tarde de voir ce que ca donne avec des API bien mieux connues !

Les Quotas d’utilisation sont décrits ici. Vous trouverez aussi sur cette page les limitations imposées au runtime JRE.

L’estampille “certifié JEE” prend un coup dans l’aile. La valeur de Sun aussi du coup. Dommage que ses actionnaires n’aient pas accepté l’offre d’IBM à 7.4 b$, il se pourrait que la prochaine offre soit moins intéressante.


La latence, le plus grand ennemi du Cloud Computing

décembre 18, 2008

image Nous vous avions déjà alerté sur la nécessité de porter une attention soutenue sur la supervision des services. C’était déjà le cas pour les architectures SOA, et ca reste vrai pour les architectures du Cloud Computing.

Salesforce a bien compris cette nécessité et offre depuis longtemps un tableau de bord très percutant sur leur niveau de disponibilité, consultable par tous, et qui fait envie à beaucoup de DSI.

Comme toute PaaS qui se respecte, Google App Engine se devait de présenter un service similaire. C’est chose faite désormais avec Google Status.

Lire la suite »


Conférence Adobe RIA 2008 (ou comment parler de Glassfish sans parler de JSF ou JavaFX)

décembre 17, 2008

J’ai pu me rendre à la conférence RIA 2008 organisée par Adobe hier (16/12/2008) au Coeur Défense. Très intéressant car orienté retour client. Premier constat : le succès de la conférence. L’amphi était plein à craquer, ce qui était somme toute prévisible vu le sujet et l’organisateur. Christian Fauré nous a rapidement planté le décor, avec le recul qu’on lui connait, en insistant judicieusement sur ce qui n’était pas au premier abord le sujet de la journée : la donnée. Avertissement que l’on retrouvera à plusieurs reprises tout au long de la journée, que ce soit par SNCF/Cap Gemini ou ETAM/SQLI.
Lire la suite »


Les suites bureautiques pour l’Entreprise 2.0

novembre 19, 2008

clip_image002 Après un premier billet en forme de clin d’oeil sur la récente version d’IBM Lotus Symphony, je voudrais comparer ici les approches nouvelles des applications bureautique (Chrome + Google Apps et Lotus Symphony v1.2) et l’approche traditionnelle (OO.org 3.0, et MS Office 2003).

Je ferai une mise à jour de ce billet pour une autre approche RDA quand elle sera disponible : MS Office Web Application.

Il ne s’agit pas vraiment ici d’argumenter sur la valeur de l’approche RDA vs l’approche traditionnelle des applications bureautiques, puisque même Microsoft s’est rallié à une approche RDA. Mon envie est plutôt de partager une analyse sur les offres d’applications bureautiques vues sous l’angle de l’Entreprise 2.0

Lire la suite »


Suivre

Recevez les nouvelles publications par mail.