146 votes

Veuillez traduire ceci en conservant les balises HTML existantes de l'anglais vers le français : Django OU Rails

Je suis un développeur ASP.NET, mais je veux apprendre d'autres frameworks/langages (open source).

Django et Rails semblent tous les deux prometteurs, mais je suis confus quant à celui que je devrais choisir pour commencer, ou si je devrais en choisir un autre.

Je sais que apprendre le langage (python ou ruby) est indispensable avant de commencer avec Django ou Rails.

268voto

vdboor Points 6259

Je viens de commencer à apprendre Django, après avoir lu le tutoriel python en quelques soirées. Les choses que j'ai remarquées:

  • Un dimanche après-midi, j'ai réussi à créer deux pages de liste/ajout entièrement fonctionnelles.
  • Mon code était déjà assez court, et pourrait même être raccourci davantage après quelques révisions.
  • L'API des vues, le langage de modèle et le SGBDR permettent vraiment d'accélérer.
  • Ça m'a semblé être super! Il y a une vérité dans celui-ci: http://xkcd.com/353/ :D

Mon point de vue sur Django vs Rails, basé sur ce que j'ai lu jusqu'à présent:


  • En Python, les choses sont plus explicites. En utilisant simplement le bloc-notes, vous pouvez toujours dire d'où une fonction est importée.
  • Rails crée magiquement des méthodes à la demande lorsque vous essayez de les invoquer (par exemple, les méthodes find_by_...). Évitant ainsi la programmation de méthodes inutiles, tout en nécessitant un peu plus de connaissances.

  • Django augmente en outre la productivité en proposant des vues génériques (pensez à eux comme des classes de base).
  • Rails augmente également la productivité en offrant du scaffolding (générer du code).

  • Django vous oblige à spécifier explicitement votre modèle.
  • Rails peut extraire votre modèle à l'exécution à partir du schéma de votre base de données.

  • Django a eu la performance à l'esprit dès le premier jour.
  • Dans Rails, la productivité du programmateur est vue comme plus importante.

C'est là que, selon moi, la différence entre Rails et Django se résume vraiment: Rails fait les choses "par convention". Django exige que vous soyez un peu plus explicite, ce qui permet en retour au cadre d'être plus performant. Laquelle vous préférez dépend principalement du type de programmateur que vous êtes. Je suis évidemment un gars Python/Django ;)

Les deux vous permettent de démarrer un serveur de développement directement (comme VS propose pour .NET). Les deux permettent FastCGI pour l'hébergement (comme les pools d'apps IIS), peuvent être exécutés sur les écosystèmes JVM (JRuby, Jython) et .NET (IronRuby et IronPython) et ont tous deux des solutions spécialisées pour exécuter un pool d'applications (mod_wsgi dans le cas de Django, mod_rails dans le cas de Rails).

62voto

Emile Bosch Points 1

Ok, alors je viens de passer de l'entreprise c#, asp.net mvc, asp web forms après avoir développé depuis la version bêta de la plateforme .net à rails.

Pourquoi rails et pas django? J'ai examiné les deux mais j'ai finalement choisi rails pour les raisons suivantes.

  • DEVELOPPEMENT RAPIDE - Les gens disent que django est plus rapide à cause de l'interface admin. Tout comme django, vous pouvez développer rapidement avec rails en utilisant juste rails sans gems, vous pouvez probablement développer un peu plus rapidement avec django parce que django génère des écrans admin. Mais l'excellent gem active_admin http://activeadmin.info/ est là pour combler ce vide, donc en l'utilisant vous êtes tout aussi rapide. En ajoutant tous les gems qui existent, cela devient une machine de livraison rapide et efficace.
  • LA SUITE - Rails ce n'est pas juste pour le développement, c'est aussi pour les tests fonctionnels, les tests de performance et le déploiement. Surtout si vous utilisez Cucumber ou Capybara, vous pouvez intégrer pleinement les tests de votre application. Développer votre application est une chose, mais quand vous la publiez 10 fois par jour comme github, easy ou shopify vous voulez vous assurer que vos tests fonctionnent. Rails a de bons gems pour cela et un écosystème brillant pour le soutenir.
  • L'ECOSYSTEME - Rails vient avec des gems, des petites bibliothèques réutilisables que les gens mettent à votre disposition. Chaque fois qu'un gem génial est publié, cela me rend heureux et renaît. Par exemple active_admin pour les écrans admin, omniauth pour une authentication facile avec FB, Twitter, Github, peu importe. C'est comme un iPhone qui s'améliore avec chaque application.
  • DEPLOIEMENT - Rails est conçu pour le déploiement, regardez capistrano ou heroku. Regardez des outils comme vagrant avec chef. Et maintenant, bushido arrive pour un déploiement de style App Store. De plus, Travis CI est là pour tester votre code.
  • LA COMMUNAUTE - Les personnes de la communauté Rails sont géniales, elles portent des lunettes et sont instantanément des hipsters (guenilles ruby). Malheureusement je ne suis pas aussi fantastique (vision 20/20) mais un jour j'aurai des lunettes moi aussi. /J Non la communauté de rails est très grande et généralement des personnes cool, intelligentes et pragmatiques y participent.

Pour être honnête, j'ai développé au cours des 10 dernières années pour des clients d'entreprise tels que Sony Ericsson, Ikea et d'autres grands clients. J'ai cherché des plateformes et des cadres qui me permettent de mettre en œuvre les meilleures pratiques (développement piloté par les tests, déploiements automatisés, livraison continue) et rails est celui qui me les offre toutes.

Des inconvénients vous dites? Certains diraient que rails ne scale pas. Je pense que cela a généralement été démystifié à présent. Cependant, je dis que rien ne scale si ce n'est pas entre de bonnes mains. Je crois que ruby est un tout petit peu plus lent que python, mais avec la nouvelle version il devient plus rapide maintenant. Github utilise rails, ainsi que d'autres entreprises incroyables. http://stackoverflow.com/questions/134202/whos-using-ruby-on-rails-in-production

Mais je serais ravi d'acheter plus de matériel pour toutes les bonnes choses que rails offre et pour l'augmentation de la vitesse de développement et de la communauté que j'obtiens avec rails. De plus, Martin Fowler, un type assez intelligent qui a écrit beaucoup de livres et qui travaille chez Thoughtworks a partagé cela à propos de rails http://martinfowler.com/bliki/EvaluatingRuby.html

En fin de compte.

Sortez, essayez-les tous les deux. Regardez tout le panorama qui entre en jeu pour construire, et maintenir et tester une application. Et prenez votre décision ensuite.

35voto

eos87 Points 2210

Try Django, c'est très simple, facile à apprendre, très puissant et possède une interface d'administration très utile, qui n'a pas Rails. :)

27voto

mportiz08 Points 3302

Essayez les deux - travaillez sur un tutoriel simple pour chacun, et je suis sûr que vous constaterez que vous avez apprécié l'un plus que l'autre par la suite.

20voto

Eimantas Points 29052

Vous ne devriez pas vous demander quel framework vous devriez commencer à apprendre. Les frameworks sont de très bons reflets des langages dans lesquels ils sont construits. Par conséquent, vous devriez d'abord apprendre soit python, soit ruby.

"Python vs Ruby" est juste un autre sujet de guerre sainte, mais selon moi c'est aussi inutile que "Vi vs Emacs". En résumé, essayez les deux et voyez quel langage correspond le mieux à votre état d'esprit. Une fois que vous aurez commencé à maîtriser le langage, le framework vous semblera plus naturel car vous serez familiarisé avec le langage dans lequel il est écrit, donc en connaissant les pourquoi et les comment du framework lui-même.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X