<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog de christopheJ &#187; Réflexions</title>
	<atom:link href="https://blog.developpez.com/christophej/pcategory/java/reflexions/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/christophej</link>
	<description></description>
	<lastBuildDate>Sun, 12 Jul 2009 13:05:47 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>Pushing Java</title>
		<link>https://blog.developpez.com/christophej/p7742/java/pushing_java</link>
		<comments>https://blog.developpez.com/christophej/p7742/java/pushing_java#comments</comments>
		<pubDate>Sun, 14 Jun 2009 21:43:48 +0000</pubDate>
		<dc:creator><![CDATA[christopheJ]]></dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Réflexions]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Java doit beaucoup de son succès aux communautés qui se sont créées autour. Ces groupes de bénévoles (comme l&#8217;équipe de ce site, celles des JUGs ou des projets open source) donnent beaucoup de leur temps. Lors de l&#8217;édition de JavaOne cette année, une partie des leaders de ces communautés se sont réunis autours de la mascotte de Java, Duke, et de celle des JUGs, Juggy, pour réaliser une petite vidéo. Je vous recommande cette petite [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Java doit beaucoup de son succès aux communautés qui se sont créées autour. Ces groupes de bénévoles (comme l&rsquo;équipe de ce site, celles des JUGs ou des projets open source) donnent beaucoup de leur temps.<br />
Lors de l&rsquo;édition de JavaOne cette année, une partie des leaders de ces communautés se sont réunis autours de la mascotte de Java, Duke, et de celle des JUGs, Juggy, pour réaliser une <a href="http://www.youtube.com/watch?v=urbQApO2gEY">petite vidéo</a>.</p>
<p>Je vous recommande <a href="http://www.youtube.com/watch?v=urbQApO2gEY">cette petite vidéo</a> (1 min 30), pleine d&rsquo;humour, pour voir comment les communautés poussent Java.<br />
N&rsquo;y attendez pas des concepts ou des conseils, mais juste des blagues de geek.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Une injection pour tous</title>
		<link>https://blog.developpez.com/christophej/p7573/java/un_injection_pour_tous</link>
		<comments>https://blog.developpez.com/christophej/p7573/java/un_injection_pour_tous#comments</comments>
		<pubDate>Wed, 06 May 2009 12:48:23 +0000</pubDate>
		<dc:creator><![CDATA[christopheJ]]></dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Réflexions]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Non il ne s&#8217;agit pas d&#8217;une injection vaccin contre le grippe A&#8230; Il s&#8217;agit d&#8217;une unification des frameworks d&#8217;injection. Bob Lee (Google, créateur de Guice) vient d&#8217;annoncer une nouvelle spécification sur l&#8217;injection de dépendance, en collaboration avec Spring. L&#8217;objectif est de standardiser les annotations pour rendre les objets injectables portables entre les différents frameworks. La JSR n&#8217;est pas encore officiellement soumise au JCP, par contre il montre une forte volonté de faire les choses au [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Non il ne s&rsquo;agit pas d&rsquo;une injection vaccin contre le grippe A&#8230; Il s&rsquo;agit d&rsquo;une unification des frameworks d&rsquo;injection.<br />
Bob Lee (Google, créateur de Guice) vient d&rsquo;<a href="http://crazybob.org/2009/05/announcing-javaxinjectinject.html">annoncer</a> une nouvelle spécification sur l&rsquo;injection de dépendance, en collaboration avec Spring. L&rsquo;objectif est de standardiser les annotations pour rendre les objets injectables portables entre les différents frameworks.<br />
La JSR n&rsquo;est pas encore officiellement soumise au JCP, par contre il montre une forte volonté de faire les choses au grand jour : la mailing list est lisible pour le public et la spécification est hébergé chez Google Code.</p>
<p>C&rsquo;est intéressant de voir ce mouvement vers l&rsquo;interopérabilité des frameworks. La fin d&rsquo;une partie des débats sur les annotations de Guice qui vous rendent dépendant de Guice&#8230;.</p>
<p>Par contre il reste à voir comment cette spécification va pouvoir s&rsquo;accorder avec celle de la JSR 299, anciennement WebBeans qui est maintenant nommée : Java Context and Dependency Injection. Va-t-on revoir la même guerre que pour les spécifications sur la modularité? Bob répond à la question dans les commentaires sur son blog, en précisant qu&rsquo;elles sont compatibles, il faut &laquo;&nbsp;juste&nbsp;&raquo; que le groupe d&rsquo;expert de la JSR 299 adopte ces nouvelles annotations. La JSR 299 est une spécification Java EE qui préciserait la configuration alors que cette nouvelle spécification se veut Java SE et laisse libre l&rsquo;implémentation de la configuration.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Mes IDEs sont les meilleurs!</title>
		<link>https://blog.developpez.com/christophej/p5728/java/mes_ides_sont_les_meilleurs</link>
		<comments>https://blog.developpez.com/christophej/p5728/java/mes_ides_sont_les_meilleurs#comments</comments>
		<pubDate>Sat, 28 Jun 2008 21:30:11 +0000</pubDate>
		<dc:creator><![CDATA[christopheJ]]></dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Réflexions]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[J&#8217;aurais pu nommer ce billet : &#171;&#160;mon IDE est le meilleur&#160;&#187; mais cela aurait tout de suite attiré les trolls&#8230; C&#8217;est comme pour les discussions sur Vim/Emacs, chacun pense que son outils est le meilleur et personne n’écoute les arguments des autres. Suite à une discussion récente, j&#8217;ai repensé à un billet du blog de Adam Bien. Ce billet est une constatation sur les IDEs qu&#8217;il a pu voir en action lors de JavaOne 2008 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>J&rsquo;aurais pu nommer ce billet : &laquo;&nbsp;mon IDE est le meilleur&nbsp;&raquo; mais cela aurait tout de suite attiré les trolls&#8230; C&rsquo;est comme pour les discussions sur Vim/Emacs, chacun pense que son outils est le meilleur et personne n’écoute les arguments des autres.</p>
<p>Suite à une discussion récente, j&rsquo;ai repensé à un billet du blog de Adam Bien. <a href="http://www.adam-bien.com/roller/abien/entry/javaone_and_the_most_used">Ce billet</a> est une constatation sur les IDEs qu&rsquo;il a pu voir en action lors de JavaOne 2008 : IntelliJ et NetBeans. La seule fois qu&rsquo;il a vu Eclipse c&rsquo;était pour une session traitant de Eclipse RCP.</p>
<p>Alors qu&rsquo;en est-il de l&rsquo;IDE leader dans les entreprises ? Quand on regarde <a href="http://www.developpez.net/forums/showthread.php?t=468233">les sondages</a> du forum de Developpez, Eclipse est l&rsquo;IDE le plus utilisé, il fait d&rsquo;ailleurs souvent partie des prérequis dans les annonces pour des postes de développeurs. Dans les commentaires du billet d’Adam, la discussion en vient d’ailleurs au fait qu’il vaut mieux comparer dans les annonces plutôt que de comparer avec Google Trends.</p>
<p>Pour revenir au titre de ce blog, pourquoi pensez-vous que votre IDE est le meilleur ?</p>
<p> <span id="more-41"></span></p>
<p>C’est le meilleur, parce que c&rsquo;est celui que vous utilisez ? Parce qu&rsquo;il a cette petite fonctionnalité qui va bien ? </p>
<p> La question à se poser est : avez-vous sérieusement essayer les autres IDEs ? Avez vous pris le peine de coder et cela plus de 5 minutes avec un autre IDE pour pouvoir comparer ?<br /> <br />
Quand on parle de NetBeans, les gens disent souvent qu&rsquo;il est lent et lourd, mais ces personnes ont-elles essayé les dernières versions de NetBeans avec son éditeur complètement réécrit ?<br /> <br />
Quand on parle d&rsquo;Eclipse, certains pensent immédiatement à l&rsquo;enfer des plugins incompatibles, mais ont-ils essayé les dernières versions comme Europa ou Callisto, avec un effort de synchronisation sur les livraisons des plugins ?<br /> <br />
Quand on parle d&rsquo;IntelliJ, les gens pensent à un outil de geeks avec l&rsquo;absence de wizards, mais ont-ils essayé plus avant cet IDE notamment pour le refactoring ?</p>
<p>Les IDEs offrent de plus en plus des fonctionnalités d&rsquo;import des projets depuis un autre IDE. L&rsquo;utilisation de Maven et sa prise en compte par les IDEs contribue aussi à rendre les projets indépendants des IDEs. Alors la solution ne serait-elle pas d&rsquo;utiliser plusieurs IDEs selon ce que l’on fait?</p>
<p>Cette dernière solution me semble la bonne, peut être parce que c&rsquo;est celle que j&rsquo;utilise. Pour en avoir parler dans les conférences où j’ai eu la chance d’aller, je sais que de nombreuses personnes utilisent comme moi plusieurs IDEs. <br />
J&rsquo;aime bien NetBeans pour la création de GUI en WYSIWYG (Swing). J&rsquo;utilise aussi son &laquo;&nbsp;visual web&nbsp;&raquo; pour le développement rapide de pages JSF (quand il s&rsquo;agit d&rsquo;un test de taglib). Par contre je préfère l&rsquo;éditeur de code de IntelliJ pour tous ce qui est code. Pour les tests de technologies je me tourne aussi régulièrement vers NetBeans pour son support souvent en avance des dernières versions de spécifications.</p>
<p>En conclusion, comme j&rsquo;utilise IntelliJ et NetBeans pour mon usage personnel, mais aussi Eclipse et BEA Workshop pour l&rsquo;usage professionnel, je vais essayer de faire une série de billets comparant les fonctionnalités de ces différents IDEs </p>
<p>Et vous, êtes vous monoIDE ou polyIDEs?</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>La controverse des closures</title>
		<link>https://blog.developpez.com/christophej/p4723/java/la_controverse_des_closures</link>
		<comments>https://blog.developpez.com/christophej/p4723/java/la_controverse_des_closures#comments</comments>
		<pubDate>Sat, 29 Dec 2007 14:54:56 +0000</pubDate>
		<dc:creator><![CDATA[christopheJ]]></dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Réflexions]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Si vous avez lu quelques compte-rendus de Javapolis, vous avez du voir que la session de Joshua Bloch intitulée &#171;&#160;The Closures Controversy&#160;&#187; a été une des plus plébiscitées. Bonne nouvelle pour tous ceux qui n&#8217;ont pu se rendre à Javapolis cette année ou qui n&#8217;ont pu assister à cette session, la session est déjà sur le site Parley. La session n&#8217;est pas évidente à suivre (Joshua Bloch parle parfois vite) et il faut avoir déjà [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Si vous avez lu quelques compte-rendus de <a href="http://www.javapolis.com/confluence/display/JP07/Home">Javapolis</a>, vous avez du voir que la session de Joshua Bloch intitulée &laquo;&nbsp;The Closures Controversy&nbsp;&raquo; a été une des plus plébiscitées.<br />
Bonne nouvelle pour tous ceux qui n&rsquo;ont pu se rendre à Javapolis cette année ou qui n&rsquo;ont pu assister à cette session, la session est déjà sur le site <a href="http://www.parleys.com/display/PARLEYS/Home">Parley</a>. </p>
<p>La session n&rsquo;est pas évidente à suivre (Joshua Bloch parle parfois vite) et il faut avoir déjà vu un peu les closures pour tout suivre (certains morceaux de code font peur au premier abord), mais comme l&rsquo;interface du site est formidable, il est possible de naviguer de diapositive en diapositive et donc de revenir au début de la diapositives si vous avez raté quelque chose, ou encore de mettre en pause le temps de lire le code.</p>
<p>Pour ceux qui sont intéressés par les closures, ceux qui veulent savoir ce que Joshua Bloch reproche à la proposition BGGA, ce que sont CICE et ARM, et pourquoi il craint que &laquo;&nbsp;the feel of Java&nbsp;&raquo; ne disparaisse, réservez vous 42 minutes (ou moins si vous le regardez en plusieurs fois) et allez voir <a href="http://www.parleys.com/display/PARLEYS/The+Closures+Controversy?showComments=true"><strong>la présentation</strong></a> </p>
<p>Au passage, Stephan Janssen a présenté la nouvelle version de l&rsquo;interface du site lors du Keynote et elle promet d&rsquo;être formidable (plein écran, bookmark et commentaire sur une diapositive précise, gestion de mode offline&#8230;), par contre il faudra attendre encore un peu&#8230;</p>
<p><strong>EDIT</strong> : la session de questions a été ajoutée après mon poste. Vous pouvez la voir à <a href="http://parleys.com/display/PARLEYS/Closures+Questions+with+Joshua+Bloch?showComments=true">cette adresse</a>.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>L&#8217;interface qui donne des boutons</title>
		<link>https://blog.developpez.com/christophej/p4403/java/reflexions/des_interfaces_pour_les_utilisateurs</link>
		<comments>https://blog.developpez.com/christophej/p4403/java/reflexions/des_interfaces_pour_les_utilisateurs#comments</comments>
		<pubDate>Thu, 18 Oct 2007 20:58:19 +0000</pubDate>
		<dc:creator><![CDATA[christopheJ]]></dc:creator>
				<category><![CDATA[Réflexions]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Je ne sais pas si vous connaissez le blog de Kathy Sierra. Elle est à l&#8217;origine de la série de livre &#171;&#160;Tête premiere&#160;&#187; avec son style si particulier. Elle tenait aussi un blog dans le même style que les livres, mais malheureusement suspendu : creating Passionate User. Je vous recommande fortement la lecture de ces anciens billets. Je relisais un de ses posts sur les différents types d&#8217;applications et j&#8217;ai du coup repensé à un [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Je ne sais pas si vous connaissez le blog de Kathy Sierra. Elle est à l&rsquo;origine de la série de livre &laquo;&nbsp;Tête premiere&nbsp;&raquo; avec son style si particulier. Elle tenait aussi un blog dans le même style que les livres, mais malheureusement suspendu : <a href="http://headrush.typepad.com/creating_passionate_users/">creating Passionate User</a>. Je vous recommande fortement la lecture de ces anciens billets.<br />
Je relisais un de ses posts sur <a href="http://headrush.typepad.com/creating_passionate_users/2007/03/is_your_app_an_.html">les différents types d&rsquo;applications</a> et j&rsquo;ai du coup repensé à un truc qui me frustre sur les interfaces d&rsquo;applications : les boutons.</p>
<p>Il y a trois catégories d&rsquo;interfaces: </p>
<ul>
<li>celles qui n&rsquo;affichent que les boutons utiles ou fonctionnels</li>
<li>celles qui affichent une partie des boutons grisés</li>
<li>celles qui affichent tous les boutons en permanence</li>
</ul>
<p>La première catégorie est pratique on ne voit que ce que l&rsquo;on peut faire, on ne se pose pas de question. Par contre dès que l&rsquo;on veut faire des choses qui ne sont pas en accès direct, on peut chercher longtemps où et comment faire apparaitre les boutons. Il faut que les cinématiques soient bien pensées et intuitives. Généralement ces applications ne sont pas trop complexes.<br />
<span id="more-38"></span><br />
La seconde catégorie, avec ses boutons grisés, vous fait voir tous ce que vous pourriez faire si vous aviez le droit ou aviez fait la bonne séquence d&rsquo;actions. Par rapport à la première catégorie, comme on voit déjà les boutons, il ne reste plus qu&rsquo;à trouver comment les activer. C&rsquo;est un peu plus user-friendly que la précédente catégorie. Par contre quand on cherche depuis un moment comment rendre actif ces &laquo;&nbsp;satanés&nbsp;&raquo; boutons, cela devient frustrant et on a un peu l&rsquo;impression que l&rsquo;application nous dit </p>
<blockquote><p>T&rsquo;as vu un peu tout ce que tu pourrais faire si tu avais le droit&#8230;</p></blockquote>
<p>La dernière catégorie est sans doute la pire. Vous avez tous les boutons actifs mais une fois sur deux quand vous cliquez dessus, au bout de quelques secondes, un message d&rsquo;erreur vous annonce qu&rsquo;il n&rsquo;est pas possible de faire cela.<br />
C&rsquo;est l&rsquo;application qui vous dit </p>
<blockquote><p>Bien tenté mais tu n&rsquo;as pas le droit !</p></blockquote>
<p>Avec un peu de chance, le message est suffisamment clair pour comprendre ce qui n&rsquo;allait pas, mais ce n&rsquo;est pas toujours le cas&#8230;.</p>
<p>Dans les trois types d&rsquo;interface, je finis généralement par une phase d&rsquo;exploration  à tâtons qui une fois sur deux se solde par un echec ou mon incapacité à me souvenir de tous les endroits où j&rsquo;ai cliqué/coché pour faire apparaitre/activer/fonctionner le fameux bouton.</p>
<p>Il y a des jours où l&rsquo;on a l&rsquo;impression que des développeurs sadiques préparent ces interfaces avec des rires de savants fous qui résonnent dans les bureaux&#8230;</p>
<p>Je sais, on va me dire que je devrais prendre plus de temps pour consulter l&rsquo;aide ou lire les manuels au lieu de cliquer bêtement, mais avez-vous déjà vu un homme perdu en voiture demander son chemin&#8230;.</p>
<p>Et vous quelle est le type d&rsquo;interface qui vous fâche le plus?</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Consumer JRE et Java 7</title>
		<link>https://blog.developpez.com/christophej/p4126/java/consumer_jre_et_java_7</link>
		<comments>https://blog.developpez.com/christophej/p4126/java/consumer_jre_et_java_7#comments</comments>
		<pubDate>Mon, 27 Aug 2007 20:18:06 +0000</pubDate>
		<dc:creator><![CDATA[christopheJ]]></dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Réflexions]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Une seule entrée de blog car le temps manque pour les multiplier&#8230; Je vais donc parler du consumer JRE, le runtime allégé pour utilisateurs, et des nouveautés de Java 7. J&#8217;ai déjà parlé plusieurs fois du consumer JRE (ici et la). Ce JRE est attendu par beaucoup car il permettrait de résoudre ce que certains considèrent comme un gros handicap de Java face aux technologies comme Flash : la taille de téléchargement et le temps [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Une seule entrée de blog car le temps manque pour les multiplier&#8230;<br />
Je vais donc parler du consumer JRE, le runtime allégé pour utilisateurs, et des nouveautés de Java 7.<br />
<span id="more-3"></span><br />
J&rsquo;ai déjà parlé plusieurs fois du consumer JRE (<a href="http://blog.developpez.com/index.php?blog=127&amp;title=retour_sur_le_customer_jre">ici</a> et <a href="http://blog.developpez.com/index.php?blog=127&amp;title=le_consumer_jre_plebiscite">la</a>). Ce JRE est attendu par beaucoup car il permettrait de résoudre ce que certains considèrent comme un gros handicap de Java face aux technologies comme Flash : la taille de téléchargement et le temps de démarrage. Parmi les prérequis pour ce consumer JRE, il y avait donc la création du Java Kernel, un coeur allégé ne contenant que les classes les plus couramment utilisées. Il semble que ce Java Kernel soit dans le prochain update de Java SE 6 update 4, selon <a href="http://weblogs.java.net/blog/forax/archive/2007/08/java_kernel_in.html">le blog de Rémi Forax</a>.<br />
Nous avons donc ici, un premier pas vers le consumer JRE, et celui ci ne semble pas être le plus simple, ce qui est encourageant.</p>
<p>Le deuxième point est Java 7 et toutes les discussions autour de ce qu&rsquo;il doit contenir. Parmi les grands favoris, on trouve, entre autres, les closures et les properties. On trouve aussi tout un tas de propositions comme l&rsquo;héritage multiple, la surcharge d&rsquo;opérateurs,le support SQL au niveau du langage, ou votre fonctionnalité préférée d&rsquo;un autre langage. L&rsquo;argument</p>
<blockquote><p>DotNet (et notamment C#) offre la fonctionnalité depuis la version 3, Java prend du retard</p></blockquote>
<p>revient aussi régulièrement.</p>
<p>Chet Haase en a profité pour faire <a href="http://weblogs.java.net/blog/chet/archive/2007/08/code_complete_n.html">ses propositions</a> sur le ton de l&rsquo;humour, et ses lecteurs s&rsquo;en donnent à coeur joie.<br />
Pour un aperçu complet des discussions autour de Java 7, vous pouvez consulter l&rsquo;excellent travail de recensement que fait Alex Miller sur <a href="http://tech.puredanger.com/java7">son blog</a>.</p>
<p>Plus sérieusement, <a href="http://www.java.net/pub/pq/170">un sondage</a> montre que quand même plus d&rsquo;un quart des développeurs ne veulent pas de changement. Là aussi les commentaires sont intéressants, ce qui a valu au sondage d&rsquo;être deux fois de suite dans le blog journalier de l&rsquo;éditeur de java.net (<a href="http://weblogs.java.net/blog/editors/archives/2007/08/shut_us_down.html">ici</a> et <a href="http://weblogs.java.net/blog/editors/archives/2007/08/wrong.html">là</a>). Personnellement je ne suis pas contre le support des String dans les switch et un meilleur support du xml. Par contre certaines propositions comme l&rsquo;héritage multiple ou la surcharge des opérateurs m&rsquo;inquiètent un peu plus. Quand je vois certaines horreurs dans des codes, je me dis qu&rsquo;on donnerai alors des outils bien dangereux aux développeurs pour un apport quand même minime.</p>
<p>Avant de me faire agresser, je vais tenter de m&rsquo;expliquer&#8230;<br />
Pour l&rsquo;héritage multiple, j&rsquo;ai du mal à comprendre le concept. L&rsquo;héritage est souvent décrit comme une spécialisation d&rsquo;une classe. Alors pourquoi spécialiser deux classes d&rsquo;un coup en les réunissant dans une seule? Si elles sont suffisamment semblables pour cela, il y a, à mon avis un problème de conception, elle devrait avoir un lien&#8230;. Si vous avez un exemple clair, n&rsquo;hésitez pas à laisser un commentaire&#8230;.<br />
Concernant la surcharge des opérateurs, cela me semble justifié pour les classes représentant des numériques ou pour des classes représentant des matrices. Mais pour les autres, la majorité des classes, cela me semble inutile. Si j&rsquo;ajoute deux classes représentant des voitures, je n&rsquo;obtiens pas une sorte de voiture à 10 places et 8 roues mais plutôt deux voitures que je mets dans un tableau ou une Collection, pas besoin de surcharge des opérateurs pour ces choses là.</p>
<p>Le succès de Java est du à sa simplicité. Je trouve que certaines de ces évolutions vont complexifier le langage et la lecture du code ou ne seront utiliser que par une &laquo;&nbsp;certaine élite&nbsp;&raquo; des développeurs. Avez vous déjà lu et compris du code avec des closures? Nous somme sans doute nombreux à utiliser les Generics pour typer nos Collections. Mais qui utilise ou même comprend cette syntaxe tirée de la page 18 du <a href="http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf">tutoriel de Sun sur les Générics</a>?</p>
<blockquote><p>interface Sink&lt;T&gt;{<br />
   flush(T,t);<br />
} </p>
<p>public static &lt;T&gt; T writeAll(Collection&lt;T&gt; coll, Sink&lt;? super T&gt; snk){&#8230;.}</p></blockquote>
<p>Il serait sans doute plus intéressant de corriger <a href="http://bugs.sun.com/bugdatabase/top25_bugs.do">les bugs les plus demandés</a> ou d&rsquo;implémenter <a href="http://bugs.sun.com/bugdatabase/top25_rfes.do">les améliorations les plus demandées</a>. Si SUN veut vraiment le retour de Java sur le Desktop, il ne faudra pas qu&rsquo;un JRE plus léger et rapide, mais aussi un meilleur support du multimédia et de la connectivité de la machine (série, USB, FireWire&#8230;).</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>De l&#8217;utilité du framework maison?</title>
		<link>https://blog.developpez.com/christophej/p3621/java/de_l_utilite_du_framework_maison</link>
		<comments>https://blog.developpez.com/christophej/p3621/java/de_l_utilite_du_framework_maison#comments</comments>
		<pubDate>Fri, 01 Jun 2007 09:34:34 +0000</pubDate>
		<dc:creator><![CDATA[christopheJ]]></dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Réflexions]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[La question que je me pose est plus exactement : Pourquoi tant de sociétés utilisent des frameworks &#171;&#160;maison&#160;&#187;? Dans ce billet, je ne traiterai pas des outils comme les scripts de Ruby on Rails ou encore AppFuse qui permettent de générer le squelette de l&#8217;application facilement et dont l&#8217;utilité, pour moi, ne fait aucun doute (tant qu&#8217;ils sont à jour et fonctionnent&#8230;). Dans ce billet, je veux parler des frameworks que l&#8217;on croise souvent dans [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>La question que je me pose est plus exactement : Pourquoi tant de sociétés utilisent des frameworks &laquo;&nbsp;maison&nbsp;&raquo;?</p>
<p>Dans ce billet, je ne traiterai pas des outils comme les scripts de Ruby on Rails ou encore <a href="http://appfuse.org/">AppFuse</a> qui permettent de générer le squelette de l&rsquo;application facilement et dont l&rsquo;utilité, pour moi, ne fait aucun doute (tant qu&rsquo;ils sont à jour et fonctionnent&#8230;). Dans ce billet, je veux parler des frameworks que l&rsquo;on croise souvent dans une vie de prestataire et qui sont des surcouches ou wrappers de Struts, Hibernate, Spring, EJB ou autre frameworks classiques du marché, souvent disponibles en open source et gratuitement de surcroît. On trouve aussi l&rsquo;autre version du framework maison qui n&rsquo;est pas le wrapper, mais une sorte de clone boitant, juste la réinvention de la roue mais avec des bosses dessus&#8230;.<br />
<span id="more-37"></span> </p>
<p>Ne rigolez pas, vous avez certainement déjà vu un de ces frameworks. Certains ont même vu des wrappers de wrapper avec <a href="http://softarc.blogspot.com/2006/11/big-bad-architectural-smells-2.html">un framework de logging autour de Commons Logging</a> (pour ceux qui ne connaissent pas, c&rsquo;est un wrapper pour les frameworks de logging).<br />
Que cela se soit fait au début de l&rsquo;open source ne me choque pas. Auriez-vous fait reposer votre application directement sur quelque chose fait par des barbus sur leur temps libre? Vous aviez alors deux solutions. La première est de faire votre propre framework. La seconde est de faire un wrapper pour découpler votre application de ce code et vous donner la possibilité de changer ou refaire cette sous-couche en cas de problème.</p>
<p>Mais quelle est l&rsquo;utilité maintenant que ces outils sont largement éprouvés?</p>
<p>Quand il s&rsquo;agit d&rsquo;une SSII, cela peut éventuellement se justifier. Le client qui achète une application développée sur le framework maison de la SSII se retrouve lié à cette SSII pour la maintenance et l&rsquo;évolution de cette application. Je réprouve ce genre de pratique commerciale car elle permet de retenir le client, non pas par la qualité de la prestation ou la confiance, mais par la &laquo;&nbsp;contrainte&nbsp;&raquo;. Un peu comme une application qui enferme vos données dans un format propriétaire (non je ne donnerai pas de nom&#8230;.) et vous obligent donc à continuer à l&rsquo;utiliser&#8230;<br />
Je pense qu&rsquo;il est de l&rsquo;intérêt du client de s&rsquo;assurer qu&rsquo;il aura accès aux sources de l&rsquo;application et que cette application repose sur des standards du marché afin de garder toute sa liberté.</p>
<p>Dans le cadre d&rsquo;une entreprise développant à son propre compte, j&rsquo;ai plus de mal à comprendre l&rsquo;intérêt. Généralement, l&rsquo;argument est que le framework masque une partie de la complexité des développements Java, permettant au développeur de se concentrer sur la partie métier du code et non sur la machinerie.</p>
<p>Toutefois le développement et la maintenance de ces frameworks représentent un coût direct pour cette entreprise. De plus je vois un certain nombre de problèmes liés à ces frameworks : </p>
<ul>
<li>le risque d&rsquo;avoir des bugs dans le framework</li>
<li>dans le cas d&rsquo;un wrapper, le masquage de l’API sous jacente peut faire que l&rsquo;on se prive d&rsquo;un certain nombre de fonctionnalités de cet outil</li>
<li>pour le clone, on retrouve aussi le problème des fonctionnalités absentes</li>
<li>pour un wrapper, il est nécessaire de faire évoluer ce framework pour profiter des évolutions de l&rsquo;outil sous-jacent (il y a donc un coût supplémentaire et un retard à l&rsquo;application)</li>
<li>pour un clone, il faut le faire évoluer pour simuler les nouvelles fonctions intéressantes (là aussi, coût et retard sont présents, avec en plus des variations de comportement)</li>
<li>la nécessité de former à ce framework les éventuels prestataires intervenant dans la société (un coût supplémentaire alors que les prestataires connaissent généralement l&rsquo;outil standard qui a été encapsulé ou cloné par le framework)</li>
<li>Enfin le dernier et non négligeable : se priver de la base de connaissance et d&rsquo;entraide phénoménale que constitue le web et plus particulièrement les forums.</li>
</ul>
<p>Donc d’après vous, quelle est l’utilité de ces frameworks maison ? Si vous voyez des arguments, n&rsquo;hésitez pas à laisser un commentaire.</p>
<p>Je voudrais juste ajouter un appel aux sociétés : au lieu de payer vos développeurs pour réinventer la roue ou lui mettre des pneus plein de bosses, laissez les contribuer dans ces projets open-sources et reverser vos améliorations à la communauté. Ils gagneront en compétences  sur ces frameworks et si toutes les sociétés le font, ces outils formidables seront encore meilleurs, ce n&rsquo;est pas de l&rsquo;argent perdu.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Changer d&#8217;avis sur l&#8217;applet</title>
		<link>https://blog.developpez.com/christophej/p3552/java/changer_d_avis_sur_l_applet</link>
		<comments>https://blog.developpez.com/christophej/p3552/java/changer_d_avis_sur_l_applet#comments</comments>
		<pubDate>Mon, 21 May 2007 22:05:46 +0000</pubDate>
		<dc:creator><![CDATA[christopheJ]]></dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Réflexions]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Vous connaissez sans doute les applets. Vous savez ces petits programmes s&#8217;exécutant en Java dans le navigateur. La petit horloge toute grise ou le menu gris et triste, pas fonctionnel sur le bord de l&#8217;écran. Bref les applets ont en général une mauvaise image, sans parler du démarrage lent qui fait que le navigateur se fige quelques secondes&#8230;. Concernant le démarrage, ce problème va changer avec les prochaines versions du JRE (voir mes billets précedents [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Vous connaissez sans doute les applets. Vous savez ces petits programmes s&rsquo;exécutant en Java dans le navigateur. La petit horloge toute grise ou le menu gris et triste, pas fonctionnel sur le bord de l&rsquo;écran. Bref les applets ont en général une mauvaise image, sans parler du démarrage lent qui fait que le navigateur se fige quelques secondes&#8230;.</p>
<p>Concernant le démarrage, ce problème va changer avec les prochaines versions du JRE (voir mes billets précedents sur le consumer JRE <a href="http://blog.developpez.com/index.php?blog=127&amp;title=retour_sur_le_customer_jre">ici</a> et <a href="http://blog.developpez.com/index.php?blog=127&amp;title=le_consumer_jre_plebiscite">là</a>). Au passage j&rsquo;ai le même phénomène de gel du navigateur au lancement du plugin Acrobat Reader et là les gens en parle moins&#8230;<br />
Pour l&rsquo;aspect tristounet et gris des Applets, il est du au fait qu&rsquo;elles sont souvent codées en utilisant AWT et en se limitant à la version 1.1 de Java, à cause de la JVM de Microsoft qui a fait cauchemarder de nombreux développeurs. Le problème de cette JVM devrait n&rsquo;être plus qu&rsquo;un mauvais souvenir à <a href="http://www.microsoft.com/mscorp/java/">la fin de l&rsquo;année</a>. </p>
<p>Les applets ont donc eu mauvaise image face à des applications comme celle en flash ou même en Ajax.<br />
<span id="more-36"></span><br />
Dans un <a href="http://blog.developpez.com/index.php?blog=127&amp;title=en_direct_de_communityone">message précédent</a> depuis JavaOne, j&rsquo;ai glissé que c&rsquo;était le retour de l&rsquo;applet sans donner plus de détail. Le truc était que la démonstration de Francois Orsini utilisait une applet cachée pour instancier une base Java DB en fond, et du javascript permettait à l&rsquo;application web de stocker des informations dans cette base de données. Le tout résultait en une application Web 2.0 capable de fonctionner même si la connexion réseau était perdue.</p>
<p>D&rsquo;un autre coté, la qualité des applications Java pour le desktop n&rsquo;est plus à prouver. Il suffit de voir des applications comme <a href="https://aerith.dev.java.net/">Aerith</a>, la démonstration de Romain Guy pour JavaOne 2006, ou encore <a href="http://bluemarine.tidalwave.it/infoglueDeliverLive/ViewPage.action?siteNodeId=292&amp;languageId=1&amp;contentId=-1">Blue Marine</a>, une application de gestion de photos. Les interfaces toutes grises et carrées sont donc maintenant du domaine du passé. De plus l&rsquo;arrivée de Java FX devrait rendre la chose encore plus facile.</p>
<p>La grande question est donc qu&rsquo;attendent les développeurs pour faire des applets qui laisseraient les autres applications web loin derrière?</p>
<p>La réponse est : rien du tout, c&rsquo;est fait!</p>
<p>Toute cette grande introduction pour venir à <a href="http://swinglabs.java.sun.com/iris/">IRIS</a> (attention, Java 6 nécessaire). Avant que cela ne vienne dans les commentaires : je sais en flash on ne demande pas d&rsquo;accepter le certificat ou de changer les réglages vidéos, mais attendez de voir le reste.<br />
Cette application a été dévoilée pendant le Keynote technique de JavaOne. Elle utilise les webservice de FlickR, vous permettant de voir le contenu d&rsquo;un compte, éditer des photos (elles sont modifiées sur FlickR si c&rsquo;est votre compte), faire des diaporamas et uploader des photos par simple drag and drop depuis le bureau vers le navigateur (essayer ce dernier truc en flash&#8230;.) </p>
<p>Vous pouvez lire <a href="http://www.jasperpotts.com/blog/2007/05/iris-java-one-demo/">les commentaires</a> de Jasper Potts, l&rsquo;un des auteurs, sur son blog et même y voir une <a href="http://www.jasperpotts.com/blog/2007/05/iris-video/">vidéo de démonstration</a>.</p>
<p>Alors est-ce que vous faites cela en Flash ou en Ajax?</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Le consumer JRE plébiscité</title>
		<link>https://blog.developpez.com/christophej/p3539/java/le_consumer_jre_plebiscite</link>
		<comments>https://blog.developpez.com/christophej/p3539/java/le_consumer_jre_plebiscite#comments</comments>
		<pubDate>Sun, 20 May 2007 15:32:10 +0000</pubDate>
		<dc:creator><![CDATA[christopheJ]]></dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Réflexions]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[J&#8217;avais dit que l&#8217;annonce avait été étouffée par le bruit autour de JavaFX et ne représentait que 2 minutes dans les deux heures du Keynote. Pour ceux qui veulent revoir cette annonce, il suffit de regarder les vidéos du Keynotes sur le site de SUN. C&#8217;est dans la troisième vidéo du keynote, à partir de 9min20 et Rich Green ne nomme jamais le &#171;&#160;Consumer JRE&#160;&#187; mais parle de rendre le JRE plus rapide à télécharger [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><a href="http://blog.developpez.com/index.php?blog=127&amp;title=retour_sur_le_customer_jre&amp;more=1&amp;c=1&amp;tb=1&amp;pb=1">J&rsquo;avais dit</a> que l&rsquo;annonce avait été étouffée par le bruit autour de JavaFX et ne représentait que 2 minutes dans les deux heures du Keynote.<br />
Pour ceux qui veulent revoir cette annonce, il suffit de regarder <a href="http://java.sun.com/javaone/sf/sessions/general/index.jsp#GS1">les vidéos du Keynotes sur le site de SUN</a>. C&rsquo;est dans la troisième vidéo du keynote, à partir de 9min20 et Rich Green ne nomme jamais le &laquo;&nbsp;Consumer JRE&nbsp;&raquo; mais parle de rendre le JRE plus rapide à télécharger et à exécuter&#8230;.</p>
<p>Depuis le consumer JRE a été plébiscité comme &laquo;&nbsp;l&rsquo;annonce la plus intéressante de JavaOne 2007&Prime; avec 56% des voix sur 612 votes, loin devant JavaFX et JavaFX Mobile qui cumulent 15,1% à eux deux&#8230;.</p>
<p>Pour ceux qui veulent toujours plus d&rsquo;informations sur ce consumer JRE, Chet Haase <a href="http://weblogs.java.net/blog/chet/archive/2007/05/consumer_jre_le.html">revient dessus sur son blog</a> et explique comment cela va fonctionner.<br />
Pour les allergiques à la langue de Shakespeare, je fais un résumé rapide : </p>
<ul>
<li>Le problème du temps de lancement des applications Java, lié à la lecture des fichiers nécessaires à la JVM, sera réduit en plaçant ces fichiers dans le cache du disque dur</li>
<li>La création du Java Kernell permettra de réduire à 4 Mo le téléchargement nécessaire pour une personne n&rsquo;ayant pas de JRE sur sa machine. Les classes manquantes seront téléchargées en fonction des besoins.</li>
<li>Un &laquo;&nbsp;Deployment Toolkit&nbsp;&raquo; permettra au développeur de détecter la version de Java installée sur une plateforme et éventuellement proposer l&rsquo;installation d&rsquo;une version plus récente avant de revenir sur la page contenant une applet</li>
<li>Une refonte de l&rsquo;installateur qui sera plus &laquo;&nbsp;sexy&nbsp;&raquo; (vous pouvez voir la capture de l&rsquo;ancienne version et de la nouvelle dans le blog de Chet)</li>
<li>Des améliorations sur les performances graphiques avec la réécriture du pipeline DirectX</li>
<li>Le Look&amp;Feel Nimbus qui remplacera le Look&amp;Feel Metal</li>
</ul>
<p>Toutes ces nouveautés devraient arriver par les updates de la version 6 début 2008, ce qui permet de ne pas attendre la version 7. </p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Retour sur le Consumer JRE</title>
		<link>https://blog.developpez.com/christophej/p3492/java/reflexions/retour_sur_le_customer_jre</link>
		<comments>https://blog.developpez.com/christophej/p3492/java/reflexions/retour_sur_le_customer_jre#comments</comments>
		<pubDate>Mon, 14 May 2007 22:36:50 +0000</pubDate>
		<dc:creator><![CDATA[christopheJ]]></dc:creator>
				<category><![CDATA[Réflexions]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Il doit faire partie des annonces de JavaOne qui font le plus de bruit sur la blogosphère (peut être plus que JavaFX), c&#8217;est le customer JRE, ce nouveau JRE plus agréable pour le client. Vincent me demandait si j&#8217;avais des infos sur place, puis il a finalement trouvé plus d&#8217;infos par les mailings lists communautaires. Je n&#8217;avais pas répondu car je n&#8217;avais pas trouvé d&#8217;infos sur le moment, et je n&#8217;avais pas saisi l&#8217;importance des [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Il doit faire partie des annonces de JavaOne qui font le plus de bruit sur la blogosphère (peut être plus que JavaFX), c&rsquo;est le customer JRE, ce nouveau JRE plus agréable pour le client.<br />
Vincent <a href="http://blog.developpez.com/index.php?blog=40&amp;title=java_6_update_2_nouveau_model_de_deploye&amp;more=1&amp;c=1&amp;tb=1&amp;pb=1">me demandait</a> si j&rsquo;avais des infos sur place, puis il a finalement trouvé <a href="http://blog.developpez.com/index.php?blog=40&amp;title=java_6_update_2_nouveau_model_de_deploye_1&amp;more=1&amp;c=1&amp;tb=1&amp;pb=1">plus d&rsquo;infos</a> par les mailings lists communautaires. </p>
<p>Je n&rsquo;avais pas répondu car je n&rsquo;avais pas trouvé d&rsquo;infos sur le moment, et je n&rsquo;avais pas saisi l&rsquo;importance des deux minutes correspondant dans le keynote (au milieu du nombre d&rsquo;annonce&#8230;).</p>
<p>Toutefois ce soir je commençais à regarder les sessions que j&rsquo;ai raté et je suis tombé sur le session <a href="http://www28.cplan.com/cc158/sessions_catalog.jsp?ilc=158-1&amp;ilg=english&amp;isort=&amp;isort_type=&amp;is=yes&amp;icriteria1=+&amp;icriteria2=+&amp;icriteria7=+&amp;icriteria9=TS-3290&amp;icriteria8=&amp;icriteria3=">&laquo;&nbsp;Easy Deployment Is Finally Here&nbsp;&raquo;</a> (pour les logins d&rsquo;accès, voir mon <a href="http://blog.developpez.com/index.php?blog=127&amp;title=javaone_retrouvez_les_sessions&amp;more=1&amp;c=1&amp;tb=1&amp;pb=1">post précédent</a>)</p>
<p>Il y avait donc des sessions qui traitaient de ce sujet (on trouve des allusions dans d&rsquo;autres sessions).</p>
<p>Je trouve l&rsquo;interface d&rsquo;installation moins intimidante et le patchage au lieu de l&rsquo;installation multiple de JRE de bonnes choses. Le Java Deployement Toolkit devrait être un réel plus pour les développeurs.<br />
Le Java QuickStart Service est une réel nécessité : la fin du navigateur figé au lancement de l&rsquo;applet, que l&rsquo;on ne sait pas s&rsquo;il est planté, si c&rsquo;est un virus ou si c&rsquo;est normal&#8230;.. Des applications qui se lancent plus rapidement contribueront à faire perdre à Java cette image d&rsquo;applications lourdes et lentes.</p>
<p>Concernant le Java Kernel, je suis plus réservé. Autant on peut effectivement réduire la taille du JRE (par exemple Corba et RMI pourraient être des librairies externes, vu le peu d&rsquo;applications les utilisant), autant le système de download dynamique me pose plus de problème. C&rsquo;est vrai que les gens sont de plus en plus connectés à l&rsquo;internet, mais qu&rsquo;en est-il si l&rsquo;on est déconnecté? Par exemple lors du vol vers San Francisco (plus de 11 heures d&rsquo;avion) j&rsquo;avais prévu de tester la version M9 de NetBeans 6. J&rsquo;ai donc téléchargé le fichier d&rsquo;installation avant de partir, mais je n&rsquo;ai fait l&rsquo;installation qu&rsquo;une fois dans l&rsquo;avion&#8230;. S&rsquo;il m&rsquo;avait manqué un package, je n&rsquo;aurait pas pu en profiter&#8230;..<br />
Ce que je veux dire c&rsquo;est que le JRE fait 15 Mo, ce n&rsquo;est pas tant que cela à télécharger et le fait de partager la chose risque d&rsquo;amener plus de désagréments ponctuels que de réels bénéfices.<br />
Je préfèrerai voir apparaitre un meilleur support du multimédia dans Java (ce qui est d&rsquo;ailleurs prévu).<br />
Alors c&rsquo;est vrai que le runtime Flash ne fait que 2 Mo,  mais de nos jours les gens téléchargent des films complets, alors que représentent 15 Mo? </p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
