<?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>Ze Technology &#187; Technologie</title>
	<atom:link href="http://www.ze-technology.com/category/technologie/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ze-technology.com</link>
	<description>Ze Blog qui parle de Ze Technology. Univers du libre, programmation, société, business...</description>
	<lastBuildDate>Sat, 17 Dec 2011 08:35:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Message au père-noël : de la programmation fonctionnelle, STP !</title>
		<link>http://www.ze-technology.com/2011/12/11/functionnal-programming/</link>
		<comments>http://www.ze-technology.com/2011/12/11/functionnal-programming/#comments</comments>
		<pubDate>Sun, 11 Dec 2011 12:59:35 +0000</pubDate>
		<dc:creator>Adrien Mogenet</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Technologie]]></category>
		<category><![CDATA[chaitin]]></category>
		<category><![CDATA[FP]]></category>
		<category><![CDATA[haskell]]></category>
		<category><![CDATA[lisp]]></category>
		<category><![CDATA[ocaml]]></category>
		<category><![CDATA[omega]]></category>
		<category><![CDATA[programmation fonctionnelle]]></category>

		<guid isPermaLink="false">http://www.ze-technology.com/?p=742</guid>
		<description><![CDATA[.Une guise de petite entrée en matière, laissez moi vous faire compiler une ligne : factorielle n = product[1..n] Un tel snippet semblera peut-être quelque peu ambitieux pour ceux qui ne jurent que par la programmation impérative. PHP, Java, C++ et consort. C&#8217;est pourtant une ligne parfaitement valide en Haskell. Bienvenue dans l&#8217;univers de la [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color:#fff">.</span><br />Une guise de petite entrée en matière, laissez moi vous faire compiler une ligne :<br />
<code>factorielle n = product[1..n]</code></p>
<p>Un tel snippet semblera peut-être quelque peu ambitieux pour ceux qui ne jurent que par la programmation impérative. PHP, Java, C++ et consort. C&#8217;est pourtant une ligne parfaitement valide en <span class="code">Haskell</span>. Bienvenue dans l&#8217;univers de la programmation fonctionnelle. On ne gère plus des changements d&#8217;états, mais des évaluations de fonctions.</p>
<h3>Des bouquins</h3>
<p>C&#8217;est un univers que j&#8217;avais découvert avec <span class="code">OCaml</span> durant mes classes prépa, et voilà que je replonge dedans. La &laquo;&nbsp;faute&nbsp;&raquo; à un excellent bouquin, <em>&laquo;&nbsp;Hasard et complexité en mathématiques&nbsp;&raquo;</em>, écrit par Grégory-J Chaitin, le découvreur du nombre oméga &laquo;&nbsp;Ω&nbsp;&raquo; &#8211; mon nombre préféré, mais ce n&#8217;est pas le sujet ici.</p>
<p style="text-align: center"><img src="http://ecx.images-amazon.com/images/I/51dlBv4ii6L._SL500_AA300_.jpg" alt="Hasard et complexités en mathématiques" /></p>
<p>Dans son ouvrage, Grégory Chaitin avoue son amour sans nom à <span class="code">Lisp</span>, un des plus anciens langages apportant le paradigme de programmation fonctionnelle. Un amour qu&#8217;il a ma foi su fort bien communiquer puisqu&#8217;il ma donné envie de remettre en questions mes développements actuels.</p>
<p>J&#8217;étais assez rebuté par la lisibilité du code en <span class="code">Lisp</span> et après pas mal de lectures auxiliaires, je découvre à quel point <span class="code">Haskell</span> est séduisant autant dans ses concepts que dans sa syntaxe. Gérer des ensembles infinis, ou des nombres à précision potentiellement infinie n&#8217;est sans doute pas une situation que tous les développeurs rencontrent tous les jours, mais c&#8217;est toujours source de nombreux problèmes dès que le cas fait surface. Ceux qui aiment les problématiques de typage seront ravis d&#8217;apprendre que <span class="code">Haskell</span> est, parait-il, muni d&#8217;un système de typage à toute épreuve. J&#8217;aurai sans doute l&#8217;occasion de vous en dire un peu plus une fois mon apprentissage approfondi. Toujours est-il que j&#8217;ai commandé au monsieur tout-en-rouge le livre de la collection d&#8217;O'Reilly :</p>
<p style="text-align: center"><img src="http://akamaicovers.oreilly.com/images/9780596514983/cat.gif" alt="Haskell Oreilly"><br /><a href="http://shop.oreilly.com/product/9780596514983.do">Voir sur O&#8217;Reilly</a></p>
<p>Un autre langage, qui fait sans doute plus parler de lui : <span class="code">Scala</span>. Comme <span class="code">OCaml</span>, il est multi-paradigme. Utilisé notamment chez Twitter, LinkedIn, Foursquare ou d&#8217;autres grands noms de la toile, on peut sûrement expliquer cette nouvelle popularité par son interopérabilité avec <span class="code">Java</span>. Le langage fonctionne en effet tout aussi bien sous forme de scripts que de <em>bytecode</em> compilé à destination de la JVM, et il est en ce sens possible &#8211; et aisé &#8211; d&#8217;exécuter du code <span class="code">Java</span> depuis <span class="code">Scala</span>. Sans avoir encore trop farfouillé, j&#8217;ai tout de même l&#8217;impression que l&#8217;approche est assez différente de ce qu&#8217;on retrouve en <span class="code">Haskell</span> ; j&#8217;ai ainsi constaté que beaucoup de codes ne pouvait s&#8217;offrir le luxe de faire l&#8217;impasse sur le cas des valeurs <span class="code">null</span>. Peut-être du travail à faire du côté des <a href="http://fr.wikipedia.org/wiki/Monade_(informatique)">monades</a> ? J&#8217;en saurai sûrement davantage après une vraie découverte du langage et une lecture approfondie de cette autre idée cadeau :</p>
<p style="text-align: center"><img src="http://akamaicovers.oreilly.com/images/9780596155964/cat.gif" alt="Haskell Oreilly" /><br /><a href="http://shop.oreilly.com/product/9780596155964.do?sortby=publicationDate">Voir sur O&#8217;Reilly</a></p>
<h3>Pourquoi quitter le monde impératif ?</h3>
<p>Pourquoi un attrait si soudain pour la programmation fonctionnelle ? Pourquoi devriez-vous essayer, à votre tour, de voir autrement vos suites de <span class="code">0</span> et de <span class="code">1</span> ? En ce qui me concerne, le livre de Grégory Chaitin fut le véritable élément déclencheur, mais c&#8217;est aussi le désir de <em>remettre plein de choses en question</em>, de continuer à se <em>maintenir éveillé</em> sur ce qui se fait de nouveau (Scala), et peut-être de reprendre <em>davantage de plaisir</em> à développer en utilisant de nouvelles approches lorsque cela est nécessaire.</p>
<p>Je suis par exemple régulièrement amené à développer de nouveaux outils statistiques (des simples moyennes arithmétiques ou harmoniques aux matrices de covariance) et il n&#8217;est pas rare d&#8217;observer que le langage fait parfois partie integrante du problème que de la solution, pour reprendre l&#8217;expression de certains auteurs : dépassement de capacité des types <span class="code">integer</span> et assimilés ; jonglage fréquent entre types signés, non signés, flottants ; impossibilité de redéfinir l&#8217;opérateur &laquo;&nbsp;+&nbsp;&raquo; dans certains langages, etc.</p>
<p>Je ne sais pas vraiment ce que j&#8217;attends de la programmation fonctionnelle dans mon usage quotidien, ou si <span class="code">Haskell</span> sera strictement supérieur à <span class="code">Scala</span> dans mon cas ou s&#8217;il sera juste un complément pertinent. Des concepts tels que les <a href="http://en.wikipedia.org/wiki/Arrow_(computer_science)">flèches</a> me laissent penser que mes systèmes hautement concurrents pourraient s&#8217;en retrouver un peu plus concis et formels qu&#8217;avec les actuels langages impératifs. Alors, je vous donne rendez-vous pour de prochains billets  pour de nouvelles critiques !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ze-technology.com/2011/12/11/functionnal-programming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Baladeurs MP3 côté brocante</title>
		<link>http://www.ze-technology.com/2010/01/09/baladeurs-mp3-cote-brocante/</link>
		<comments>http://www.ze-technology.com/2010/01/09/baladeurs-mp3-cote-brocante/#comments</comments>
		<pubDate>Sat, 09 Jan 2010 09:24:55 +0000</pubDate>
		<dc:creator>Adrien Mogenet</dc:creator>
				<category><![CDATA[Technologie]]></category>

		<guid isPermaLink="false">http://www.ze-technology.com/?p=599</guid>
		<description><![CDATA[Le baladeur MP3 est aujourd&#8217;hui l&#8217;accessoire indispensable de tout mélomane mobile. Mais quel long parcours depuis les années 2000 ! Alors que Gizmodo nous rappelait avec nostalgie leurs caractéristiques dorénavant archaïques, je laisse sur ce blog une part de moi même en dévoilant 2 modèles que j&#8217;ai pu posséder. 1) Mon premier modèle, l&#8217;excellent iBead. [...]]]></description>
			<content:encoded><![CDATA[<p>Le baladeur MP3 est aujourd&#8217;hui l&#8217;accessoire indispensable de tout mélomane mobile. Mais quel long parcours depuis les années 2000 ! Alors que Gizmodo nous rappelait avec nostalgie leurs caractéristiques dorénavant archaïques, je laisse sur ce blog une part de moi même en dévoilant 2 modèles que j&#8217;ai pu posséder.</p>
<p>1) Mon premier modèle, l&#8217;excellent iBead. Petit, grande autonomie, tout se faisait depuis une molette. Il m&#8217;a rendu de bons et loyaux services pendant 2 années lycéennes.</p>
<p style="text-align: center;"><img class=" aligncenter" title="iBead" src="http://img.presence-pc.com/dossiers/flashmp3_comp/ibead.jpg" alt="iBead 128 Mo" width="500" height="182" /></p>
<p>2) Après une baisse conséquente des prix, je n&#8217;ai pas fait l&#8217;impasse sur le Creative Nomad Jukebox ! Une autonomie ridicule assurée par 4 piles, un poids monstre, mais un jukebox presque portable !<br />
<img class="aligncenter size-full wp-image-600" title="Creative Jukebox" src="http://www.ze-technology.com/wp-content/uploads/2010/01/500x_nomad.jpg" alt="Creative Jukebox" width="500" height="375" /></p>
<p>Souvenirs souvenirs&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ze-technology.com/2010/01/09/baladeurs-mp3-cote-brocante/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

