Développement

Pourquoi Ruby on Rails?

Nos clients, amis, groupies ;),… vous nous posez souvent cette question. Et tant mieux! Nous aimons l’entendre et nous aimons y répondre. D’ailleurs, profitons de notre blog pour vous en dire un peu plus à ce sujet.

Ruby on Rails – RoR pour les intimes – est le framework que nous utilisons pour concevoir nos sites web. Un framework, c’est une structure de base commune à chaque projet, une collection d’outils de développement, un ensemble de bonnes pratiques. C’est tout ça à la fois, et c'est plus encore.

CMS versus Framework

CMS signifie « Content Management System » ou « système de gestion de contenu ». Nous entendons par là un système de création et administration de site web prêt à l'emploi, comme Wordpress ou Joomla par exemple.

Un CMS permet de concevoir un site web en un temps record.

Sans taper une ligne de code, un site fonctionnel est déjà en place. Il s’agit ensuite d’ajouter quelques extensions que d'autres ont développé pour nous, créer un thème (ou utiliser un thème existant), modifier quelques configurations et ajouter du contenu. Et c’est réglé, et tout le monde est content d’être heureux. On exagère un grain, mais l’idée est là: l’objectif, c’est la rapidité et la facilité.

Un framework, lui, offre une souplesse imbattable.

Plutôt que d’assembler des pièces préfabriquées – comme on le ferait avec un CMS – on bâti un site web selon une structure définie et à l’aide d’un lot de fonctionnalités disponibles. Un framework nécessite de bonnes connaissances en développement et une excellente compréhension de l’outil en lui-même.

Malgré leur grande différence de concept...

Tout est possible avec un CMS.
Tout est possible avec un framework.

Ce n’est donc pas le résultat qui influence notre choix en faveur du framework, c’est le besoin. Une image valant mieux que 1024 mots, voici une courbe représentant les efforts fournis en fonction de la personnalisation d’un site web, selon s’il est basé sur un CMS ou un framework.

Courbe d'effort en fonction du niveau de personnalisation d'un site web

Ce graphique n’est pas à une vache près, mais exprime parfaitement la problématique à laquelle on fait face lorsque l’on doit choisir entre un CMS et un framework. En effet, plus le projet est complexe plus on risque d’être limité par un CMS. À la différence d’un framework, qui nécessite un apprentissage plus conséquent mais offre une palette d’outils simplifiant le développement, quel que soit le niveau de complexité du projet.

Des solutions sur-mesure

Voilà un argument de poids: la souplesse. Chacun de nos projets représente un besoin unique et nous désirons être libres de concevoir et créer à partir de zéro. Ciao les limites causées par des plugins pas tout à fait à notre goût et mal documentés, ciao les problèmes de compatibilités dûes aux mises à jour. Bonjour la liberté, bonjour la durabilité!

Pourquoi ce framework plutôt qu'un autre?

Ruby on Rails est un framework web open-source optimisé pour le plaisir des développeurs et la productivité durable.

http://rubyonrails.org

Choisir un framework nécessite de se poser quelques questions, dont:

  • Quelle est la philosophie de celui-ci?
  • Est-il répandu et utilisé pour des produits semblables aux nôtres?
  • Quelle est la taille de sa communauté?
  • Est-il suffisamment mature pour être utilisé en production?
  • Quel est son business model, son type de license?
  • Comment est-il documenté?
  • Etc, etc.

Certes. Mais comment choisir entre des stars telles que Symfony2, Zend, Django, ASP.NET MVC ou Ruby on Rails par exemple? Certainement pas d’après une liste de critères, puisque ces frameworks se défendent tous mieux les uns que les autres.

Pourquoi on l’aime

Ce qu’on aime à propos de Ruby on Rails et pourquoi.

Son langage: Ruby
Matz (de son vrai nom Yukihiro Matsumoto) s’est donné pour objectif d’augmenter la productivité et le plaisir des développeurs en créant le langage Ruby. Pour nous, c’est plus que réussi! De sa syntaxe épurée et très compréhensible à son respect du principe de moindre surprise, autant vous dire qu’on n’est pas nostalgiques de l'époque PHP ;-)

Sa philosophie
RoR respecte le principe de « Convention over Configuration ». Cela signifie qu'un comportement par défaut existe pour un maximum de fonctions, on ne configure donc que ce qui sort de ces conventions. Un avantage immense selon nous, puisque ce principe évite un grand nombre de choix au développeur et lui permet de se concentrer sur l'essentiel: la solution en elle-même.

Sa communauté
Ruby on Rails c'est aussi une communauté grandissante de développeurs, représentant aujourd’hui plus de 2’300 contributeurs sur github. C'est une solution libre, tout le monde peut donc participer à son amélioration en proposant des modifications. Nous parlions en début d’article de plugins pour le CMS, eh bien Rails aussi a sa gamme de plugins  appelés « gems » dans le monde Ruby. Nous en profitons dans nos projets et désirons, dans un futur proche, faire profiter la communauté de nos contributions.

L’essayer, c’est l’adopter!

Toutes ces raisons nous ont poussé à nous intéresser à Ruby on Rails, mais ce qui nous a réellement décidé c’est le plaisir de travailler avec cet outil. Et si nous considérons le plaisir comme essentiel, c’est que nous sommes convaincu qu’il impacte directement notre motivation, notre application et notre efficacité. Quoi de mieux que de travailler avec un outil qu’on aime!?

Et vous?

Et vous, avec quel outil aimez-vous travailler? Plutôt CMS, Framework?
PS: Si vous n’êtes pas convaincu(e) du plaisir que procure RoR, testez Ruby (http://tryruby.org/) puis RoR (http://railsforzombies.org/) par vous-même, vous nous en direz des nouvelles ;-)