title: Encore une comparaison Django/Ruby on Rails, les deux frameworks web qui buzzent slug: encore-une-comparaison-django-ruby-on-rails-les-deux-frameworks-web-qui-buzzent date: 2006-09-21 14:52:38 type: post vignette: images/logos/frameworks_web.png contextual_title1: Sortie de Django 1.0, une année de nouveautés contextual_url1: 20080902-sortie-de-django-10-une-annee-de-nouveautes contextual_title2: ★ Astuces et bonnes pratiques Django contextual_url2: 20080211-astuces-et-bonnes-pratiques-django contextual_title3: Des vacances et des liens contextual_url3: 20071007-des-vacances-et-des-liens

Voila une discussion qui revient souvent sur la mailing-list de Django et Jeff Rodenburg a regroupé les réponses les plus pertinentes dans un même mail (pour comprendre la suite, ce sont des réponses à des nouveaux venus). N'ayant pas assez d'expérience avec Ruby on Rails, je préfère m'en tenir à la traduction des arguments de vétérans. Il y a bien sûr un certain parti pris et je serais intéressé par le même style de résumé provenant de la mailing-list RoR, je suis sûr que la question doit être fréquemment posée aussi... pas forcément avec les mêmes arguments en retour.

L'avis de Jeff Rodenburg

Quelques observations d'un vétéran du développement découvrant ces deux frameworks :

Si mon avis est biaisé en faveur de Django, c'est en partie en raison de ma préférence pour Python mais aussi de mon dédain pour le jihad Rails qui ne cesse d'enfler. Pour être totalement honnête, je suis du midwest. Comment est ce que je peux ne pas être en accord avec quelquechose sortant de Lawrence, KS ? ;-)

L'avis de Sean Schertell

Je suis passé de Django à Rails et depuis je m'éclate.

Mais ça dépend vraiment de ce dont vous avez besoin. Si vous développez une seule application monolithique, Rails est très bon. J'ai réalisé une énorme application de facturation/comptabilité pour une compagnie d'assurance avec Rails. Elle prend en charge des dizaines de milliers de membres et traite plus d'un million de dollars de transactions par mois à travers un processus atrocement complexe de facturation. À mon avis, Rails est parfait pour ce genre de choses. Je suis sûr que j'aurais pu faire la même chose avec Django mais Rails semble un peu mieux adapté à ce type de choses : de grosses et uniques applications. L'inclusion d'ajax nativement est très pratique aussi. Et la syntaxe Ruby est un réel plaisir à utiliser (même si je suis définitivement fan de Python).

Mais je considère qu'il y a des inconvénients à Rails, voici les raisons pour lesquelles j'ai changé :

Passons maintenant de l'autre côté :

Il y a quelques trucs dans Django qui ne sont pas parfaits.

Un dernier point au sujet des besoins et des finitions : peut-être la plus grosse surprise lorsque j'ai découvert Django, c'est le degré de finition du framework. Rails et Django sont très similaires dans leur catégorie à mon avis. Pour être honnête, je m'attendais à trouver Django un peu moins performant sur certains aspects et ce n'est pas du tout le cas. C'est très robuste, bien documenté et ça fonctionne très très bien. La communauté est géniale aussi. Django est vraiment un cran au dessus par rapport à Rails pour ce qui est de la finition.

L'avis de Russell Keith-Magee

Disclaimer : je suis un développeur Django. J'ai étudié à Rais avant de m'impliquer avec Django, et je « jette un œil » occasionnellement mais je n'ai pas une expérience significative avec Rails. Je peux me tromper sur certains points, donc n'hésitez pas à me corriger.

Vous avez raison lorsque vous dites que Rails et Django sont très semblables. L'évènement Snakes vs Rubies l'année dernière a confirmé le fait que Django et Rails ont des buts similaires - ils servent à développer rapidemment des applications aussi facilement que possible, dans le but de rendre l'usuel trivial et le spécifique possible. Le serveur en rechargement permanent, la facilité à arriver à un « hello world » et l'utilisation de langages avec des capacités importantes d'introspection sont des fonctionnalités communes aux deux frameworks.

Je suis sûr que d'autres avanceront d'autres opinions mais voici ma vision des différences.

Pour moi c'est un sérieux avantage. Les utilisateurs finaux ne devraient jamais voir l'interface d'administration. Mais en termes de création de projet je trouve l'interface d'administration inestimable. Elle permet de vérifier si vos modèles sont corrects en insérant quelques données de test pour valider vos vues en cours de développement. De plus, toutes les données utilisées dans l'interface d'admin sont aussi accessibles à l'utilisateur final par l'intermédiaire de leurs propres vues.

Mon avis

Bon finalement je ne peux pas m'en empêcher ;-). Vous aurez noté la différence de niveau de ces trois témoignages (même après traduction on sent toujours que le premier est un peu aigri...). Quelques précisions :

Et vous, pourquoi appréciez vous Django et/ou Rails ?