Je pense aussi m'orienter vers un framework pour de futurs développements, histoire de pouvoir réellement faire du sur-mesure, tout en restant évolutif. Entrer dans la logique de construction d'un CMS est souvent complexe, et surtout, plus on fait de modifs, et plus on s'éloigne de l'appli originale, ce qui peut poser de gros problèmes lors de mises à jour. Le problème est moins présent avec un framework.
@David : merci pour ta réponse ! je sais maintenant ce qu'il me restera à faire quand le magazine pour lequel je bosse voudra commencer à gagner des sous avec son site - c'est-à-dire ajouter massivement du contenu et de la grosse interactivité :-)
Ah ! Bha gloire à Maxime, cela faisait longtemps que je me demandais en quoi consistait vraiment un framework (oui, j'ai cherché et oui c'était pas très clair).
Super analogie en tout cas.
Bizarrement, étant un adepte de Django, j'aime beaucoup ModX.
ModX est à mi-chemin entre le framework et le SGC ("CMS" en Français).
C'est un CMF mais avec une courbe d'apprentissage plus proche d'un CMS (et d'un CMS plutôt simple).
Pour tous les sites de contenus plus ou moins généraux, il est idéal. Et même pour ceux qui le sont moins.
En somme, à mon humble avis :
- Si le site est basé sur des contenus fixes, journalistiques ou pouvant être gérés par des éléments génériques (avec des variables spécifiques pouvant être ajoutées. ex: images, videos, commentaires) : go for ModX, car il est rapide à mettre en oeuvre, non obstrusif (je pars de mon code xhtml/css et je fais mon site avec, pas le contraire), et marche sur 95% des hébergeurs.
- Si en revanche, on part dans un site de contenu demandant beaucoup d'éléments spécifiques : go for Django, et un hébergeur le supportant.
ps: merci pour le lien vers mon article ;-)
Le meilleur hébergement gratuit ça reste localhost ;-)
Sinon il y a WebFaction qui a l'air pas mal pour du django : www.webfaction.com/
Bonjour à tou(te)s,
Voila, je suis en train (debut du projet) de réfléchir à la création d'un site web très orienté et par la même occasion de me lancer un petit défi personnel.
Je code principalement en php, mais je suis de plus en plus attiré par le python (je l'utilise dans mon métier, la bioinfo...). Ma question est naive (mais pas inutile!) : y a t'il vraiment un intérêt à utiliser un framework (symphony ou django) plutôt que de coder bêtement ces pages en php?
De plus, j'utilise python mais je ne suis pas encore familiarisé avec celui-ci pour créer des interfaces web. Dois je faire l'effort de passer à django ou essayer un framework comme symphony? (En clair python plutot que php)
Django est très puissant mais les hébergeurs acceptant python ont l'air rares! Les hébergeurs gratuits (ou peu onnéreux, style ovh90gp) sont ils suffisant (assez robuste) pour un début?
Merci....
PS: super site David!
Excellentes remarques Eric, merci :-).
merci pour la definition j'aime bien
Très bonne définission d'un framework web. Je trouve cette métaphore très bien trouvé et je pense que je garderais ce billet en exemple d'explication.
Merci d'éclairer les novices.
Hum....
Perso, je suis pas complètement d'accord en ce qui concerne les CMS.
Avec un CMS bien concut, modulaire, tu peux tout a fait ajouter tes briques, le configurer comme tu veux, et si un jour le gateau est pour 2 et le lendemain, c'est un gateau pour 30, y'a pas de soucis...
En tout cas, jusqu'a présent, tous les sites qu'on a développé dans ma boite sont réalisé avec un CMS, on a développé pas mal de modules, d'appli métiers, etc... Et par rapport à mon expérience des CMS, on gagne encore en rapidité.
Ca fait 1 an que je bosse avec Plone.
Joli billet - tout est bien trouvé :-)
Pour JS, peut-on vraiment considérer Plone comme un CMS ? Je le vois plus comme un CMF (Content Management Framework) qu'un CMS.
Tant que tu reste dans un principe d'édition/publication, le CMS est gagnant en efficacité et rapidité de dev. Plus tu vas vers des applis métiers, moins cela est possible de le faire avec des CMS, même les plus évolués/modulaires. Je rejoins ainsi David :-)
C'est vrai que quand on aborde un nouveau projet, on hésite parfois entre les deux. Dois-je partir d'un CMS et prévoir du dev spécifique ou bien partir d'un framework qui va me faciliter tel autre aspect du projet mais m'oblige à recoder la partie CMS...
Nous n'avons pas fini de cogiter :-)
Pour moi qui ce que c'est qu'un framework web, c'est trop métaphorique : à la fin du billet je suis allé faire un tour à la cuisine ! =)
Je me demande toujours selon quels critères on peut choisir entre un CMS un framework.
Jusqu'à présent j'ai toujours opté pour des CMS car je travaillais sur des sites de taille petite ou moyenne, mais j'aimerais bien déterminer plus précisément à partir de quelle "ampleur" le framework devient avantegeux.
En ce qui concerne le choix d'un framework ou le développement à l'ancienne, tout dépend de l'ampleur du projet. Mais je pense qu'on gagne énormément en rapidité et en bonne pratique de programmation (modèle MVC, etc) avec un framework.
Pour le choix entre python et PHP, hum j'ai du mal à être objectif ;-).
@pangel : lorsque le temps d'adaptation aux besoins du CMS devient supérieur à celui d'un développement spécifique via un framework web. À court terme on pense toujours que le CMS est le plus avantageux mais c'est en fait rarement le cas si l'on sait programmer. Un CMS est l'idéal pour un besoin spécifique mais on finit tôt ou tard par vouloir s'en éloigner... et c'est généralement à ce moment là qu'on commence à regretter ce choix ;-).
Merci pour cette intéressante vulgarisation.
J'aurais une remarque concernant le troisième avantage d'un framework web -la qualité qui tiendrait à la qualité des développeurs des "macro-ingrédients".
La conclusion me semble un peu rapide. En effet, on peut espérer que les CMS, sur lesquels travaillent en permanence des équipes de développeurs ont en leur sein une qualité équivalente. Or vous avez vous-même pointé les limites de telles entreprises.
Pour moi, la qualité de ces développements tient plutôt :
- dans leur généricité, découplés d'un problème particulier, ils sont naturellement plus génériques, s'adaptant aux différents développement
- pour une certaine part dans leur taille, réduite, qui permet aux développeurs compétents dont vous parlez de pousser leur qualité beaucoup plus loin que s'ils étaient confrontés à un développement plus large.
J'ai récemment reçu un mail de maxime me rappelant à juste titre que le terme «framework web » n'est pas familier pour tous mes lecteurs et qu'un billet à ce sujet serait le bienvenu. Je vais essayer de rester le plus accessible possible en utilisant une métaphore bien connue, après celle de la caisse à outils pour le choix d'un framework web, passons à la cuisine pour les non bricoleurs (comme moi).
L'objectif est de faire un bon gâteau. Généralement, les personnes qui ne savent pas cuisiner ou qui aiment particulièrement une recette très connue choisissent un gâteau tout prêt qui est vendu dans un sachet qu'il suffit de mettre au four, c'est ce que l'on appelle en développement web un CMS ou Système de Gestion de Contenu. C'est très pratique et on y a tous goûté un jour mais il est quasi-impossible de changer la recette, au mieux vous pouvez rajouter un peu de nappage sur le dessus mais ça reste succinct... et frustrant. De plus, avouons-le, c'est loin d'être de la grande cuisine, c'est correct mais ça en reste là. Enfin, et c'est souvent le plus gênant, les sachets vendus sont pour 4 et comment faire lorsque vous êtes 6 ou 2?
Heureusement tout ces inconvénients disparaissent lorsque l'on sait cuisiner. On choisit la recette qui nous plaît, les ingrédients parmi les meilleurs et on fait un bon gâteau. Le problème de cette méthode est qu'elle prend du temps. Or, il y a des combinaisons d'ingrédients que l'on retrouve tout le temps comme mélanger des œufs et de la farine ou monter des blancs en neige. Si seulement on pouvait directement avoir accès à ces ingrédients tout prêts!
En cuisine, ce n'est pas évident et cela demanderait un frigo énorme, mais en développement web on a trouvé la parade: les frameworks web.
Un framework web est donc un regroupement de macro-ingrédients qui forment un tout cohérent et que l'on a juste a assembler selon nos besoins pour faire un gâteau avec notre propre recette.
Liste non exhaustive:
Bon je crois que ça suffit pour convaincre les plus piètres cuisiniers (je n'ai pas mentionné les différentes cuisines possibles mais elles sont bien sûr nombreuses, ma préférée étant celle du Python). S'il y a des marmitons inspirés vous pouvez mettre votre recette en commentaire :-).
Dans un registre un peu plus technique/sérieux, vous pouvez lire l'article de Jon initulé CMS et frameworks web ou Top 13 reasons to use a web framework and never look back de CoderBattery.
merci d'avoir répondu :)
En effet ca à l'air pas mal pratique, ca évite de réinventer toujours la roue. En ce qui concerne les cms c'est vrai que c'est souvent brouillon. J'ai passé plusieurs semaines à en essayer des tonnes pour une communauté d'entraide, et c'est une jungle pas croyable.... Résultat j'ai pris un "LightCMS" (pseudo cms) que j'ai modifié à ma guise (au moins le code était pas trop merdique :-/ ) J'aurais été bien mieux avec un bon framework...
Dommage qu'il existe pas (arretez moi si je me trompe) d'hebergeur gratuit avec python j'aurais installé Django voir ce qu'il a dans le bide