Repository with sources and generator of https://larlet.fr/david/ https://larlet.fr/david/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482
  1. <!doctype html>
  2. <html lang=fr>
  3. <head>
  4. <!-- Always define the charset before the title -->
  5. <meta charset=utf-8>
  6. <title>★ Choisir un framework web — Biologeek — David Larlet</title>
  7. <!-- Define a viewport to mobile devices to use - telling the browser to assume that the page is as wide as the device (width=device-width) and setting the initial page zoom level to be 1 (initial-scale=1.0) -->
  8. <meta name="viewport" content="width=device-width, initial-scale=1"/>
  9. <!-- Fake favicon, to avoid extra request to the server -->
  10. <link rel="icon" href="data:;base64,iVBORw0KGgo=">
  11. <link type="application/atom+xml" rel="alternate" title="Feed" href="/david/log/" />
  12. <link rel="manifest" href="/manifest.json">
  13. <link rel="stylesheet" href="/static/david/css/larlet-david-_J6Rv.css" data-instant-track />
  14. <noscript>
  15. <style type="text/css">
  16. /* Otherwise fonts are loaded by JS for faster initial rendering. See scripts at the bottom. */
  17. body {
  18. font-family: 'EquityTextB', serif;
  19. }
  20. h1, h2, h3, h4, h5, h6, time, nav a, nav a:link, nav a:visited {
  21. font-family: 'EquityCapsB', sans-serif;
  22. font-variant: normal;
  23. }
  24. </style>
  25. </noscript>
  26. <!-- Canonical URL for SEO purposes -->
  27. <link rel="canonical" href="https://larlet.fr/david/biologeek/archives/20060907-choisir-un-framework-web">
  28. </head>
  29. <body>
  30. <div>
  31. <header>
  32. <nav>
  33. <p>
  34. <small>
  35. Je suis <a href="/david/" title="Profil public">David Larlet</a>, <a href="/david/pro/" title="Activité professionnelle">artisan</a> du web qui vous <a href="/david/pro/accompagnement/" title="Activité d’accompagnement">accompagne</a><span class="more-infos"> dans l’acquisition de savoirs pour concevoir des <a href="/david/pro/produits-essentiels/" title="Qu’est-ce qu’un produit essentiel ?">produits essentiels</a></span>. <span class="more-more-infos">Discutons ensemble d’une <a href="/david/pro/devis/" title="En savoir plus">non-demande de devis</a>.</span> Je partage ici mes <a href="/david/blog/" title="Expériences bienveillantes">réflexions</a> et <a href="/david/correspondances/2017/" title="Lettres hebdomadaires">correspondances</a>.
  36. </small>
  37. </p>
  38. </nav>
  39. </header>
  40. <section>
  41. <h1 property="schema:name">★ Choisir un framework web</h1>
  42. <article typeof="schema:BlogPosting">
  43. <div property="schema:articleBody">
  44. <img src="/static/david/biologeek/images/logos/frameworks_web.png" alt="vignette" style="float:left; margin: 0.5em 1em;" property="schema:thumbnailUrl" />
  45. <p>Depuis l'annonce faite par Guido concernant sa préférence pour Django il y a deux semaines, il n'y a pas une journée sans article comparant les frameworks web Python ou comparant Django à RoR ou... bref. C'est intéressant car ça fait monter le buzz et ces frameworks méritent d'être connus mais le choix d'un framework web se fait bien souvent grâce à d'autres critères peu évoqués lors de ces comparatifs.</p>
  46. <h2>Critères techniques</h2>
  47. <p>Le tout premier point à considérer est qu'un framework web est un outil. Le travail du technicien n'est pas de comprendre cet outil mais de savoir s'en servir. <strong>Un bon framework web est donc avant tout un framework qui sait se faire oublier</strong>. Mais attention, le terme d'outil n'est pas vraiment représentatif, en fait c'est plus une caisse à outils qu'il faut pouvoir adapter à ses besoins. Pour y arriver, deux conditions sont nécessaires&nbsp;:</p>
  48. <ul>
  49. <li>une bonne documentation pour connaître et savoir utiliser les outils qui sont déjà présents dans la caisse&nbsp;;</li>
  50. <li>une caisse assez grande pour permettre d'étendre sa panoplie d'outils pré-intégré au besoin (et ça arrive <ins>toujours</ins>).</li>
  51. </ul>
  52. <p>Actuellement, <strong>les frameworks s'étalent sur une échelle allant de l'application web à la publication web</strong>. Il faut donc encore une fois choisir en fonction de vos besoins, le framework le mieux adapté pour faire un blog ne sera assurément pas le même que celui avec lequel vous allez faire votre appli web-2.0-de-la-mort-qui-tue. Une fois vos besoins cernés, il suffit d'avoir connaissance des différentes solutions existantes pour déjà pas mal déblayer le terrain. Il devrait en théorie vous en rester 2 ou 3 maximum.</p>
  53. <p>Reste maintenant une question de goûts/compétences du technicien qui est rarement prise en compte mais qui est pourtant capitale dans le déroulement du projet. <strong>Un technicien sceptique est moins impliqué et donc moins performant</strong>. Prennons l'exemple totalement aléatoire du choix entre Python et Ruby comme langages de programmation pour un framework. Quelqu'un qui aura codé depuis 3 ans en Ruby ira beaucoup plus vite dans le développement de son application, même si à connaissances égales celui-ci aurait été plus rapide en Python (bon ok pas si aléatoire). C'est tout à fait normal et si ce n'était pas le cas un seul framework dominerait le marché actuel.</p>
  54. <p>Pour en finir avec la technique, il ne faut pas sous-estimer le problème de l'hébergement. Il existe peu d'hébergeurs proposant des services de qualité sur des technologies relativement jeunes et c'est bien dommage. C'est la principale raison pour laquelle PHP est soit-disant le langage de prédilection des dévelopeurs web (de plus de 40 ans&nbsp;? Mouhahaha, pardon).</p>
  55. <h2>Critères commerciaux</h2>
  56. <p>Il y a les boîtes où le service commercial est le cauchemard du service technique et puis... non, en fait ça se passe toujours comme ça ;-). Comment en arrive-t-on là&nbsp;?</p>
  57. <p><strong>Il est difficile de vendre quelque chose que l'on ne connait pas à quelqu'un qui ne connait pas non plus</strong>. Jouer du pipeau à propos d'une technologie dont tout le monde parle c'est relativement aisé. Faire découvrir et ouvrir le portefeuille d'un client en évoquant un nom tribal inconnu de tout son service informatique déjà c'est plus risqué. Si en plus le seul exemple qu'on a de développement utilisant ce framework web n'a pas été réalisé par la boîte on comprend mieux l'inertie que peut avoir une technologie.</p>
  58. <p>Deux autres arguments sont souvent évoqués&nbsp;:</p>
  59. <ul>
  60. <li>le manque de ressources humaines disponibles relatives au langage ou au framework et là c'est le serpent qui se mord la queue&nbsp;;</li>
  61. <li>les garanties en termes de pérennité du framework, l'open-source en est une mais si vous êtes là vous le savez déjà :-).</li>
  62. </ul>
  63. <h2>Critère décisif</h2>
  64. <p><strong>C'est vous !</strong> Évaluez vos besoins, testez plusieurs frameworks (si vous n'avez pas le temps, penchez-vous sur RoR ou Turbogears pour une application ou Django pour une publication) et lancez-vous. Les seules besoins sont un peu de temps et vous pouvez généralement faire le tour d'un framework en moins d'une demi-journée (exemples+doc+communauté+limites). Imaginez un prototype basique de ce que vous avez en tête et essayez de le faire après cette demi-journée pour chaque framework web, vous allez vite vous rendre compte des frameworks adaptés ou pas. Les connaissances acquises ne sont pas du temps perdu, le fonctionnement des frameworks web modernes actuels est quasiment identique et mêmes s'ils évoluent très rapidemment, ils sont dans une phase de stabilisation (indispensable pour l'entreprise).</p>
  65. <p>En conclusion, <strong>il n'y a pas de meilleur framework que celui qui sera adapté à vos besoins</strong>. Passez plutôt du temps à réfléchir à votre modèle de données, changer d'outil est facile mais une fois que l'on a commandé les planches... il faut faire avec&nbsp;!</p>
  66. <p><em>Bon, j'ai toujours pas le net mais du coup je bricole dans mon nouvel appart, à défaut d'une application web j'ai une vie... et une caisse à outils ;-)</em></p>
  67. <p><strong>[edit du 11]</strong>&nbsp;: ajout de quelques liens pour poursuivre la réflexion.</p>
  68. <p><a href="http://www.jacobian.org/writing/2006/aug/22/pronouncement/">Pronouncement</a> par Jacob (l'un des core-dev de Django) qui est l'un des meilleurs billets que j'ai lu à ce sujet&nbsp;:</p>
  69. <blockquote><p>But there's a second, insidious form of evangelism which tries to convince people that the tools they're using are somehow "wrong" and that they ought to switch to using the "right" tools. These arguments inevitably involve vague statements that Option A is intangibly "better" than Option B: "You're using Ruby on Rails? Dude, you suck -- Django's totally better!"</p></blockquote>
  70. <p>Et les commentaires du billet qui tro^W^discutent de Zope constructivement&nbsp;:</p>
  71. <blockquote><p>Beyond that, if you want a CMS, choose Plone, if you want a content-centric framework, choose Zope 3, if you want an RDBMS framework, choose Django or TurboGears, if you want pain and suffering, choose J2EE.</p></blockquote>
  72. <p><a href="http://www.nedbatchelder.com/blog/200608.html#e20060830T202358">Frameworks make software easier, but only the easy part</a> par Ned Batchelder au sujet de son expérience avec Django et de l'importance relative du choix d'un framework web&nbsp;:</p>
  73. <blockquote><p>When the hype-masters claim that their frameworks and languages make coding an application easier, they are absolutely right. But that's already the easy part.</p></blockquote>
  74. <p><a href="http://fjossinet.u-strasbg.fr/newsdetails?id=60">Snakes and rubies for the scientific community</a> par Fabrice Jossinet (merci <a href="http://www.enroweb.com/dotclear/">Enro</a> pour le lien&nbsp;! On trouve pas souvent de Bioinformaticien 2.0 alors si vous avez d'autres liens sous le coude n'hésitez pas). À ce sujet, vous pouvez aussi lire (<del>argh impossible de retrouver le lien</del>, pour la peine <a href="http://antoniocangiano.com/articles/2006/08/26/django-is-great">le point de vue d'un ruby-lover sur Django</a>).</p>
  75. <blockquote><p>In bioinformatics, the main goal is the biological discovery. You need to be productive as quickly as possible. And being productive in bioinformatics means to easily parse heterogeneous biological formats, display and manipulate biological data with 2D and 3D rendering, extract automatically biological knowledge using different algorithms (HMMs, neural networks, k-nearest neighbors, SVMs, semantic reasoner, ....). Python can provide such libraries now. Ruby cannot (except BioRuby). Today, Python is the best compromise between funny (web2.0) and less funny (science) stuffs.</p></blockquote>
  76. <p><a href="http://jesusphreak.infogami.com/blog/why_py">Of snakes and rubies; Or why I chose Python over Ruby</a>. Finalement, j'ai retrouvé le lien grâce à <a href="http://blog.virgule.info/">mat</a>&nbsp;:</p>
  77. <blockquote><p>Yes, Ruby is an excellent language. But you can have the most elegant and wonderful language in the world, and if it doesn't have library support, it is ineffective. A lot of apps in Rails are being built without the need of solid-third party libraries, and that's great, but there are those times when you need to read a DBASE file. And there are times when you'd like another templating system than erb. In Python you've got Cheetah, Kid, Myghty, Django's templates, PSP, the list goes on and on.</p></blockquote>
  78. <p><a href="http://bitworking.org/news/Why_so_many_Python_web_frameworks">Why so many Python web frameworks?</a> par Joe Gregorio qui nous fait une démonstration de la facilité à réaliser un framework web en python, impressionnant&nbsp;!</p>
  79. <blockquote><p>So let's give it a shot, we'll pick some components and spend a couple hours seeing how far we can get building a web framework, which we'll call Robaccia.</p></blockquote>
  80. <p><a href="http://www.unelectronlibre.info/index.php/2006/09/09/313-sur-le-choix-d-un-framework-web">Sur le choix d'un framework web...</a> la réaction de NiCoS à ce billet, pleine d'expérience et de sagesse&nbsp;:</p>
  81. <blockquote><p>Si je reviens sur les avant vente que j'ai pu réalisé ou auxquelles j'ai assisté depuis ces trois dernières années, j'ai toujours constaté que les prospects/clients étaient plus rassurés lorsqu'on leur proposait un produit avec des développements autours plutôt que par des développements sur mesure.</p></blockquote>
  82. <p><a href="http://www.b-list.org/weblog/2006/06/18/lets-talk-about-python-and-ruby">Let’s talk about Python and Ruby</a> par James Bennett car c'est un des meilleurs comparatifs python/ruby (commentaires compris) que je connaisse&nbsp;:</p>
  83. <blockquote><p>So I’d like to have an honest talk about Python vs. Ruby. From where I sit, there are two things about Ruby that don’t have to do with syntax or ad hominem attacks or whatever that, were I coming fresh to the choice today, would lead me to Python over Ruby.</p></blockquote>
  84. <p>Bonne lecture&nbsp;!</p>
  85. <p><strong>[edit du 15]</strong>&nbsp;: excellent billet «&nbsp;<a href="http://www.christian-faure.net/2006/09/09/un-mythe-sur-les-responsabilits-dans-le-processus-dadoption-des-nouvelles-technologies/">Un mythe sur les responsabilités dans le processus d’adoption des nouvelles technologies</a> » de Christian Fauré à mettre en relation avec <a href="https://larlet.fr/david/biologeek/archives/20060815-a-la-recherche-d-un-site-semantique/">ma recherche d'un site sémantique</a>. En ce moment je découvre pas mal de blogs de qualité, c'est rassurant :-).</p>
  86. </div>
  87. </article>
  88. <footer>
  89. <h6 property="schema:datePublished">— 07/09/2006</h6>
  90. </footer>
  91. </section>
  92. <section>
  93. <div>
  94. <h3>Articles peut-être en rapport</h3>
  95. <ul>
  96. <li><a href="/david/biologeek/archives/20080902-sortie-de-django-10-une-annee-de-nouveautes/" title="Accès à Sortie de Django 1.0, une année de nouveautés">Sortie de Django 1.0, une année de nouveautés</a></li>
  97. <li><a href="/david/biologeek/archives/20080409-google-app-engine-avantages-et-inconvenients/" title="Accès à Google App Engine : avantages et inconvénients">Google App Engine : avantages et inconvénients</a></li>
  98. <li><a href="/david/biologeek/archives/20080211-astuces-et-bonnes-pratiques-django/" title="Accès à ★ Astuces et bonnes pratiques Django">★ Astuces et bonnes pratiques Django</a></li>
  99. </ul>
  100. </div>
  101. </section>
  102. <section>
  103. <div id="comments">
  104. <h3>Commentaires</h3>
  105. <div class="comment" typeof="schema:UserComments">
  106. <p class="comment-meta">
  107. <span class="comment-author" property="schema:creator">pouype</span> le <span class="comment-date" property="schema:commentTime">07/09/2006</span> :
  108. </p>
  109. <div class="comment-content" property="schema:commentText">
  110. <p>&quot;Quelqu'un qui aura codé depuis 3 ans en Ruby ira beaucoup plus vite dans le développement de son application, même si à connaissances égales celui-ci aurait été plus rapide en Python. &quot;<br />
  111. <br />
  112. Hmm ça sent le troll ça :) Plus rapide en Python ? :D<br />
  113. <br />
  114. Je n'en ajouterais pas :-p</p>
  115. </div>
  116. </div>
  117. <div class="comment" typeof="schema:UserComments">
  118. <p class="comment-meta">
  119. <span class="comment-author" property="schema:creator">NiKo</span> le <span class="comment-date" property="schema:commentTime">07/09/2006</span> :
  120. </p>
  121. <div class="comment-content" property="schema:commentText">
  122. <p>En effet, quelques trolls se sont glissés dans ce billet, sauras-tu les retrouver ? :D<br />
  123. <br />
  124. Le problème est que bien souvent quand on bosse on a pas le temps de tester en profondeur tous les frameworks qui sortent. Je pense de plus en plus qu'il faut sélectionner celui qu'on trouve potentiellement le plus versatile, documenté et maintenu puis rentrer à fond dedans.</p>
  125. </div>
  126. </div>
  127. <div class="comment" typeof="schema:UserComments">
  128. <p class="comment-meta">
  129. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">07/09/2006</span> :
  130. </p>
  131. <div class="comment-content" property="schema:commentText">
  132. <p>Désolé j'ai pas pu m'en empêché ;-)<br />
  133. <br />
  134. @NiKo : le problème est de sélectionner justement. Sur quels critères ? Buzz ? Réseau de confiance ? Pas évident, surtout que des améliorations peuvent être faites par la suite. Il faudrait créer une ressource permettant de mutualiser ces connaissances...</p>
  135. </div>
  136. </div>
  137. <div class="comment" typeof="schema:UserComments">
  138. <p class="comment-meta">
  139. <span class="comment-author" property="schema:creator">PhE</span> le <span class="comment-date" property="schema:commentTime">07/09/2006</span> :
  140. </p>
  141. <div class="comment-content" property="schema:commentText">
  142. <p>Ne pas oublier Pylons <a href="http://pylonshq.com" title="http://pylonshq.com" rel="nofollow">pylonshq.com</a> !</p>
  143. </div>
  144. </div>
  145. <div class="comment" typeof="schema:UserComments">
  146. <p class="comment-meta">
  147. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">07/09/2006</span> :
  148. </p>
  149. <div class="comment-content" property="schema:commentText">
  150. <p>Ni <a href="http://spyce.sourceforge.net/" title="Accès au site (sortie)">spyce</a>. Ni <a href="http://webpy.org/" title="Accès au site (sortie)">webpy</a>. Ni... bref <a href ="http://wiki.python.org/moin/WebFrameworks" title="Accès au site (sortie)">tout est là</a> :-)</p>
  151. </div>
  152. </div>
  153. <div class="comment" typeof="schema:UserComments">
  154. <p class="comment-meta">
  155. <span class="comment-author" property="schema:creator">NiKo</span> le <span class="comment-date" property="schema:commentTime">07/09/2006</span> :
  156. </p>
  157. <div class="comment-content" property="schema:commentText">
  158. <p>@David: Les frameworks qui restent plus de 6 mois dans le buzz sont AMHA à priori dotés de suffisamment de qualités le justifiant. Le gros problème rencontrés devant la pléthore de frameworks, c'est justement l'heure du choix. J'estime que pour éviter de predre tout son temps à cogiter quand au choix, il vaut mieux se jeter à l'eau à fond et surtout rapidement. Il sera toujours temps de changer d'outil si celui choisi ne correspond finalement pas à sa vision des choses, aux performances attendues, etc.<br />
  159. <br />
  160. De plus, il ne faut jamais oublier qu'un framework se base avant tout sur un langage de programmation ; à ce titre il peut parfois se réveler périlleux voire contre-productif d'apprendre un nouveau langage utilisé sur tel framework à la mode plutôt que d'essayer d'utiliser un framework existant dans un langage que l'on maîtrise parfaitement.<br />
  161. <br />
  162. Prenons l'ex. de RoR, tant qu'on reste dans le ramework Rails tout va bien mais dès qu'on doit coder des classes métier en Ruby nécessitant des traitement complexes, la courbe de productivité se trouve du coup moins interessante si on est pas familier du langage à la base.</p>
  163. </div>
  164. </div>
  165. <div class="comment" typeof="schema:UserComments">
  166. <p class="comment-meta">
  167. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">07/09/2006</span> :
  168. </p>
  169. <div class="comment-content" property="schema:commentText">
  170. <p>Mais c'est qu'il me piquerait presque mon troll... et franchement le buzz, ça donne un coup d'accélerateur mais c'est pas toujours justifié à mon avis. Il y a de très bon frameworks python que personne n'utilise car leurs auteurs sont peu connus et/ou ne trollent pas à tour de bras ;-).</p>
  171. </div>
  172. </div>
  173. <div class="comment" typeof="schema:UserComments">
  174. <p class="comment-meta">
  175. <span class="comment-author" property="schema:creator">NiCoS</span> le <span class="comment-date" property="schema:commentTime">07/09/2006</span> :
  176. </p>
  177. <div class="comment-content" property="schema:commentText">
  178. <p>Je dirais même plus (même si cela a l'air d'évoluer ces dernières années) que python est assez peu connu en france et donc que le monde python souffre un peu de publicité &amp; co (contrairement à PHP, Java par ex).<br />
  179. <br />
  180. La courbe d'apprentissage étant apparemment plus longue que PHP et les ressources plus limitées, les boites n'osent pas (à tord peut être d'un point de vue technique) miser sur python. Avec PHP/Java, ils sont surs jusqu'à présent de trouver des prestataires en mesure de reprendre leur projet.<br />
  181. <br />
  182. Avec des langages plus rares, l'entreprise peut avoir peur de la pérénité du truc et/ou craindre d'être pieds et poings liés par son prestataire.<br />
  183. <br />
  184. </p>
  185. </div>
  186. </div>
  187. <div class="comment" typeof="schema:UserComments">
  188. <p class="comment-meta">
  189. <span class="comment-author" property="schema:creator">kib2</span> le <span class="comment-date" property="schema:commentTime">07/09/2006</span> :
  190. </p>
  191. <div class="comment-content" property="schema:commentText">
  192. <p>J'aimerai beaucoup me lancer dans l'étude des frameworks web, mais pour l'instant qu'en est-il vraiment de l'hébergement ? <br />
  193. Pour le moment il faut payer pour avoir Python ou Ruby, la transparence et surtout les compétences techniques des hebergeurs m'ont l'air plus que floux, comme tu le soulignes si bien avec ta phrase : &quot;Il est difficile de vendre quelque chose que l'on ne connait pas à quelqu'un qui ne connait pas non plus&quot;. <br />
  194. Beaucoup de développeurs en sont restés à un simple blog sous Dotclear ou WordPress ne serait-ce que pour des histoires d'argent. <br />
  195. Comment peut-on en effet envisager de payer pour une alternative belle sur le papier mais dont on ne maîtrise encore rien (et pour cause, il faut débourser pour voir comment l'on s'en sort) lorsqu'on nous propose des alternatives gratuites et qui ont fait leurs preuves ?<br />
  196. Sinon, j'aime beaucoup le logo de l'article, tu l'as fait toi même ?!<br />
  197. <br />
  198. à Pouype : Je savais que tu craquerais...difficile de se retenir non ?! <br />
  199. <br />
  200. A plus,<br />
  201. Kib².</p>
  202. </div>
  203. </div>
  204. <div class="comment" typeof="schema:UserComments">
  205. <p class="comment-meta">
  206. <span class="comment-author" property="schema:creator">Noé</span> le <span class="comment-date" property="schema:commentTime">07/09/2006</span> :
  207. </p>
  208. <div class="comment-content" property="schema:commentText">
  209. <p><a href="http://www.nitroproject.org/" title="http://www.nitroproject.org/" rel="nofollow">www.nitroproject.org/</a> pour ceux qui adorent Ruby mais qui n'adorent pas Rails.<br />
  210. Et en plus il m'a fait découvrir Og, le truc dont je rêvais depuis des mois !</p>
  211. </div>
  212. </div>
  213. <div class="comment" typeof="schema:UserComments">
  214. <p class="comment-meta">
  215. <span class="comment-author" property="schema:creator">Xavier</span> le <span class="comment-date" property="schema:commentTime">08/09/2006</span> :
  216. </p>
  217. <div class="comment-content" property="schema:commentText">
  218. <p>&quot;Il y a de très bon frameworks python que personne n'utilise car leurs auteurs sont peu connus et/ou ne trollent pas à tour de bras ;-)&quot;<br />
  219. <br />
  220. Juste par curiosité : lesquels ? A part ça, bon billet... Juste un peu rude avec les développeurs PHP de moins de 40 ans !</p>
  221. </div>
  222. </div>
  223. <div class="comment" typeof="schema:UserComments">
  224. <p class="comment-meta">
  225. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">08/09/2006</span> :
  226. </p>
  227. <div class="comment-content" property="schema:commentText">
  228. <p>@NiCoS :<br />
  229. &gt; La courbe d'apprentissage étant apparemment plus longue que PHP<br />
  230. <br />
  231. Alors là je ne crois vraiment pas que ce soit le cas (sans compter que Python apprend à programmer objet ce qui n'est pas négligeable...). Pour le reste je suis d'accord.<br />
  232. <br />
  233. @Kib² :<br />
  234. &gt; la transparence et surtout les compétences techniques des hebergeurs m'ont l'air plus que floues<br />
  235. <br />
  236. C'est vrai que c'est pas évident. Concernant les compétences, ceux qui proposent ces services le font en connaissance de cause à mon avis.<br />
  237. <br />
  238. &gt; Comment peut-on en effet envisager de payer [...] lorsqu'on nous propose des alternatives gratuites et qui ont fait leurs preuves ?<br />
  239. <br />
  240. Tout est question de besoins et de liberté.<br />
  241. <br />
  242. &gt; Sinon, j'aime beaucoup le logo de l'article, tu l'as fait toi même ?!<br />
  243. <br />
  244. Non, il vient de la conférence <a href="http://www.snakesandrubies.com/" title="http://www.snakesandrubies.com/" rel="nofollow">www.snakesandrubies.com/</a> dont la vidéo est très bonne.<br />
  245. <br />
  246. @Xavier :<br />
  247. &gt; Juste par curiosité : lesquels ?<br />
  248. <br />
  249. Pylons et Spyce qui sont cités en commentaire sont très bons mais bénéficient de peu de publicité. Du coup la communauté est moins grande, ils ont moins de contributeurs, etc. C'est du Darwinisme à l'échelle des frameworks ;-).</p>
  250. </div>
  251. </div>
  252. <div class="comment" typeof="schema:UserComments">
  253. <p class="comment-meta">
  254. <span class="comment-author" property="schema:creator">NiCoS</span> le <span class="comment-date" property="schema:commentTime">08/09/2006</span> :
  255. </p>
  256. <div class="comment-content" property="schema:commentText">
  257. <p>@Kib² =&gt; ben tu as toujours la possibilité dans un premier temps de faire ton projet ou au moins un prototype en local sur ton pc.<br />
  258. <br />
  259. La question de l'hébergement n'est pas forcément un obstacle à l'apparentissage d'un framework web. Le problème est par contre si tu veux diffuser/utiliser ton projet/prototype sur un serveur de prod...<br />
  260. <br />
  261. @David : pour la courbe d'apprentissage : il est communément admis (comprendre la légende urbaine raconte...) que python est plus complexe. Pour ce que j'en ai lu (mais pas encore mis en oeuvre), je relativiserais pas mal cette légendre urbaine ;-)<br />
  262. <br />
  263. J'avais en outre lu/vu que dans les écoles d'ingé ou universités, python était assez peu enseigné contrairement à Java/PHP/... donc ça aidait pas au décollage du langage (car du coup requiérerait un apprentissage sur son temps libre et non dans le cadre de sa formation)<br />
  264. </p>
  265. </div>
  266. </div>
  267. <div class="comment" typeof="schema:UserComments">
  268. <p class="comment-meta">
  269. <span class="comment-author" property="schema:creator">Un Electron Libre...</span> le <span class="comment-date" property="schema:commentTime">09/09/2006</span> :
  270. </p>
  271. <div class="comment-content" property="schema:commentText">
  272. <!-- TB -->
  273. <p><strong>Sur le choix d'un framework web...</strong></p>
  274. <p>David a écrit un billet sur "Choisir un framework web", très pertinent (comme d'habitude ;-) ) mais cela m'a fait penser à une autre problématique : qui dit framework dit développement sur mesure et là est peut être une des raisons pour...</p>
  275. </div>
  276. </div>
  277. <div class="comment" typeof="schema:UserComments">
  278. <p class="comment-meta">
  279. <span class="comment-author" property="schema:creator">X-Blaster</span> le <span class="comment-date" property="schema:commentTime">11/09/2006</span> :
  280. </p>
  281. <div class="comment-content" property="schema:commentText">
  282. <p>J'ai essayé de me mettre à un ou deux frameworks, et il faut du temps pour s'y mettre, ça fait beaucoup trop de trucs tout seul sans que tu le saches(et ça ça m'enerve) et souvent les bons frameworks sont dans des langages que l'on n'a pas l'habitude d'utiliser.<br />
  283. <br />
  284. Je préfère personnellement attendre qu'un ou deux frameworks émerge vraiment et deviennent standard. Le seul qui me parait bien pensé c'est rails, mais comme j'ai très peu de connaissance en ruby... je préfère attendre un peu pour être sûr de m'y mettre.<br />
  285. <br />
  286. En attendant, je me suis fait mon pseudo framework en PHP, un petit modèle MVC, quelques helpers, des macros pour generer du javascript/ajax et ça n'impacte pas trop ma productivité. </p>
  287. </div>
  288. </div>
  289. <div class="comment" typeof="schema:UserComments">
  290. <p class="comment-meta">
  291. <span class="comment-author" property="schema:creator">JS</span> le <span class="comment-date" property="schema:commentTime">11/09/2006</span> :
  292. </p>
  293. <div class="comment-content" property="schema:commentText">
  294. <p>Tant que je suis là, le truc super chiant dans python, c'est l'identation... Genre entre 4 espaces et 1 tabulation, à l'oeil nu, aucune différence, mais python lui la voit et dit qu'il y a une erreur de syntaxe...<br />
  295. <br />
  296. Ca existe un IDE pour Zope/Plone ?</p>
  297. </div>
  298. </div>
  299. <div class="comment" typeof="schema:UserComments">
  300. <p class="comment-meta">
  301. <span class="comment-author" property="schema:creator">Bader</span> le <span class="comment-date" property="schema:commentTime">11/09/2006</span> :
  302. </p>
  303. <div class="comment-content" property="schema:commentText">
  304. <p>L'indentation n'est un problème que si on utilise les mauvais outils. Un espace et une tabulation ce n'est même pas la même chose visuellement sur certains éditeurs.<br />
  305. <br />
  306. Pour le choix de l'IDE ils sont pléthores, sous Linux comme sous Windows ou Mac OS X. Le tout est de trouver un éditeur faisant aussi bien du XML/HTML que du Python et éventuellement du javascript. Moi j'ai alternativement utilisé SPE et emacs.</p>
  307. </div>
  308. </div>
  309. <div class="comment" typeof="schema:UserComments">
  310. <p class="comment-meta">
  311. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">11/09/2006</span> :
  312. </p>
  313. <div class="comment-content" property="schema:commentText">
  314. <p>@X-Blaster :<br />
  315. &gt; En attendant, je me suis fait mon pseudo framework en PHP, un petit modèle MVC, quelques helpers, des macros pour generer du javascript/ajax et ça n'impacte pas trop ma productivité.<br />
  316. <br />
  317. Tu devrais jetter un œil à symfony si tu aimes php, c'est pas mal du tout : <a href="http://www.symfony-project.com/" title="http://www.symfony-project.com/" rel="nofollow">www.symfony-project.com/</a><br />
  318. <br />
  319. @LS : <br />
  320. &gt; Tant que je suis là, le truc super chiant dans python, c'est l'identation...<br />
  321. <br />
  322. Euh, il suffit comme l'a dit Bader d'avoir un bon éditeur, genre SciTE : <a href="http://www.scintilla.org/SciTE.html" title="http://www.scintilla.org/SciTE.html" rel="nofollow">www.scintilla.org/SciTE.h...</a> (au passage mon fichier de config : <a href="http://vrac.biologeek.com/SciTEUser.properties" title="http://vrac.biologeek.com/SciTEUser.properties" rel="nofollow">vrac.biologeek.com/SciTEU...</a> )<br />
  323. <br />
  324. SPE est très bon aussi, cf screencast : <a href="http://showmedo.com/videos/video?name=PythonDevelopmentAndNavigationWithSPE" title="http://showmedo.com/videos/video?name=PythonDevelopmentAndNavigationWithSPE">http://showmedo.com/videos/...</a>
  325. </p>
  326. </div>
  327. </div>
  328. <div class="comment" typeof="schema:UserComments">
  329. <p class="comment-meta">
  330. <span class="comment-author" property="schema:creator">NiKo</span> le <span class="comment-date" property="schema:commentTime">11/09/2006</span> :
  331. </p>
  332. <div class="comment-content" property="schema:commentText">
  333. <p>Le billet sur JesusPhreak résume parfaitement ce que j'essayais de dire dans mon commentaire, désolé si j'étais pas clair (#2312) :-)</p>
  334. </div>
  335. </div>
  336. <div class="comment" typeof="schema:UserComments">
  337. <p class="comment-meta">
  338. <span class="comment-author" property="schema:creator">Enro</span> le <span class="comment-date" property="schema:commentTime">12/09/2006</span> :
  339. </p>
  340. <div class="comment-content" property="schema:commentText">
  341. <p>Puisque tu réclames ;-) , voici un autre bio-informaticien 2.0 français : Pierre Lindenbaum à <a href="http://plindenbaum.blogspot.com/" title="http://plindenbaum.blogspot.com/" rel="nofollow">plindenbaum.blogspot.com/</a> ...</p>
  342. </div>
  343. </div>
  344. <div class="comment" typeof="schema:UserComments">
  345. <p class="comment-meta">
  346. <span class="comment-author" property="schema:creator">Xavier</span> le <span class="comment-date" property="schema:commentTime">12/09/2006</span> :
  347. </p>
  348. <div class="comment-content" property="schema:commentText">
  349. <p>&quot;Tu devrais jetter un œil à symfony si tu aimes php, c'est pas mal du tout : www.symfony-project.com/&quot;<br />
  350. <br />
  351. Alors celle-là, il faudrait l'encadrer. Elle mérite sa place sur bashfr ;-)</p>
  352. </div>
  353. </div>
  354. <div class="comment" typeof="schema:UserComments">
  355. <p class="comment-meta">
  356. <span class="comment-author" property="schema:creator">NiCoS</span> le <span class="comment-date" property="schema:commentTime">13/09/2006</span> :
  357. </p>
  358. <div class="comment-content" property="schema:commentText">
  359. <p>&quot;Sur le choix d'un framework web... la réaction de NiCoS à ce billet, pleine d'expérience et de sagesse&quot;<br />
  360. <br />
  361. J'aime beaucoup le &quot;plein d'expérience et de sagesse&quot;... je pensais pas que j'étais/je faisais si vieux... :-/<br />
  362. <br />
  363. Ah ces jeunes, aucun respect pour leurs ainés ;-P</p>
  364. </div>
  365. </div>
  366. <div class="comment" typeof="schema:UserComments">
  367. <p class="comment-meta">
  368. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">13/09/2006</span> :
  369. </p>
  370. <div class="comment-content" property="schema:commentText">
  371. <p>La sagesse est indépendante de l'âge :p</p>
  372. </div>
  373. </div>
  374. <div class="comment" typeof="schema:UserComments">
  375. <p class="comment-meta">
  376. <span class="comment-author" property="schema:creator">NiKo</span> le <span class="comment-date" property="schema:commentTime">17/09/2006</span> :
  377. </p>
  378. <div class="comment-content" property="schema:commentText">
  379. <p>Tiens, un billet interessant en droite lignée avec mon précédent propos : <a href="http://linux.blogweb.de/archives/246-guid.html" title="http://linux.blogweb.de/archives/246-guid.html" rel="nofollow">linux.blogweb.de/archives...</a></p>
  380. </div>
  381. </div>
  382. <div class="comment" typeof="schema:UserComments">
  383. <p class="comment-meta">
  384. <span class="comment-author" property="schema:creator">David</span> le <span class="comment-date" property="schema:commentTime">27/11/2006</span> :
  385. </p>
  386. <div class="comment-content" property="schema:commentText">
  387. <p>Salut David, on parle de ton site aujourd'hui sur la mailing-list Python-Fr :<br />
  388. <br />
  389. &quot;Je pense avoir trouvé mon FrameWork, Django ! Il y a de la bonne doc sur <a href="http://www.biologeek.com" title="http://www.biologeek.com" rel="nofollow">www.biologeek.com</a> &quot;<br />
  390. <br />
  391. Profite d'avoir le vent en poupe ! :-D<br />
  392. <br />
  393. David<br />
  394. </p>
  395. </div>
  396. </div>
  397. <div class="comment" typeof="schema:UserComments">
  398. <p class="comment-meta">
  399. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">27/11/2006</span> :
  400. </p>
  401. <div class="comment-content" property="schema:commentText">
  402. <p>Héhé, merci de m'avoir prévenu ;-)</p>
  403. </div>
  404. </div>
  405. <div class="comment" typeof="schema:UserComments">
  406. <p class="comment-meta">
  407. <span class="comment-author" property="schema:creator">Amirouche B.</span> le <span class="comment-date" property="schema:commentTime">10/06/2007</span> :
  408. </p>
  409. <div class="comment-content" property="schema:commentText">
  410. <p>Xavier == Troller<br />
  411. self == Troller too<br />
  412. <br />
  413. ça c'est fait.<br />
  414. <br />
  415. J'ai fait un croquis d'argumentation... mais tout a deja été dit. Le plus simple pour comprendre c'est vraiment de faire python dans une console. </p>
  416. </div>
  417. </div>
  418. </div>
  419. </section>
  420. <footer>
  421. <nav>
  422. <p>
  423. <small>
  424. Je réponds quasiment toujours aux <a href="m&#x61;ilto:d&#x61;vid%40l&#x61;rlet&#46;fr" title="Envoyer un email">emails</a> (<a href="/david/signature/" title="Ma signature actuelle avec possibilité de chiffrement">signés</a>) et vous pouvez me rencontrer à Montréal. <span class="more-infos">N’hésitez pas à <a href="/david/log/" title="Être tenu informé des mises à jour">vous abonner</a> pour être tenu informé des publications récentes.</span>
  425. </small>
  426. </p>
  427. </nav>
  428. </footer>
  429. </div>
  430. <script src="/static/david/js/larlet-david-3ee43f.js" data-no-instant></script>
  431. <script data-no-instant>InstantClick.init()</script>
  432. </body>
  433. </html>