Comparing Plone and Drupal speed evolutions

written by ccomb, on Oct 9, 2010 12:55:00 AM.

Ok, testing the home page of a CMS is generally a bad idea, it is not representative of the responsiveness of the application when people eventually use it. Anyway I did it. I had seen a few benchmarks comparing Plone 4 to previous versions, and comparing Plone with Joomla, Drupal or Wordpress. So I just wanted to check it by myself.

Comparing the homepages of successive Plone versions is perfectly relevant because their contents are very similar. Comparing the homepage of Plone and Drupal is not fair : a default Drupal without modules is pretty useless and offers almost nothing. A default Plone can be used without additional modules to create any website or intranet and offers a lot of features.

So I've installed all major versions of Plone since 2.5, and Drupal 5, 6 and 7 alpha7, without optimisations, and without caching.

The conclusions are:

  • Anyone running a Plone 2.5 or 3.x should seriously consider a migration to Plone 4. This will not always be easy, but it's possible. We, at Alter Way, are conducting a test consisting of a migration of an even older Plone 2.0 site with deprecated products, to 4.0.
  • Each new version of Plone is faster, while each new version of Drupal is slower.
  • Plone 4 (and even 4.0.1) is available now, while Drupal 7 release date is uncertain.

Please note that the interesting point of this curve is not the absolute number of req/s, but the slope of the curve.

comparing plone and drupal speed evolutions

Formations Python : la fiche du débutant

written by ccomb, on Sep 29, 2010 10:58:00 PM.

alterway formation

Des formations

Pendant tout le mois de juin, et dans le cadre de mon boulot à Alter Way, j'ai eu l'occasion de donner des formations sur Python. Tout d'abord, deux sessions de trois jours au JRC (Joint Research Center), le Centre de recherche de la Commission Européenne à Ispra, en Italie. C'est au bord du Lac Majeur, la région est magnifique. Cette formation, en anglais, s'adressait à des chercheurs désireux d'apprendre Python pour des usages scientifiques très variés : analyse d'images satellites, calcul sur des procédés chimiques, nucléaires, cartographiques, etc.

Joint Research Center

Il a donc fallu en trois jours enseigner Python, depuis les bases jusqu'au calcul numérique avec NumPy, pour leur permettre d'aborder SciPy, la grosse bibliothèque de calcul scientifique, ou des outils de visualisation comme Matplotlib ou Mayavi. Pas facile, d'autant plus que les niveaux étaient très différents : certains n'avaient jamais écrit une ligne de code, d'autres faisaient couramment du Java... L'objectif était donc de les rendre autonomes, afin qu'ils sachent trouver l'information eux-mêmes, soit sur le web, soit dans l'interpréteur Python, mais aussi qu'ils comprennent l'esprit de ce langage (et notamment, message à ceux qui font du Java, qu'on est pas obligé d'écrire systématiquement des classes et de faire de la programmation objet).

J'ai également effectué une session de 9 jours pour l'équipe de l'Assemblée Nationale, dont l'objectif était de maîtriser la programmation du CMS Plone 4. Et aujourd'hui, programmer Plone, ça veut dire maîtriser une pile de technologies assez impressionnante. Plone est un outil de gestion de contenu en ligne (un CMS) qui existe depuis 10 ans, et qui a suffisamment muri et évolué pour devenir l'un des CMS open-source les plus aboutis du marché. Très convivial pour l'utilisateur, facile à installer et à personnaliser pour un intégrateur suffisamment formé, mais relativement ardu pour le développeur qui doit comprendre les principes de Zope 2, ceux de Zope 3 et de la ZCA, les vieilles couches spécifiques à Plone comme le CMF ou Archetypes, les nouvelles couches comme Dexterity ou Grok, et évidemment les notions liées au CMS lui-même comme les workflows, les techniques d'authentification ou de cache. Ça fait beaucoup, mais tout n'est pas forcément nécessaire au début. Le minimum consiste à savoir créer une skin, un portlet, et un type de contenu. Grâce aux templates Paste fournis par ZopeSkel, ceci peut se faire en 10 minutes. Une chose est sûre, il vaut mieux chercher à comprendre les notions de manière vraiment isolée : Python tout seul, Buildout tout seul, Paster tout seul, Zope 2 tout seul, la ZCA toute seule, etc. Si on apprend en mélangeant tout d'un coup, c'est ingérable. Mais au final, ces technos permettent de créer des applications extrêmement complexes et puissantes, de manière propre, et avec une bonne pérennité. On trouve pas mal de Plone en service dans des entreprises ou administrations, qui tournent depuis des années, parfois avec très peu de maintenance... Et avec la sortie récente de Plone 4, on atteint un niveau de performance excellent.

La fiche du débutant

Lac Majeur

Lors de ces formations, notamment en Italie, j'ai été confronté à des gens dont la programmation n'est pas le métier. Certains avaient du mal à comprendre même la notion de variable, ou le fonctionnement d'un terminal. Dans ces conditions, comprendre la syntaxe du langage en trois jours est possible, mais faire des exercices en retenant par coeur toutes les notions ne l'est pas. Pourtant Python est très homogène, très lisible, et certainement l'un des langages les plus faciles à apprendre. Il est donc nécessaire de disposer d'une fiche mémo qui récapitule toutes les notions de base de manière classifiée, surtout sans être exhaustif : les types de bases, leur écriture littérale, les opérateurs, les différentes notations disponibles, etc. Le simple fait de visualiser une notation permet de se rappeler les explications. Pendant les formations, je résumais tout ceci au tableau, afin que ça reste en permanence visible. À l'occasion des conférences PyCon FR 2010, pour l'atelier d'introduction à Python, j'ai trouvé utile de reproduire tout ceci sur une fiche au format A5 et de le distribuer aux participants. J'ai eu des retours globalement positifs et le résultat peut être téléchargé ci-dessous, sous licence Creative Commons By SA. La licence est donc suffisamment souple pour que vous puissiez le réutiliser à volonté selon vos besoins :

Python Fiche Débutant

Cliquez simplement sur l'image pour télécharger le PDF. Si vous souhaitez modifier la fiche, vous pouvez aussi télécharger le fichier source au format SVG.


test