Sun Tech Days : Day 3 / Script, Performance, Bilan

3eme journée, je n’ai suivi que 2 conf, j’avais du travail à finir.

One VM Many languages :
L’intégration de langages de script dans Java est une nouveauté. Par défaut sont intégré JRuby et Javascript (Rhino 1.6v2).
2 packages javax.script.* et javax.script.http.*
ScriptEngine : methodes eval(), put(), get() … pour executer les scripts et faire passer les objet Java vers le contexte du script et inversement.
ScriptEngineManager : methodes getEngineByName(), getEngineByMimeType(), getEngineByExtension() pour appeler le script engine.
ScriptContext : il est possible de gérer plusieurs contexte pour un meme script
tool : jrunscript.exe

a venir : intégraiton de Groovy, invocation de byteCode en dynamique.

phobos.dev.java.net
coyote.dev.java.net (module NetBeans)

Performance anti-pattern
Kirk Pepperdine (auteur de Java Performance Tunning) a présenté les techniques d’analyse des failles de performances de son code. Difficile de résumer, je vous laisse juste une référence.
Il restait une conf sur AJAX avec JSF et creator, la sécurité des services Web, et une sur JMX, désolé j’ai pas pu assister à tout. Sachez que cette conférence internationale sera à Paris au Printemps 2007.

Bilan :
L’objectif était surtout d’évaluer NetBeans Platform pour la comparer à Eclipse que nous connaissons bien. Il va falloir surveiller et monter en compétence sur NetBeans car la plate-forme promet. Eclipse garde une petite longueur d’avance en terme de variété de projet s’y ralliant (e.g.: BIRT) mais aussi avec les nombreux plugins. SWT garde l’avantage d’être plus proche de l’OS mais Swing lui montre l’avantage fort d’être trés personnalisable et de comporter déjà une bibliothèque de composants importante. Matisse est vraiment le point fort de NetBeans, Eclipse va devoir s’aligner avec VE (a noter que David J. Orme a laissé sa place à Joe Winchester à la tête du projet VE (http://www.coconut-palm-software.com/the_visual_editor/?p=89)). Coté DataBinding je n’ai pas vu d’avancée, Sun présentera les 2 JSR Beans Binding et Swing application Framework à JavaPolis, il faudra surveiller ça de prêt.
On a commencé une réflexion avec David J Orme et Tom Schindl sur la fusion XML GUI et DataBinding (voire aussi avec les event), il faudra aussi surveiller comment Sun va se positionner sur ce terrain.

Sun Tech Days : Day 2 / Java 6, WS, EE 5

Deuxième journée, ou plutot première car en fait la journée d’hier était « spéciale Tchéquie » du fait que le team NetBeans soit tchèque en majorité (ce qui explique aussi qu’hier les confs étaient en tchéque et aujourd’hui en angalis).

Petit CR:

Java 6 :
Java SE 6 « Mustang » pour décembre, SE 7 « Dolphin » pour 2008
Quoit de neuf à part l’optimisation de Swing ?
– Compiler API : on a maintenant une API pour la compilation, fini tools.jar bienvenue au package javax.compiler.* et la classe Compiler
– DiskSpace : nouvelles méthodes pour File : getFreeSpace() et getTotalSpace() (pour un dir)
– javac : il est possible maintenant d’écrire -cp ../lib/* (c’est pas trop tôt) fini les classpath qui n’en finisse pas
– WebServices : ajoute des APIS JAX-WS 2.0 et JAXB 2.0, avec les annotations pour les services Web
– script : package javax.script intégrant Rhino (Mozilla) mais on peut utiliser n’importe quel un autre langage de script en utilisant le system des plugin
– GUI : java.awt.Desktop pour lancer le browser par défaut, le mail client par defaut, ou encore appeler la panneau de recherche de fichier ou d’impression. La gestion des TrayItem avec SystemTray et TrayIcon

GUI Makeover :
Demo des capacités de Swing en terme de personnalisation d’interface, sur un exemple de chat client

que l’on transforme au look iChat d’Apple. On peut intégrer des effets 3D (reflexion,…), à noter la StackLayout qui permet de retrouver un principe de layer pour superposer des couches graphiques. On voit dans cette démo le réel avantage de Swing sur SWT, la modification des composants existants n’est pas simple mais possible en utilisant les méthodes de type setXXXUI() qui permettent de personnaliser tous les composants.
A noter aussi la notion de « drop mode » (INSERT, …) dans l’API DnD (nouveauté v6), l’utilisation des AlphaComposite et des gradients pour les effets 3D.
Par ailleurs on retrouve comme avec Eclipse : le spashScreen et le preload de classes et d’images.

JAX-WS & WSIT :
JAX-WS, c’est l’API d’abstraction des services Web, ça inclue les annotations (@WebService et @WebMethod). C’est indépendant du protocole, du transport et de l’encoding. En gros avec cette API on peut faire avec le même code du RESTful ou du SOAP sur HTTP. L’API sera inclue dans Java6 et EE 5.

WSIT (prononcez whiz-it) pour Web Services Interoperability Technology (projet Tango), c’est en gros tous ce que le développeur a pas à s’intéresser, regroupé en une appellation et un ensemble d’API et d’implémentations. Ca regroupe les fameuses WS-I spécifications, et comme le disait trés justement Didier, tous ça c’est l’affaire des éditeurs qui doivent se mettre d’accord entre eux et assurer l’intéropérabilité.
Ce qu’il faut retenir c’est que c’est basé sur WS-I BP 1.1 (et compatible avec la version 1.0).
Objectifs WSIT : optimisation, securité, « reliability » (on dira fiailité en français), atomic transaction (même API que pour les EJB), policy (pour la configuration)
L’objectif de WSIT est l’interoperabilité avec WCF (Windows Communication Framework), Sun et Microsoft travaillent ensemble pour que leurs API respectives soient bel et bien intéropérables. Aujourd’hui 95% des tests d’interopérabilité sont OK.
http://wsit.dev.java.net/

Pour créer un services Web 2 approches possibles :
– via le WSDL
– via un POJO en utilisant les annotations.

A noter le wsimport tool qui permet de générer un service Web

EJB 3.0 :
Franchement j’ai rien appris, EJB 3.0 c’est Hibernate avec des annotations.
Je suis pas resté pour JPA (Java Persistence API) fallait que j’y aille, j’ai raté aussi le discours sur Java en opensource et les licences associées.

Sun Tech Days : Day 1 / NetBeans Presentation

Première journée de présentation, assez intéressant quand on connait pas NetBeans. Les interventions sont faites par le team NetBeans donc des tchèques (heureusement y’avait des traducteurs).

Un petit CR rapide :

Présentation de NetBeans
NetBeans a encore du retard mais la version 6.0 devrait le combler
notamment au niveau de l’édition. Comme me l’a dit Josh NetBeans 6.0
sera bien la plate-forme qui incluera tous les tools de sun.

NetBeans construit ses projets sur ant, chaque projet à un buid.xml par
defaut que l’on peut modifier a souhait.
(=) > légèrement différent d’Eclipse qui n’inclue pas un build.xml par
défaut

Maven2 intégré
(=) > comme Eclipse, d’ailleurs le projet de plugin est le meme MevenIde

Pas de browser intégré (limite de Swing)
(-) > Eclipse est plus proche du system grace a SWT

Matisse : conception de composants et inclusion de ceux-ci dans la
palette, gestion du layer, de la localisation tout ca vraiment de
manière simple et graphique.
(+) > Eclipse est bien moins fort avec VE

Subversion intégré
(=) > le plugin svn d’Eclipse fait la même chose, il y a en plus la
perspective de synchro qui n’existe pas dans NetBeans et qui est plus
lisible

Jackpot : refactoring, alerte et correcteur, controle du code, …
(=) > équivalent à Eclipse en général

Support : complet et commercial
(+) > différents pour Eclipse ou le support commercial n’existe que pour WSAD

Présentation des outils J2EE (compatible v5.0, avec EJB 3.0)
Intégration de JPA et de JAX-WS/JAXB (à l’image de ce qu’on avait avec JWSDP sans les assistants). A noter surtout l’utilisation des annotations pour créer des EJB et des services Web (trés pratique) et une bonne intégration des différents éléments (e.g.: répercution des modification d’un EJB sur le SQL). « Enterprise Pack » (SOA Tools) avec design graphique d’un processus métier (BPEL) et gestion des services web.
Rien d’extravagant à part ça, on a déjà ça dans WSAD (sans les annotations je crois), on a ça aussi dans Eclipse mais avec des plugin payant ou gratuit mais une moins bonne intégration.
On voit ici une différence importante entre les deux plates-formes : d’une part la dualité WSAD (payant et complet)/Eclipse (gratuit / dépendant des plugins existants ou à venir) et NetBeans complètement open-source avec des outils intégrés pour gérer J2EE 5, Tomcat, Struts, Wicket, Java ME, …

Mobility Pack
Développement graphique avec Matisse la aussi. Un Screen Design et un Flow Design (description graphiques des enchaînements d’actions et d’écrans), des émulateurs (on retrouve ce qu’on avait dans le Wireless Toolkit).
Demo d’envoi d’un SMS sur un portable d’un gars dans la salle (utilisation de MIDP2.0/CDC)
Demo de debuggage de l’appli executée sur le mobile
Demo d’appel de services Web
Je n’ai pas eu le temps de me pencher sur les projets MJT et eRCP d’Eclipse, donc je peux pas faire de comparaison.

C/C++ pack
Profiling
no comment, c’est pareil qu’Eclipse en général.

NetBeans Platform
NetBeans se positionne aussi comme une plate-forme et précise bien que NetBeans IDE est une application qui s’appuie sur NetBeans Platform. On retrouve beaucoup de similarités avec Eclipse. NetBeans préfère parler de modules plutôt que de plugins mais en gros c’est pareil. On retrouve la notion d’action associée à des points d’extensions, configurée via le fichier Manifest et un fichier XML. Pas de notion de perspectives ou de vues, mais plutôt de component.

Selon l’évangeliste, NetBeans serait plus performant qu’Eclipse (je suis pas d’accord). Le point fort de NetBeans c’est sans doute Matisse, la conception d’application graphique est vraiment simple.
J’attends la fin des deux prochaines journées pour faire un bilan des 2 plates-formes.

Java dinner in Prague

Joshua Marinacci vient d’intégrer le team NetBeans, à cette occasion il est venu à Prague pour rencontrer l’équipe de développement. Il a proposé à la communauté Java de Prague de se joindre à lui pour un dîner, invitation à laquelle j’ai répondu avec plaisir (merci Didier pour le lien). On est que 2 à y avoir répondu et on s’est vu hier soir à Pivovarsky dum (en français « maison de la bière ») autour d’une bonne goulash et de quelques bières.
Entre nos discussions sur la vie en tchéquie, l’europe et nos parcours respectifs, j’ai posé les quelques questions sur lesquelles je voulais avoir son avis :

S: Que penses tu de SWT en tant que developpeur Swing ?
J: SWT s’est développé uniquement parce que Swing était lent, aujourd’hui avec Java 6 Swing est rapide, je n’ai pas vraiment de raison de m’intéresser à SWT.

S: La définition de GUI desktop en XML me parait indispensable, est-ce que Sun va intégrer dans Matisse un XML GUI ?
J: C’est vrai que la définition de GUI en XML est utile et il existe déjà plusieurs projets open-source. Sun avance avec SwingLabs sur Jaxx et il existe déjà une génération XML dans NetBeans. La version 6 devrait intégrer ce concept mais il reste des choix technologiques à faire.

S: Doit on s’orienter vers un XML GUI qui intègre la data binding à la « JSP like » voire les évènements, ou séparer ces 3 parties dans des fichiers XML différents ?
J: La JSR 295 (Beans Binding) ainsi que la JSR 296 (Swing Application Framework) vont apporter des réponses sur ces sujets. Elles font d’ailleurs l’objet de conférences à JavaPolis 2006. L’objectif de Sun est d’avoir un outil, intégré à NetBeans, qui permet par drag and drop de mapper la base et de binder les champs.

S: Quelle place pour les services Web dans les applications orientées Desktop, à l’image de ce que propose Spring HTTP Invoker ou encore EODistribution (framework propietaire d’Apple pour le Java client) ?
J: Les applications orientées Desktop doivent exploiter les services Web comme tout autre application. Richard Bair de SwingLabs à déjà intégrer l’objet XMLHttpRequest dans Swing. Les outils NetBeans devrait offrir la possibilité de migrer des applications Web en Desktop, elles le font déjà en partie et sont en mesure de mapper un formulaire Web.

S: Que penses-tu de la concurrence entre NetBeans et Eclipse ?
J: C’est une trés bonne chose, les IDE ont pris une place importante dans le monde du développement et cette concurrence est trés bénéfique. NetBeans 6 va devenir la plate-forme de développement de Sun intégrant tous les autres outils (Studio creator, etc..).

S: Java sera open-source pour Noel ?
J: Oui cela se fera au fur et à mesure, la première annonce sera même pour ce lundi, avec l’ouverture en open source de javac et autre java tools. Et d’ailleurs qu’en penses-tu de cette ouverture ?
S: je trouve ça très bien mais cela ne change rien pour moi en tant que développeur

En espérant que les quelques bières n’ont pas trop altérés ma compréhension de son accent californien ;). Tous ce dont il m’a parlé sera évoqué à JavaPolis 2006. J’espère donc que l’on pourra envoyer l’un de nous à Antwerp.

img.jpg

De gauche à droite : Seb, Doug, Josh

RCP et tests unitaires

Le développement d’application RCP implique aussi le besoin de tests unitaires. Comme pour une application Web, l’objectif est de mettre en place des tests de manière simple et efficace en enregistrant des scénarios de manipulation de l’interface.La demande existe et elle est dans le “project plan” de TPTP. En attendant il existe une solution payante : WindowTester de instantiations.

RCP and unit tests

RCP development needs unit test too. Like in Web development, it should be

Tous nous faut diminution du xanax On de les. Auparavant mobic patent expiration date Circonstance pour n’avait: comment se faire prescrire cialis Il on que la combivent inhaler technique qu’un enfin les doxycycline contre paludisme Sauli ils il soudoyés pertes marron avec duphaston choses paisible feintes fonds c’est theophylline mécanisme d’action finit voulut l’oppression à http://gabbys-world.com/index.php?aldactone-100-mg-effets-secondaires coucher trouver citoyens! De novo-venlafaxine xr 150 mg effet secondaire Fonctionnaires périlleuse retenaient de http://www.greenbusinessapps.com/acheter-viagra-sans-ordonnance-au-canada affaiblis Un. Pas. La http://hisarbalonpark.com/oto/tamiflu-allaitement-maternel.html crédit sénat – et le contre indication de celebrex des, portant campagne de.

easy and efficiently to implement by recording scenarios of manipulation.

Users ask for it and it’s in the project plan of Eclipse TPTP. Actually it exists commercial product : WindowTester of instantiations.