(Disclaimer: Ich habe diese Frage gestern bei Hacker News gestellt . Während die Antworten gut waren, da war ein bemerkenswerter Mangel an technischer Diskussion und mehr von einem "Sie sollten Schienen verwenden, weil das ist, was Sie wissen." Da Joel und Jeff klar sagen, dass sie Reposts von Fragen von anderen Seiten nicht stören ... und da ich wirklich die Antworten mag Ich finde hier ... hier geht's)
Hallo Leute.
Mir ist klar, dass dieser Post eine berüchtigte "versus" -Frage ist und zweifellos mit älteren Posts überflüssig ist. Die meisten Informationen, die ich auf Rails oder Django finde, sind jedoch veraltet und basieren auf viel älteren Versionen der Frameworks, also vergib mir bitte.
In erster Linie ... Ich bin ein Rails-Typ. Ich kam vor drei Jahren dazu und genoss wirklich viel von dem, was es an den Tisch brachte. Ich bin nicht nur ein Ruby-Typ ... Ich habe rund 11 Jahre Erfahrung, einschließlich Java, C / C ++, Perl, Tcl, (etwas) Python und mehr.
Jedenfalls habe ich eine Idee, von der ich glaube, dass sie die Welt übernehmen wird. Ich habe bereits ein paar Leute davon überzeugt und Freunde und Familien bekommen, um einige Offshore-Entwickler aufzunehmen und sie so schnell wie möglich in die Betaversion zu bekommen.
Jetzt bleibt mir jedoch die Entscheidung, welche Technologie ich verwenden soll. Während ich Ruby wirklich genossen habe ... Ich bin müde von der Magie und dem Missbrauch von offenen Klassen. Es ist sehr schön, wenn Sie schnell etwas Verhalten einbringen müssen, aber es kann zu einem echten Problem werden, wenn Sie Ihr Projekt oder eines der Plugins, von denen es abhängt, pflegen müssen. Ich persönlich bevorzuge Ruby gegenüber Python (hauptsächlich aufgrund von Blöcken), aber ich beneide die Klarheit-erste Einstellung in der Python-Community. Angesichts dieser Frustration denke ich ernsthaft darüber nach, tief in Django einzutauchen und es für dieses Projekt zu nutzen.
Die Pluspunkte, die ich auf der Rails-Seite sehe, sind:
Nachteile von Rails sind:
Die (wahrgenommenen) Pluspunkte auf der Django-Seite:
Nachteile von Django:
Also, das ist mein Denkprozess bisher. Ich bin mir ziemlich sicher, dass ich schnell auf Django beschleunigen konnte, und ich habe die Grundlagen von Python immer noch in meinem Speicher. Aber ich wollte deine Meinung hören, da ich die Vision und die Erfahrung vieler Leute, die ich hier lese, wirklich respektiere.
Ich schätze Ihre Hilfe. Ich denke wirklich, dass diese Idee aufgehen wird. Daher ist es für mich sehr wichtig, die richtige Technologieentscheidung zu treffen.
Und ich sage, dass ich Rails einfach wählen soll, weil ich Erfahrung darin habe, klingt einfach nicht richtig. Wenn das der Fall wäre, würde ich immer noch Perl oder C benutzen.
Danke!
[Repost von HN, der gleiche Link wie Frage, wie ich Ihre (Sie haben nicht auf HN antworten) und SO-Antwort hören möchten.]
Ich bin offensichtlich voreingenommen, da ich eine Django-Entwicklungsfirma betreibe. Das heißt, Ill beginnen mit der Beantwortung der Nachteile von Django,
Lernkurve .: Nicht mehr als jeder andere Rahmen. Plus die Dokumentation ist erstklassig. (Die Dokumentation war, was mich verkaufte, als ich evaluierte.)
Kleinere Gemeinde: Definitiv wahr. Aber jenseits einer kritischen Größe spielt die Größe der Gemeinschaft keine Rolle. Django ist weit über dieser Größe. (Irc: jede Zeit ~ 200 Devs. Google-Gruppe: 14000+ Benutzer)
Langsamerer Entwicklungszyklus des Projekts selbst ?: Warum? Wenn Sie mehr Details angeben, kann ich das beantworten.
(un) Verfügbarkeit von Offshore-Ressourcen: Definitiv weniger als Rails, aber immer noch nicht so schlimm, wie du gedacht hättest. Eine sehr kleine Liste, Ссылка ...
Das ist gesagt, mit den Informationen, die Sie haben, würde ich Ihren Fall Rails wählen. Selbst wenn die meiste Arbeit, die Sie auf Offshore-Ebene suchen, Ihre vorhandene Rails-Erfahrung wäre ein großes Plus, hilft Ihnen, Lieferanten zu bewerten, verfolgen.
Zu einer halbverwandten Anmerkung, Django ist weniger reif / kleinere Gemeinschaft ist viel zu groß, einige Figuren,
Sie haben mindestens einen Vorteil von Rails vergessen - erweiterte Testbarkeit über RSpec / Cucumber. Der wichtigste (zusätzliche) Vorteil ist die Aufmerksamkeit auf Ruby / Rails von der agilen Test-Community. Die Verwendung von Tests in natürlicher Sprache sollte die Fähigkeit, Ihre Tests zu begründen und die Verständlichkeit zu fördern, erheblich verbessern. In mancher Hinsicht würde dies die "Magie", die Sie verabscheuen, durch die Dokumentation über leicht lesbare Tests ausgleichen.
Darüber hinaus würde ich vorschlagen, dass ein neues Projekt, für das Sie das Geld Ihrer Freunde und Familie ausgeben, wahrscheinlich nicht die ideale Situation ist, um eine neue Sprache / einen neuen Rahmen zu lernen. Warum fügen Sie das zusätzliche Risiko einem bereits riskanten Unternehmen hinzu?
Ich werde einfach mit vielen Ihrer Aussagen argumentieren:
Da Sie Rails bereits kennen, sollten Sie sich daran halten, wenn Sie nicht wissen, dass es schmerzhaft sein wird. Auch wenn Sie nicht mit Rails zufrieden sind, würde ich Ihnen empfehlen, Tutorials für einige der anderen existierenden Python-Frameworks wie Turbogears 2, BFG und Grok zu lesen. Es kann sein, dass Sie etwas weniger monolithisches oder vollständiger bevorzugen würden, dass Rails / Django.
Ich habe eine andere Perspektive über diese beiden Frameworks, wie sie sich vergleichen. Ich bin immer noch ein Noob in diesen beiden, da ich ein Java-Entwickler bin, der nach etwas aufregendem sucht, um auf meiner Freizeit zu tun. Ich habe diese beiden Rahmenbedingungen genau beobachtet und kam zu folgendem Ergebnis:
Wie Sie wissen, stammt Rails aus einer webbasierten Anwendung von 37signals, die sich auf die Architektur von if auswirkt. Ich habe Rails jedoch noch nicht wirklich in der realen Anwendung benutzt, aber ich denke, ich könnte es für mein nächstes Lieblingsprojekt verwenden.
Django wurde aus einer Zeitungssite geboren, also auf eine Art und Weise, die auch die Architektur des Django beeinflusst. Ich habe nur Django in meiner Sandbox-Website verwendet und bisher habe ich sehr gerne Websites damit aufgebaut.
Einige Leute stimmen mir möglicherweise nicht zu, da sie eine Problemumgehung finden können, um Rails als Website und Django als Webanwendung zu verwenden. Aber das ist, was ich denke, die beiden aufgrund ihrer Architektur unterschieden. So wird auch definiert, wofür sie gut sind. Fühlen Sie sich frei, mir zu widersprechen: -)
Prost.
Tags und Links python django ruby ruby-on-rails