<?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>Pierre Schambacher.com &#187; cv</title>
	<atom:link href="http://www.pierreschambacher.com/blog/tag/cv/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pierreschambacher.com</link>
	<description>Ingénieur en Informatique pour Intellicore</description>
	<lastBuildDate>Fri, 28 May 2010 06:45:08 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Officiellement Intellicore</title>
		<link>http://www.pierreschambacher.com/blog/officiellement-intellicore/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=officiellement-intellicore</link>
		<comments>http://www.pierreschambacher.com/blog/officiellement-intellicore/#comments</comments>
		<pubDate>Sun, 08 Nov 2009 10:20:39 +0000</pubDate>
		<dc:creator>Pierre Schambacher</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[Vie du Site]]></category>
		<category><![CDATA[3615mavie]]></category>
		<category><![CDATA[cv]]></category>
		<category><![CDATA[webobjects]]></category>

		<guid isPermaLink="false">http://www.pierreschambacher.com/?p=238</guid>
		<description><![CDATA[Bonne nouvelle, j&#8217;ai un travail.
Une suite de billets WebObjects est à venir.

Contrat signé
Tout d&#8217;abord une bonne nouvelle pour les personnes qui ont suivi ma recherche d&#8217;emploi: je suis recruté en tant qu&#8217;ingénieur dans la société Intellicore afin d&#8217;y effectuer du développement WebObjects.  J&#8217;ai signé mon contrat et je suis actuellement en période d&#8217;essai. Beaucoup d&#8217;excitation pour ce premier [...]]]></description>
			<content:encoded><![CDATA[<p>Bonne nouvelle, j&#8217;ai un travail.<br />
Une suite de billets WebObjects est à venir.</p>
<p><span id="more-238"></span></p>
<h1>Contrat signé</h1>
<p>Tout d&#8217;abord une bonne nouvelle pour les personnes qui ont suivi ma recherche d&#8217;emploi: je suis recruté en tant qu&#8217;ingénieur dans la société <a title="Intellicore" href="http://www.intellicore.net">Intellicore</a> afin d&#8217;y effectuer du développement WebObjects.  J&#8217;ai signé mon contrat et je suis actuellement en période d&#8217;essai. Beaucoup d&#8217;excitation pour ce premier contrat de travail, je donnerai quelques retours prochainement.<br />
Merci à tous ceux qui ont suivi l&#8217;évolution de ma recherche et m&#8217;ont fourni des contacts.</p>
<h1>Mise à jour de Wordpress et nouveau thème</h1>
<p>Histoire que vous sachiez que je ne laisse pas mon blog à l&#8217;abandon, wordpress vient d&#8217;être mis à jour à la dernière version à savoir 2.8.5 comblant les dernières failles de sécurités découvertes.<br />
Pour fêter mon changement de statut j&#8217;ai décidé de changer le thème du blog. J&#8217;espère que le nouveau vous plait. J&#8217;ai fait quelques modifications afin de corriger quelques traductions manquantes ou enlever des bugs du thème. Si vous remarquez un problème n&#8217;hésitez pas à m&#8217;en faire part j&#8217;essaierai de le corriger dans la mesure du possible.</p>
<h1>Tutoriaux WebObjects</h1>
<p>Actuellement je visionne des <a title="Podcasts WebObjects" href="http://www.wocommunity.org/webobjects_screencasts.html">podcasts</a> mis à disposition par la <a title="Communauté WebObjects" href="http://www.wocommunity.org/">communauté WebObjects</a>. Je suis en train de préparer un premier billet qui devrait arriver dans la journée. Surveillez mon flux RSS ça devrait arriver bientôt <img src='http://www.pierreschambacher.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.pierreschambacher.com/blog/officiellement-intellicore/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pourquoi je souhaite arrêter le Flex</title>
		<link>http://www.pierreschambacher.com/blog/pourquoi-je-souhaite-arreter-le-flex/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=pourquoi-je-souhaite-arreter-le-flex</link>
		<comments>http://www.pierreschambacher.com/blog/pourquoi-je-souhaite-arreter-le-flex/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 20:04:25 +0000</pubDate>
		<dc:creator>Pierre Schambacher</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[cv]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://www.pierreschambacher.com/?p=202</guid>
		<description><![CDATA[Dans ma recherche d&#8217;emploi, nombreux ont été ceux qui m&#8217;ont proposé un poste de développeur Flex, et beaucoup ont été surpris d&#8217;apprendre que je ne souhaitais plus en faire.
Outrage que ce jeune diplômé qui saborde sa plus grosse expérience et voudrait changer d&#8217;horizon !! Voici donc quelques explications pour expliquer ma décision qui pourraient en [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Dans ma recherche d&#8217;emploi, nombreux ont été ceux qui m&#8217;ont proposé un poste de développeur Flex, et beaucoup ont été surpris d&#8217;apprendre que je ne souhaitais plus en faire.<br />
Outrage que ce jeune diplômé qui saborde sa plus grosse expérience et voudrait changer d&#8217;horizon !! Voici donc quelques explications pour expliquer ma décision qui pourraient en guider certains dans le choix de la technologie.</p>
<p style="text-align: justify;"><span id="more-202"></span></p>
<h1 style="text-align: justify;">Expert bien avant l&#8217;heure</h1>
<p style="text-align: justify;">Flex est une technologie jeune qui a le vent en poupe depuis peu. Combien de personnes en France peuvent justifier une expérience professionnelle d&#8217;un an de développement sur ce framework ? Peu.<br />
Aussi malgré le fait que je sorte à peine d&#8217;école, je suis considéré comme &laquo;&nbsp;Expert Flex&nbsp;&raquo;. Les propositions qui m&#8217;ont été faites sur Flex était simples: vous savez des choses, utilisez les ! Mais ça ne colle pas vraiment avec ma vision du premier emploi. Je n&#8217;ai pas l&#8217;âge d&#8217;être un expert, j&#8217;ai envie d&#8217;apprendre des choses, découvrir de nouvelles possibilités. J&#8217;ai envie que mon entreprise m&#8217;apporte quelque chose en retour du travail que je fournis, et non pas livrer mes connaissances sans en avoir en retour, ou trop peu.</p>
<h1 style="text-align: justify;">Outil principalement graphique</h1>
<p style="text-align: justify;">Lorsque l&#8217;on fait une application il y a deux aspects: la logique métier et l&#8217;aspect graphique.<br />
Personnellement c&#8217;est la logique métier qui m&#8217;amuse le plus, la réflexion sur le modèle, les algorithmes, &#8230; Faire les fenêtres ne me dérange pas mais je ne suis pas bon d&#8217;une part, et je n&#8217;ai pas envie de me prendre la tête avec d&#8217;autre part. Le soucis avec Flex est que l&#8217;on passe la plupart de son temps à travailler sur l&#8217;aspect graphique. La principale préoccupation dans le développement en Flex est d&#8217;encastrer correctement les éléments d&#8217;interface tout en trouvant comment contourner les limitations imposées pour arriver à ce que l&#8217;on veut &#8230;<br />
Après, je parle pour moi-même ! De très nombreuses personnes s&#8217;éclatent sans doute à faire des interfaces bien agencées mais ce n&#8217;est pas mon cas, et ça transforme donc souvent Flex en source d&#8217;ennui.</p>
<h1 style="text-align: justify;">Limitations &#8230;</h1>
<p style="text-align: justify;">Je l&#8217;ai abordé précédemment, le framework en version 3 est par endroit vraiment mal foutu. L&#8217;API est pauvre, certaines choses sont mal pensées et on finit rapidement par passer plus de temps à réfléchir sur les difficultés de l&#8217;outil que sur l&#8217;application sur laquelle on travaille&#8230; Depuis quelques jours j&#8217;ai recommencé à faire du Java et je suis en permanence impressionné par la rapidité et la facilité avec laquelle j&#8217;avance. Inutile de luter contre le langage et le framework, au contraire ils aident à aller plus vite !!!<br />
Pour reprendre le point précédent, je dirais qu&#8217;avec Flex on passe 20% de son temps à faire du code métier, 30% de son temps à coder des contournements du framework et 50% de son temps à lutter avec les composants graphiques. Un outil bien peu productif donc au final.</p>
<h1 style="text-align: justify;">Enfermement</h1>
<p style="text-align: justify;">Après avoir vu l&#8217;effet d&#8217;une expérience d&#8217;un an, je n&#8217;ai pas envie de voir comment je serais traité si je venais à avoir une expérience de 5 ans en Flex&#8230; En tant que jeune diplômé j&#8217;ai encore la possibilité facilement de changer d&#8217;horizon car les entreprises tolèrent que je débute, mais d&#8217;ici quelques années ce sera sans doute plus difficile à faire.<br />
J&#8217;évite cet enfermement d&#8217;une part parce que je ne me vois pas faire du Flex toute ma carrière, mais aussi parce que cela peut s&#8217;avérer dangereux. Miser toute ma carrière sur une technologie qui aura peut-être complètement disparu dans quelques années n&#8217;est pas rassurant. Même si Flex est à la mode en ce moment, qui sait ce qu&#8217;il adviendra dans les 5 ans à venir ? Notamment avec son étroite collaboration avec Flash que beaucoup de gens voudraient voir disparaitre de leur navigateur&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pierreschambacher.com/blog/pourquoi-je-souhaite-arreter-le-flex/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Expérience d’un ingénieur sur Adobe Flex</title>
		<link>http://www.pierreschambacher.com/blog/experience-d%e2%80%99un-ingenieur-sur-adobe-flex/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=experience-d%25e2%2580%2599un-ingenieur-sur-adobe-flex</link>
		<comments>http://www.pierreschambacher.com/blog/experience-d%e2%80%99un-ingenieur-sur-adobe-flex/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 17:46:54 +0000</pubDate>
		<dc:creator>Pierre Schambacher</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[cv]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[ingénieur]]></category>

		<guid isPermaLink="false">http://www.pierreschambacher.com/?p=152</guid>
		<description><![CDATA[Après avoir utilisé le framework Flex pendant une année au cours de mon stage d&#8217;ingénieur à Polytech&#8217;Nice Sophia (voir mon CV), je souhaite donner un peu mon avis sur cette technologie, ses avantages, ses inconvénients, points forts et faibles. Comme pour WebObjects, voici une petite description pour les personnes qui ne connaitraient pas Flex.
Adobe Flex [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Après avoir utilisé le framework Flex pendant une année au cours de mon stage d&#8217;ingénieur à Polytech&#8217;Nice Sophia (voir mon <a title="CV Ingénieur Sophia" href="http://www.pierreschambacher.com/cv">CV</a>), je souhaite donner un peu mon avis sur cette technologie, ses avantages, ses inconvénients, points forts et faibles. Comme pour WebObjects, voici une petite description pour les personnes qui ne connaitraient pas Flex.</p>
<p style="text-align: justify;">Adobe Flex est un framework de développement de clients riches (ou clients lourds) compilé vers la machine virtuelle Flash. Pour les personnes connaissant Silverlight, Flex a inspiré Microsoft pour sa création. Les interfaces sont réalisées à l&#8217;aide d&#8217;un langage basé sur XML, le MXML (XAML pour Silverlight) et le comportement est écrit à l&#8217;aide du langage Action Script 3 (.Net pour Silverlight).<br />
Il ne surtout pas considérer Flex comme un outil fait pour les designeurs, c&#8217;est un framework créé pour les développeurs.</p>
<p style="text-align: justify;"><span id="more-152"></span></p>
<h2 style="text-align: justify;">Déploiement</h2>
<p style="text-align: justify;">Comme dit dans l&#8217;introduction, Flex est compilé dans un fichier SWF qui est lu par la machine virtuelle Flash. Pour lire une application Flex, la version 9 du plug-in est au minimum nécessaire, or plus de <a title="Statistiques d'installation des plugins" href="http://riastats.com/" target="_blank">95%</a> des personnes répondent à ce besoin. C&#8217;est un point assez fort du framework, surtout en comparaison avec Silverlight qui peine à passer les 30% (toutes versions confondues).<br />
Étant donné que Flex se base sur le plug-in Flash, vous bénéficiez également d&#8217;une compatibilité entre les différents systèmes d&#8217;exploitation et les différents navigateurs. Pas de mal de tête à assurer le même rendu entre IE6 sur Windows et Safari sur Mac, c&#8217;est le travail des gens d&#8217;Adobe.<br />
Pas de doute ici, c&#8217;est un gros point fort et un très bon travail d&#8217;Adobe qui donne à Flex un avantage certain sur ses concurrents directs. On pourra également remarquer sur l&#8217;utilisation de Flash la mise à disposition d&#8217;une excellente librairie pour créer des animations de l&#8217;interface qui donnent un cachet très professionnel aux applications.</p>
<h2 style="text-align: justify;">ActionScript et API</h2>
<p style="text-align: justify;">Le comportement et le business d&#8217;une application Flex est décrit dans le langage ActionScript 3. Pour le langage en lui-même, il est souple et propose un certain nombre de fonctionnalités puissantes et pratiques, je citerais en exemple la possibilité d&#8217;appeler une méthode sur une variable à l&#8217;aide de l&#8217;opérateur [] comme suit: maVariable["maMethode"].<br />
En revanche on peut vraiment reprocher à Adobe la pauvreté de l&#8217;API. Pour l&#8217;anecdote, sachez que la méthode addAll permettant d&#8217;ajouter tous les éléments d&#8217;un tableau dans un autre tableau vient d&#8217;être implémentée dans la version 3.4 du framework &#8230; Sachez également que la gestion de dictionnaire est extrêmement réduite, impossible par exemple de récupérer l&#8217;ensemble des clés d&#8217;un dictionnaire &#8230;<br />
Il est certes possible d&#8217;écrire soit-même toutes ses classes, mais d&#8217;une part on n&#8217;a pas forcément envie de coder toutes les classes de base lorsque l&#8217;on s&#8217;attaque à un projet ambitieux et d&#8217;autre part, si Adobe comble le manque un jour il faudra faire le remplacement partout.</p>
<h2 style="text-align: justify;">Modèle MVC</h2>
<p style="text-align: justify;">A première vue, Flex semble proposer une bonne architecture pour respecter le pattern Modèle-Vue-Contrôleur avec les interfaces et leur comportement décrites en MXML, des classes de comportement et des classes de modèle. Cependant en pratique, on a rapidement tendance à mélanger la vue et le contrôleur. En effet il est possible d&#8217;écrire de l&#8217;ActionScript dans le fichier MXML et la tentation est grande d&#8217;y écrire le code business de la vue.</p>
<p style="text-align: justify;">Quelques framework tentent d&#8217;imposer de bonnes pratiques (je citerais Cairngorn et Tide) mais ils ne sont pas toujours simple à mettre en place. En pratique il devient également difficile de maintenir du code propre au sein d&#8217;un projet de grande envergure. Le projet peut être découpé en modules qui sont chargés à la demande, mais on arrive assez facilement à des dépendances inter-modules ou de la recopie de code pour effectuer la même action dans deux endroits différents mais inaccessibles entre eux.</p>
<h2 style="text-align: justify;">Asynchronisme et thread unique</h2>
<p style="text-align: justify;">Le plug-in Flash est presque mono-threadé. Je dis presque car en réalité un deuxième thread existe, qui attend les réponses aux requêtes effectuées vers des adresses externes. De cette situation ressort deux choses.</p>
<p style="text-align: justify;">Toute demande de données est asynchrone. La demande est déposée vers le thread de communication qui propagera un évènement lorsque celle-ci sera complétée. S&#8217;il n&#8217;est pas dérangeant que vos données arrivent de façon asynchrone, pas de soucis mais dans le cas où vous aimeriez attendre d&#8217;avoir concrètement les informations, vous allez commencer à rencontrer des difficultés.</p>
<p style="text-align: justify;">Il est impossible d&#8217;effectuer deux actions à la fois, cela incluant le dessin de l&#8217;interface ou le traitement d&#8217;un clic souris. Par conséquent, si vous lancez un traitement lourd de calculs, l&#8217;interface sera figée. Avantage en contrepartie, vous n&#8217;avez pas du tout à vous préoccupé de problèmes de validité des données entres threads ou de deadlocks, cela est impossible !</p>
<h2 style="text-align: justify;">Bindings</h2>
<p style="text-align: justify;">Il est possible dans les interfaces MXML de réaliser des &laquo;&nbsp;bindings&nbsp;&raquo; entre une variable ActionScript et une propriété d&#8217;un élément graphique. Une fois le binding mis en place, la modification de la valeur de la variable entrainera la modification de la valeur de la propriété de l&#8217;élément graphique. Cela est très pratique puisque le mécanisme permet de réaliser à vitesse grand V l&#8217;écran de visualisation d&#8217;un objet Business en &laquo;&nbsp;bindant&nbsp;&raquo; sur ses différents attributs.</p>
<p style="text-align: justify;">Dans la version 3 de Flex quelques embuches appaissent pour mettre en place des double bindings, c&#8217;est à dire que les modifications de valeur s&#8217;effectuent dans les deux sens. En effet, le premier binding mis en place aura pour effet d&#8217;effacer la valeur d&#8217;une des deux variables avec la valeur de l&#8217;autre. Dans le cas d&#8217;un objet business et un objet graphique, il vaut mieux effacer la valeur de la propriété graphique avec celle de l&#8217;objet business et non pas le contraire &#8230; Ce petit problème a été corrigé dans Flex 4 qui sortira prochainement.</p>
<h2 style="text-align: justify;">Flex est un outil</h2>
<p style="text-align: justify;">En conclusion de l&#8217;article et avant de tirer avantages et inconvénient, j&#8217;aimerais donner un avis très subjectif sur le framework. Flex un outil jeune mais toutefois puissant pour développer rapidement les applications pour lesquelles il a été créé. Et je vais insister sur ce point.</p>
<p style="text-align: justify;">A mon idée, Flex est parfait pour des applications simples, avec peu de code business. La manière classique de travailler va être d&#8217;appeler un WebService ou une page Web, parser les résultats pour remplir des variables sur lesquelles l&#8217;interface est bindée. Le résultat sera obtenu rapidement, propre, et joliment animée.</p>
<p style="text-align: justify;">En revanche, Flex n&#8217;est pas fait pour une lourde application avec de nombreuses implications de code business entre les écrans et des grappes d&#8217;objets à récupérer, modifier, renvoyer, etc. Pour avoir tenté d&#8217;utiliser le framework pour ce type d&#8217;application, je peux dire qu&#8217;on passe plus de temps à lutter contre Flex qu&#8217;à lutter contre les difficultés de l&#8217;application elle-même.</p>
<p style="text-align: justify;">Comme beaucoup d&#8217;autres framework, Flex est un outil. Flex est un tournevis cruciforme. Si votre application est faite de vis cruciformes, ce sera un excellent outil et vous allez aboutir rapidement à un résultat de qualité. Si en revanche vous devez fabriquer une chaise avec des clous, vous êtes condamné à taper sur les clous avec le manche, et au final vos clous seront plantés de travers, votre chaise sera bancale et s&#8217;effondrera à la troisième personne qui tentera de s&#8217;assoir dessus et enfin vous vous serez fait mal à la main.</p>
<p style="text-align: justify;">Mais assez parlé et voyons le bilan avantages/inconvénients</p>
<h2 style="text-align: justify;">Avantages</h2>
<ul>
<li>Compatibilité OS/Navigateur</li>
<li>Plug-In flash très répandu (95%)</li>
<li>Animations simple à utiliser et très classes</li>
<li>Pas de problématique de programmation concurrente</li>
<li>Mécanisme de binding très pratique</li>
</ul>
<h2 style="text-align: justify;">Inconvénients</h2>
<ul>
<li>Inconvénients de Flash (vous devriez les trouver facilement sur d&#8217;autres sites)</li>
<li>Pauvreté de l&#8217;API ActionScript</li>
<li>Trop grande facilité de mélanger Vue et Contrôleur</li>
<li>Impossibilité d&#8217;utiliser la programmation concurrente</li>
<li>Obligation de récupérer les données de façon asynchrone</li>
<li>Doubles bindings laborieux (résolu normalement dans Flex 4)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.pierreschambacher.com/blog/experience-d%e2%80%99un-ingenieur-sur-adobe-flex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Expérience d&#8217;un ingénieur sur WebObjects</title>
		<link>http://www.pierreschambacher.com/blog/experience-dun-ingenieur-sur-webobjects/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=experience-dun-ingenieur-sur-webobjects</link>
		<comments>http://www.pierreschambacher.com/blog/experience-dun-ingenieur-sur-webobjects/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 16:04:21 +0000</pubDate>
		<dc:creator>Pierre Schambacher</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[cv]]></category>
		<category><![CDATA[ingénieur]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[webobjects]]></category>

		<guid isPermaLink="false">http://www.pierreschambacher.com/?p=141</guid>
		<description><![CDATA[Utilisant WebObjects depuis maintenant 6 mois dans le cadre de mon stage ingénieur sur Sophia (voir mon CV), j&#8217;aimerais revenir sur cette expérience et donner mon avis sur cette technologie assez peu connue. Pour ceux qui ne connaitraient que de nom ce framework, en voici une petite description.
WebObjects est un framework initialement développé en Objective [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Utilisant WebObjects depuis maintenant 6 mois dans le cadre de mon stage ingénieur sur Sophia (voir mon <a title="CV ingénieur WebObjects Sophia" href="http://www.pierreschambacher.com/cv" target="_self">CV</a>), j&#8217;aimerais revenir sur cette expérience et donner mon avis sur cette technologie assez peu connue. Pour ceux qui ne connaitraient que de nom ce framework, en voici une petite description.</p>
<p style="text-align: justify;">WebObjects est un framework initialement développé en Objective C par la société NeXT de Steve Jobs qui sera ensuite rachetée par Apple. Il est constitué d&#8217;une couche basse d&#8217;abstraction de la base de donnée appelée EOModel, d&#8217;une architecture de gestion de cache et de persistance et d&#8217;un moteur de template. WebObjects passera progressivement d&#8217;Objective C à Java vers l&#8217;an 2000. Bien que différents par de nombreux points, il est comparable aux technologies J2EE.</p>
<p style="text-align: justify;">Je tiens à signaler que mes commentaires sont faits sur la version 5.3 de WebObjects et je ne sais pas si certaines choses n&#8217;ont pas été corrigées en version 5.4.</p>
<p style="text-align: justify;"><span id="more-141"></span></p>
<h2 style="text-align: justify;">Coût de formation et cadre de développement</h2>
<p style="text-align: justify;">Soyons assez clair, le coup d&#8217;entrée de WebObjects est assez élevé. Le framework a été pensé pour réaliser des projets d&#8217;entreprise et vous ne pourrez pas sortir une page de démonstration en moins d&#8217;une heure comme le proposent des plateformes de développement comme Google App Engine. En revanche, une fois formé à l&#8217;architecture logiciel vous disposerez d&#8217;un cadre de programmation assez stricte dans la forme, mais souple dans les possibilités. Comprenez que vous pourrez faire à peu près n&#8217;importe quoi, mais pas n&#8217;importe comment. À mon sens, c&#8217;est un avantage puisque vous êtes à peu près certain que les personnes utilisant WebObjects vont travailler relativement proprement, contrairement à d&#8217;autres technologies où il est possible de faire tout et n&#8217;importe quoi, surtout n&#8217;importe quoi.</p>
<h2 style="text-align: justify;">Tenue de charge et modularité</h2>
<p style="text-align: justify;">WebObjects est designé pour être capable de gérer de grandes charges, aussi les données sont toujours chargées progressivement au moment où elles sont réellement nécessaires. Au niveau du fonctionnement lui-même, le framework est construit autour de dictionnaires de données. Par exemple pour les attributs d&#8217;un objet, les getters vont simplement chercher la valeur dans un dictionnaire à partir du nom de l&#8217;attribut. C&#8217;est de ce mécanisme que vient toute la souplesse de WebObjects puisqu&#8217;il est possible de faire évoluer dynamiquement le modèle pendant l&#8217;exécution. Même si les occasions d&#8217;utiliser une telle possibilité sont assez rares, elles sont quasiment impossible à réaliser autrement.</p>
<h2 style="text-align: justify;">Mélange d&#8217;API</h2>
<p style="text-align: justify;">Comme je l&#8217;ai dis dans mon introduction, WebObjects reposait initialement sur le langage Objective C, mais a été migré vers le langage Java depuis plusieurs années maintenant. Cependant les choix qui ont été faits me laissent quelque peu sceptiques. En effet afin que les personnes ayant travaillé avec l&#8217;Objective C ne perdent pas leurs connaissances acquises, les classes de  base de NeXT ont été portées en Java. Un ingénieur d&#8217;expérience sur l&#8217;API Java sera donc un peu perdu face aux NSArray, NSMutableArray et autres NSDictionnary. Pire encore, ces classes implémentent des interfaces de l&#8217;API Java, mais n&#8217;implémentent pas les méthodes qu&#8217;elles apportent, se contentant de propager une exception ! Assez perturbant donc et pouvant se révéler source de surprises.</p>
<p style="text-align: justify;"><strong>[MISE A JOUR]</strong><br />
On me signale que le problème des exceptions sur les méthodes ont été corrigé en version 5.4 sauf dans les cas où il y avait une raison. Je m&#8217;explique, en WebObjects il éxiste deux types de tableaux, les NSArray en lecture seul et les NSMutableArray en lecture écriture. Bien évidemment la méthode ADD n&#8217;a aucun sens dans un NSArray qui ne supporte que des GET. En revanche la méthode ADD ne NSMutableArray ne demande plus d&#8217;utiliser à la place la méthode addObject.<br />
Il reste toutefois que quelqu&#8217;un ayant utilisé un certain temps les classes de la JRE de base, ArrayList et autres, aura besoin d&#8217;un petit temps d&#8217;adaptation.</p>
<h2 style="text-align: justify;">Trouver des personnes</h2>
<p style="text-align: justify;">Abordons finalement un point assez critique: les ressources. Il sera difficile à la plupart des personnes ayant des années d&#8217;expérience sur des plateformes J2EE de se former à WebObjects en raison des différences conceptuelles et à l&#8217;API s&#8217;écartant de celle de Java. Le coup de formation est assez élevé et l&#8217;intégration à des processus d&#8217;entreprises comme Maven, bien qu&#8217;existant, peut s&#8217;avérer coûteuse en temps.<br />
En comparaison d&#8217;autres framework, WebObjects souffre d&#8217;une très faible documentation. Le site d&#8217;Apple propose une documentation technique, mais très peu d&#8217;autres sites proposent des exemples ou des explications différentes de la version officielle. On se retrouve donc facilement le bec dans l&#8217;eau devant un problème dont la solution n&#8217;est pas documentée sur le site d&#8217;Apple. Une solution existe: la mailing list qui est fréquentée par des experts de la technologie, mais on ne peut évidemment pas abuser et questionner ces personnes en permanence.<br />
Il est très profitable d&#8217;avoir au sein de son entreprise une personne expérimentée en WebObjects donc, cependant il s&#8217;agit d&#8217;une ressource rare. Lors d&#8217;un recensement récent, 800 développeurs ont été dénombrés dans le Monde, dont 40 en France. Autant dire qu&#8217;il est difficile de se procurer un &laquo;&nbsp;expert&nbsp;&raquo; dans le domaine, sachant que connaissant la technologie, je ne me considère pas du tout comme un expert, mais un simple utilisateur.</p>
<p style="text-align: justify;">
<p style="text-align: justify;">En conclusion, voici un petit récapitulatif de ce billet en avantages/inconvénients.</p>
<h2 style="text-align: justify;">Avantages</h2>
<ul>
<li>Framework avec architecture</li>
<li>Développement propre</li>
<li>Flexible</li>
<li>Pensé pour tenir la charge</li>
</ul>
<h2>Inconvénients</h2>
<ul>
<li>Peu de ressources et très peu d&#8217;experts</li>
<li>Mélange d&#8217;API Java/Objective C</li>
<li>Manque de documentation tierce</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.pierreschambacher.com/blog/experience-dun-ingenieur-sur-webobjects/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Ouverture du Web-CV</title>
		<link>http://www.pierreschambacher.com/blog/ouverture-du-web-cv/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=ouverture-du-web-cv</link>
		<comments>http://www.pierreschambacher.com/blog/ouverture-du-web-cv/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 09:36:32 +0000</pubDate>
		<dc:creator>Pierre Schambacher</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[Vie du Site]]></category>
		<category><![CDATA[cv]]></category>

		<guid isPermaLink="false">http://www.pierreschambacher.com/?p=44</guid>
		<description><![CDATA[Bonjour à tous.
Comme vous pourrez l&#8217;avoir deviné, je m&#8217;appelle Pierre Schambacher. J&#8217;ai 22 ans et je termine actuellement le stage de fin d&#8217;études de mon école Polytech&#8217;Nice Sophia. C&#8217;est le 1er Octobre de cette année que je serai diplômé et disponible sur le marché du travail, et c&#8217;est afin de trouver un emploi que j&#8217;ouvre [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Bonjour à tous.</p>
<p style="text-align: justify;">Comme vous pourrez l&#8217;avoir deviné, je m&#8217;appelle Pierre Schambacher. J&#8217;ai 22 ans et je termine actuellement le stage de fin d&#8217;études de mon école Polytech&#8217;Nice Sophia. C&#8217;est le 1er Octobre de cette année que je serai diplômé et disponible sur le marché du travail, et c&#8217;est afin de trouver un emploi que j&#8217;ouvre ce site.</p>
<p style="text-align: justify;">Sur ce site vous trouverez différentes pages pouvant vous être utiles:</p>
<ul style="text-align: justify;">
<li>Le <a title="CV Ingénieur Informatique" href="http://www.pierreschambacher.com/cv/">CV</a>, une version Web où vous pourrez voir mes expériences professionnelles et mes diplômes, ainsi que télécharger une version imprimable au format classique.</li>
<li>Les <a title="Projets de Pierre Schambacher" href="http://www.pierreschambacher.com/projets/">Projets</a>, qui ne sont pas des expériences professionnelles mais des projets réalisés dans le cadre de mes études, ou certain projets personnels travaillés sur mon temps libre.</li>
<li>Le <a title="Profil de Pierre Schambacher" href="http://www.pierreschambacher.com/profil/">Profil</a>, où je tente de décrire ma personnalité dans mon travail si vous vous intéressez au moins autant au comportement qu&#8217;aux compétences.</li>
<li>Les <a title="Contacts de Pierre Schambacher" href="http://www.pierreschambacher.com/contacts/">Contacts</a> afin de pouvoir me joindre, par téléphone, mail, ou par un réseau social. Merci de n&#8217;utiliser ces contacts que dans un but sérieux.</li>
</ul>
<p style="text-align: justify;">Comme vous pourrez le voir, je suis ouvert à beaucoup de technologies (Java, C#, Flex, Objective C, &#8230;). Géographiquement parlant, je suis véhiculé et peux travailler sur Sophia Antipolis, Nice, Monaco ou leurs environs.</p>
<p style="text-align: justify;">Merci à vous pour votre visite. N&#8217;hésitez pas à laisser un commentaire afin de me donner vos impressions sur le site afin que je puisse l&#8217;améliorer.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pierreschambacher.com/blog/ouverture-du-web-cv/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
