Django, TurboGears, Pylons

Bash, Shell, PHP, Python, Perl, CGI
User avatar
daemotron
Administrator
Administrator
Posts: 2635
Joined: 2004-01-21 17:44

Django, TurboGears, Pylons

Post by daemotron » 2009-03-13 10:48

So, dann will ich mal den ersten Beitrag für dieses Unterforum verfassen. Um es gleich vorweg zu sagen - ich habe dieselbe Frage schon in einem anderen Forum gestellt, dort allerdings keine Pythonistas angetroffen. Deshalb versuche ich es hier noch mal, in der Hoffnung, dass vielleicht der ein oder andere von Euch schon mal damit zu tun hatte.
Moin,

für eine Web-Applikation stehe ich grade vor der Qual der Wahl, welches Framework ich benutzen kann/soll/will... Meine Kriterien sind recht sparsam: Es muss Python sein, und die Anwendung soll später auf einem FreeBSD-Server laufen. Das Backend darf PostgreSQL oder SQLite sein; der Applikationsserver ein Apache 2.2 mit mod_wsgi.

In den Ports habe ich (relativ) aktuelle Versionen von TurboGears, Django und Pylons gefunden. Mit TurboGears und Django habe ich schon mal herumexperimentiert (aber noch keinen produktiven Code geschrieben). Pylons wird in der Community gerne als WSGI-Referenz bemüht und ist daher auf meinem Radar aufgetaucht.

Alle drei Frameworks erfüllen die Mindestanforderungen problemlos. Die technischen Unterschiede zwischen den Frameworks kenne und verstehe ich, soweit das aus einem rein theoretischen Blickwinkel eben möglich ist. Was mir fehlt, sind ein paar Stimmen aus der Praxis. Ich möchte ungern jetzt erst los- und mich dann verrennen - also Frauen und Männer der Tat, wer von Euch hat schon mal mit einem der genannten Frameworks entwickelt? Worauf sollte ich achten, um mir keine blutige Nase zu holen?

Anmerkung für Nicht-BSDler: Ports ist das (Meta)Paketverwaltungs-System von FreeBSD und ähnelt Gentoo Portage.
“Some humans would do anything to see if it was possible to do it. If you put a large switch in some cave somewhere, with a sign on it saying 'End-of-the-World Switch. PLEASE DO NOT TOUCH', the paint wouldn't even have time to dry.” — Terry Pratchett, Thief of Time

Roger Wilco
Administrator
Administrator
Posts: 5924
Joined: 2004-05-23 12:53

Re: Django, TurboGears, Pylons

Post by Roger Wilco » 2009-03-14 16:46

Ich habe vor einer Weile mit Django herumgespielt. Das war etwa zu der Zeit, als Ruby on Rails, Django und die ganzen Copycat Frameworks auf der Bildfläche erschienen sind. Damals haben mich bei Django das umfassende Gesamtpaket und die gute Dokumentation begeistert und das hat sich bis heute glaube ich nicht geändert.
Im Gegensatz dazu schien mir TurboGears immer etwas zusammengeklebtes zu sein, bei dem das Framework es nicht schafft, dass es homogen aussieht und funktioniert. Von Pylons habe ich auch schon gehört, allerdings noch nie eine Zeile Code dafür geschrieben.

HTH

User avatar
daemotron
Administrator
Administrator
Posts: 2635
Joined: 2004-01-21 17:44

Re: Django, TurboGears, Pylons

Post by daemotron » 2009-03-15 02:23

So, nachdem ich nun einige (etliche...) Stunden mit den Frameworks herumgespielt habe, kann ich mal einen kurzen Zwischenstand abgeben: Deinen Eindruck von TurboGears teile ich; irgendwie ist der Kitt zwischen den einzelnen Komponenten recht brüchig. Daran hat auch die 1 im Major Release nichts geändert. Als Wahlmöglichkeiten bleiben somit Django und Pylons. Pylons setzt ähnlich wie TurboGears auf ein Sammelsurium an Einzelkomponenten aus verschiedenen Quellen, während Django alles aus einem Guss liefert, zusätzlich aber auch Komponenten von Drittanbietern (etwa Template-Engines, ORM etc.) verwenden kann.

Im Gegensatz zu Turbogears wirkt Pylons etwas durchgestylter und konsistenter, aber auch flexibler in der Wahl der Komponenten. Statt CherryPy kommt Paste zum Einsatz, als Standard-ORM wird wie bei TurboGears SQLAlchemy vorgeschlagen. Im Vergleich mit Django wirkt Pylons oft wie Smalltalk im Vergleich zu Java: Django ist praxisorientierter und bietet für viele Dinge bereits fertige Lösungen (Authentifizierung, automatisches Admin-Backend), während Pylons mehr Wert auf die "reine Lehre" (sprich: saubere Standard-Adaption) legt.

Fazit (vorsicht, persönliche Meinung!): TurboGears hat mit Kid das professionellste Templating-System - da reichen weder Djangos Eigenbau noch das von Pylons favorisierte Mako heran. Die schnellsten deploybaren Ergebnisse erzielt man IMHO mit Django, auch wenn man beim Model für meinen Geschmack zu häufig auf Raw SQL zurückgreifen muss (versucht mal, eine optionale n:m-Beziehung auf self mit Bordmitteln abzubilden...). Da es bei meinem Projekt auch um rasche Ergebnisse geht, habe ich mich für Django entschieden, werde aber möglicherweise für die Ausgabe auf Kid zurückgreifen.
“Some humans would do anything to see if it was possible to do it. If you put a large switch in some cave somewhere, with a sign on it saying 'End-of-the-World Switch. PLEASE DO NOT TOUCH', the paint wouldn't even have time to dry.” — Terry Pratchett, Thief of Time

squize
Userprojekt
Userprojekt
Posts: 729
Joined: 2003-05-19 16:46
Location: Karlsruhe

Re: Django, TurboGears, Pylons

Post by squize » 2010-01-07 17:26

An dieser Stelle von mir auch mal ein Statement. Ich arbeite mit Django, habe mir aber vorher einige andere Angeschaut ( Symfony,Rails,Turbogears,Typo3,Pylons,Plone,....)

Ich habe mich für Django entschieden:

1. Mit Abstand beste Docu ( für mein Wissenslevel natürlich)
2. Ausreichend Performant
3. Templatesystem liegt mir ( Eigene Tags schnell umzusetzen)
4. Einen Haufen vorgerfertigte Apps zum Lernen und Einsetzen
5. Python ist auch meine Alround-Sprache

Ich bin also voll zufrieden mit Django, eine entscheidende Schwachstelle, die für viele ein Problem werden könnte sollte erwänt werden:

Es gibt in der Grundausstatttung keine Rowlevel ACLs, die schnell einsetzbar sind. Es gibt zwar 2 Apps, die das umsetzen, man kommt aber nicht ohne Aufwand weiter und ich habe keine Ahnung wie es dann mit der Performance aussieht.



Gruss

MArc

papabaer
Userprojekt
Userprojekt
Posts: 170
Joined: 2009-05-14 17:40
Location: Halle (Saale)

Re: Django, TurboGears, Pylons

Post by papabaer » 2010-01-08 00:31

Auch wenn jetzt schon viel dazu gesagt wurde von mir noch n Statement. Ich habe aus Unzufriedenheit heraus so gut wie alle gängigen Frameworks in allen gängigen Sprachen durch. Es gibt nix, wozu man einfach nur supergut sagen würde, alle haben mehr oder minder Macken, die meisten mehr.

Pylons ist ne Weile her, aber ich empfand das arbeiten damit unmöglich. Von der Theorie gut, in der Praxis aufgrund ständiger Dependency-Brüche unbenutzbar. Man installiert es, man startet es, Fehler. Man fixt den Fehler, codet nach Handbuch, geht nicht. Man sucht nen ganzen Tag, um dann festzustellen, dass in irgend ner Bibliothek Änderungen gemacht wurden, die die API brechen.Turbo-Gears fand ich oft zu "gestelzt" und schlecht umgesetzt. Da muss man Sachen selbst coden, die eigentlich ins Framework gehören.

Im Moment denke ich auch, dass Django das beste ist, was gerade zu haben ist, nicht nur im Python-Bereich. Vielleicht kommt Rails mal an nen Punkt, an dem sie nicht bei jedem Minor-Release ihr API umschmeißen, dann könnte man damit sicher auch tolle Sachen bauen, die in 3 Monaten noch ohne derbe Fingereien laufen.