Aujourd'hui, j'ai décidé de vous parler un peu du système d'extensions de Cowblog. Pourquoi, comment, à quoi ça sert, bref, après cet article, vous comprendrez un peu mieux la politique que nous avons adoptée. Si vous n'êtes pas fan des explications techniques, ça risque d'être un peu chiant à lire, disons-le franchement :)

Un site web comme Cowblog, c'est une succession de fonctions. Plus il y en a, plus la page mettra de temps à charger, car en PHP, même une fonction qui n'est pas utilisée ralentira (légèrement) le temps d'execution puisque le serveur va quand même lire cette fonction et la "charger", même si elle n'est pas executée par la suite. Pourquoi je vous raconte ça ? C'est simple. Sur Cowblog, nous avons décidé de n'implémenter dans le noyau de base que le strict nécessaire à l'affichage d'un blog (en gros, données du blog, articles, commentaires, et quelques modules de base).

Ensuite viennent se greffer les extensions. Le code de la tagboard, par exemple, ne sera greffé que si le blog utilise l'extension. Ainsi, un blog ne l'utilisant pas sera chargé "plus vite". Mais au delà de ça (car si je mets "plus vite" entre guillemets, c'est bien parcequ'il s'agit de millisecondes, et que du côté visiteur, ça ne change rien), c'est tout le système qui est ainsi rendu flexible à souhait. L'ajout de nouvelles fonctionnalités devient très simple à mettre en place de notre côté, puisqu'il n'y a pas besoin de changer le code du noyau de Cowblog.

Un autre aspect qui nous a séduit dans cette politique de développement, est que le blogueur peut ainsi façonner son blog et son interface d'administration selon ses désirs : pour l'instant, le nombre d'extensions est encore restreint, mais nous en avons des dizaines en cours de développement, donc imaginez une fois qu'une centaine d'extensions sera disponible, Cowblog deviendra un outil vraiment flexible et paramétrable à souhait. Car à l'inverse, si dès que nous avions une idée, nous l'implémentions directement dans le noyau, cela alourdirait un peu plus le site, et cela créerait des dizaines de liens inutiles pour plein d'entre vous. Par exemple, l'extension labrute, que nous avons créée un peu pour déconner, puisque c'est la mode actuellement... imaginez si nous imposions un lien "La brute" dans le menu d'administration du blog... 
Le menu "obligatoire" ne comporte donc que les liens de base nécessaires à la gestion du blog.

Actuellement, seul Cowblog est habilité à créer et mettre en ligne des extensions, car le système en est encore à ses balbutiements. Mais courant 2009, une interface développeurs sera créée, et il deviendra possible à n'importe quel internaute maîtrisant les langages et les technologies que nous utilisons de développer une extension pour Cowblog (on verra par la suite ce qu'il y aura à gagner en contre-partie). Le but principal de l'opération est d'abord que nous n'avons pas le monopole des bonnes idées, il y a forcément des trucs auxquels on pense pas, et ensuite, même si on a plein d'idées, nous n'avons pas forcément le temps de tout mettre en place, ou du moins pas aussi vite que nous le souhaiterions... Mais ça, on aura l'occasion d'en reparler, car ça sera pas avant le deuxième semestre 2009 (le temps que le système soit bien en place).

J'ai essayé de vous présenter la chose de façon assez peu technique, mais si vous avez des questions, n'hésitez pas ;)