Derniers messages sur Zeste de Savoirhttps://zestedesavoir.com/forums/2014-07-27T00:39:03+02:00Les derniers messages parus sur le forum de Zeste de Savoir.Autour des frameworks web, message #119122014-07-27T00:39:03+02:00puffy-freshy/@puffy-freshyhttps://zestedesavoir.com/forums/sujet/819/autour-des-frameworks-web/?page=1#p11912<p>Le problème quand les développeurs web comparent leurs frameworks, c'est qu'ils changent de <em>buzzwords</em> très souvent, et qu'il faudra donc souvent changer les colonnes du tableau. <img alt=":)" src="/static/smileys/smile.png"> </p>Autour des frameworks web, message #117582014-07-26T12:43:25+02:00artragis/@artragishttps://zestedesavoir.com/forums/sujet/819/autour-des-frameworks-web/?page=1#p11758<p>Un framework est l'union d'une <em>library</em> (et non librairie, je vais pas au furet pour coder un site web), ou peut appeler ça aussi <abbr title="Application Programming Interface">API</abbr> et d'un ensemble de convention et d'obligations de codage.</p>
<p>Dans les framework que j'aime bien il y a Symfony (PHP) qui est full MVC et qui avec un plugin sympa peut faire du RESTfull.<br>
J'aime aussi beaucoup (et je suis en train de coécrire un tuto à ce propos) ASP.NET MVC, qui est un projet <strong>open source</strong> portable et extrêmement puissant. D'autant qu'il contient de base des liens avec tous les outils de .NET pour faire du TU, les ORM, l'asynchrone, le subscribe/publish…</p>Autour des frameworks web, message #110952014-07-24T12:27:15+02:00Syl/@Sylhttps://zestedesavoir.com/forums/sujet/819/autour-des-frameworks-web/?page=1#p11095<p>On revient à ma première réponse qui dit que tout le monde n'est pas d'accord entre ces termes techniques. Donc avant de faire le tableau, il faut poser des définitions pour éviter les trolls "nan mais ça c'est pas un framework c'est une librairie" toussa.</p>Autour des frameworks web, message #110922014-07-24T12:22:46+02:00Javier/@Javierhttps://zestedesavoir.com/forums/sujet/819/autour-des-frameworks-web/?page=1#p11092<p>Oui pour les frameworks côté client, j'ai volontairement gonflé la liste avec underscore alors qu'en effet c'est une bibliothèque.</p>
<p>Pour le reste :
En fait Java EE c'est carrément une spécification et pas du tout un framework (on va retrouver des frameworks pour Java EE type Spring, Seam+JSF, Struts, …), et Sinatra une DSL (bonjour pour le classer).</p>
<p>Vert.x est une plateforme multi-langage (bonjour pour la classer elle aussi). RoR est vraiment un framework pour le coup.</p>
<p>Comment on se débrouille avec ça ? Comme dans le benchmark on mélange tout ? Ca va porter à confusion, non ?</p>
<p>Encore pour Vert.x ou Sinatra on peut s'abstenir d'en parler même si c'est dommage, mais pour node on peut vraiment pas passer à côté. Et j'ai pas parlé de Gemini, undertow, grizzly (tous basés sur la techno Java NIO).</p>
<p>Même dans les docs c'est pas très clair…</p>
<p>Si on prend <a href="http://bottlepy.org/docs/dev/index.html">bottle</a> qui se définit comme un framework, et qu'on regarde l'exemple de code : </p>
<table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3
4
5
6
7</pre></div></td><td class="code"><div class="codehilite"><pre><span class="kn">from</span> <span class="nn">bottle</span> <span class="kn">import</span> <span class="n">route</span><span class="p">,</span> <span class="n">run</span><span class="p">,</span> <span class="n">template</span>
<span class="nd">@route</span><span class="p">(</span><span class="s">'/hello/<name>'</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">index</span><span class="p">(</span><span class="n">name</span><span class="p">):</span>
<span class="k">return</span> <span class="n">template</span><span class="p">(</span><span class="s">'<b>Hello {{name}}</b>!'</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="n">name</span><span class="p">)</span>
<span class="n">run</span><span class="p">(</span><span class="n">host</span><span class="o">=</span><span class="s">'localhost'</span><span class="p">,</span> <span class="n">port</span><span class="o">=</span><span class="mi">8080</span><span class="p">)</span>
</pre></div>
</td></tr></table>
<p>Et qu'on compare ça avec Sinatra</p>
<table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3
4
5</pre></div></td><td class="code"><div class="codehilite"><pre><span class="nb">require</span> <span class="s1">'sinatra'</span>
<span class="n">get</span> <span class="s1">'/'</span> <span class="k">do</span>
<span class="s1">'Hello world!'</span>
<span class="k">end</span>
</pre></div>
</td></tr></table>
<p>Ou Vert.x-Groovy</p>
<table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3</pre></div></td><td class="code"><div class="codehilite"><pre><span class="n">vertx</span><span class="o">.</span><span class="na">createHttpServer</span><span class="o">().</span><span class="na">requestHandler</span> <span class="o">{</span> <span class="n">request</span> <span class="o">-></span>
<span class="n">println</span> <span class="err">“</span><span class="n">hello</span> <span class="n">world</span><span class="err">”</span>
<span class="o">}.</span><span class="na">listen</span><span class="o">(</span><span class="mi">8080</span><span class="o">,</span><span class="err">”</span><span class="n">localhost</span><span class="err">”</span><span class="o">)</span>
</pre></div>
</td></tr></table>
<p>Là on voit déjà un "createHttpServer" qui indique qu'il sait faire plus que ça (sockets, …)</p>
<p>Mais sinon bah… Ça se ressemble quand même fortement.</p>
<p>Bref, pas gagné cette affaire et je suis preneur de toute aide à l'organisation de ce joli boxon. Et aussi, pensez à dresser la liste des trucs (puisque finalement on sait pas comment les appeler) que vous avez essayé ou maîtrisez ça aidera sans doute à y voir plus clair.</p>
<p>EDIT : est-ce-qu'on peut partir sur : "une plateforme embarque un serveur web" vs. "un framework produit du code exécutable sur un serveur web" mais même ça ça me paraît pas tout à fait juste.</p>Autour des frameworks web, message #110862014-07-24T12:17:48+02:00elyppire/@elyppirehttps://zestedesavoir.com/forums/sujet/819/autour-des-frameworks-web/?page=1#p11086<p>Côté Perl il y a <a href="http://www.catalystframework.org">Catalyst</a>. Je vais essayer de sortir un article introductif là dessus.</p>Autour des frameworks web, message #110822014-07-24T12:01:57+02:00Myssdii/@Myssdiihttps://zestedesavoir.com/forums/sujet/819/autour-des-frameworks-web/?page=1#p11082<p>Des vrais frameworks client web, il n'y en a pas énormément, les deux plus connus et utilisés étant Backbone et AngularJS (Underscore n'est pas un framework, mais une librairie). On doit pouvoir rajouter EmberJS dedans (j'ai pas trop touché à celui-là pour ma part), après je n'en connais pas d'autre vraiment important.</p>
<p>Côté serveur, ne serait-ce qu'en PHP il y en a un bon paquet par contre…</p>
<p>@Javier :</p>
<ul>
<li>Symfony = framework</li>
<li>NodeJS = plateforme</li>
<li>Java EE = plateforme</li>
<li>Ruby on Rails (pas touché)</li>
<li>Django = framework</li>
<li>Vert.x (pas touché)</li>
<li>Sinatra (pas touché)</li>
</ul>Autour des frameworks web, message #110792014-07-24T11:57:01+02:00Javier/@Javierhttps://zestedesavoir.com/forums/sujet/819/autour-des-frameworks-web/?page=1#p11079<p>@Syl je pense que la différence la plus importante à faire dans ce contexte c'est plateforme vs. framework.</p>
<p>Pour l'exemple, si on essaie de classer ces éléments (chacun d'eux pouvant faire l'objet d'une ligne dans le tableau) dans différentes catégories :</p>
<ul>
<li>
<p><a href="http://nodejs.org">nodejs</a></p>
</li>
<li>
<p><a href="http://symfony.com/">Symfony</a></p>
</li>
<li>
<p><a href="http://fr.wikipedia.org/wiki/Java_EE">Java EE</a></p>
</li>
<li>
<p><a href="http://rubyonrails.org/">Ruby on Rails</a></p>
</li>
<li>
<p><a href="https://www.djangoproject.com/">Django</a></p>
</li>
<li>
<p><a href="http://vertx.io/">Vert.x</a></p>
</li>
<li>
<p><a href="http://www.sinatrarb.com/">Sinatra</a></p>
</li>
</ul>
<p>Y'a des frameworks là-dedans, mais pas que (et pour Sinatra ça commence à devenir complexe).</p>
<p>Si on prend ce qu'ils appellent framework sur ce <a href="http://www.techempower.com/benchmarks/#section=data-r9&hw=peak&test=json">benchmark</a> on voit qu'il y a un savant mélange plateforme / framework.</p>Autour des frameworks web, message #110732014-07-24T11:35:55+02:00Talus/@Talushttps://zestedesavoir.com/forums/sujet/819/autour-des-frameworks-web/?page=1#p11073<p>L'idée des tableaux utilisés par le sujet du forum multimédia est sexy je trouve. En info complémentaire, je verrai bien les suivantes (liste à etoffer évidemment) : </p>
<ul>
<li>le langage (PHP, Ruby, … etc)</li>
<li>la dernière version</li>
<li>est-ce encore maintenu ? </li>
<li>éventuellement le "niveau" requis pour bien saisir les tenants et aboutissants du framework</li>
<li>Liste des principaux support (je suis pas sûr de l'intérêt du truc ceci dit)</li>
<li>License</li>
</ul>
<p>C'est un peu pêle-mêle, mais voilà. Aussi, comme tu le mentionnes, faudrait citer aussi les frameworks "clients" (Backbone, … etc), parce qu'ils <strong>sont</strong> des frameworks au final. Par contre, séparer les deux tableaux (une liste des framework serveurs, et une liste des frameworks clients) ? </p>
<p>Pour la liste des libs, je suis pas tout à fait sûr que c'aurait sa place dans le même post-it / topic, surtout vu le nombre incommensurable de libs…</p>Autour des frameworks web, message #110722014-07-24T11:35:15+02:00Syl/@Sylhttps://zestedesavoir.com/forums/sujet/819/autour-des-frameworks-web/?page=1#p11072<p>Je pense qu'il faudrait commencer par proposer des définitions de ces mots qui ne sont pas les mêmes pour tous : framework, library, librairie, bibliothèque, plugins, etc. Ensuite classer par langage de développement, ou dans l'autre sens.</p>Autour des frameworks web, message #110592014-07-24T11:05:59+02:00Javier/@Javierhttps://zestedesavoir.com/forums/sujet/819/autour-des-frameworks-web/?page=1#p11059<p>Hello tout le monde,</p>
<p>Je me demandais si dresser la liste des frameworks webs qu'on connaît, emploie et sur lesquels on a un minimum de compétences sur ZdS aurait un intérêt, un peu à l'instar de ce qui est fait <a href="http://zestedesavoir.com/forums/sujet/653/listing-de-moteurs-de-jeux-2d-et-3d/">dans ce sujet</a></p>
<p>C'est une question qui revient souvent chez les plus-trop-débutants que de se demander quel framework est le mieux adapté à ce qu'ils souhaitent faire, le soucis, c'est que framework ça reste quand même vague et on va tomber dans des débats sans fin. Typiquement nodejs, Sinatra, Vert.x sont plutôt des plateformes que des frameworks. Ou alors est-ce-que ce sont des frameworks à proprement parler ? Qu'en pensez-vous ?</p>
<p>Un point d'entrée pour la réflexion : la <a href="http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks">liste sur Wikipédia</a> </p>
<p>Faîtes-moi part de vos idées, si on arrive à un consensus on essaiera de créer un post-it clair pour présenter tout ça, avec notamment comme ils l'ont fait dans le topic multimédia une "liste à notre sauce" surtout en indiquant ce pour quoi les frameworks sont bons ou non. Qui les utilise et pourquoi c'est adapté dans leur cas.</p>
<p>EDIT : j'ai parlé de framework, en fait on pourrait carrément élargir à la pile technologique (eg pour prendre les piles les plus différentes possible : PHP+Symfony, Scala+Vert.x). Ca mériterait presque un article rédigé par l'ensemble de la communauté en fait :\</p>
<p>EDIT² : la même question va se poser pour les frameworks côté client : Underscore, Backbone, Angular, …</p>