Seite 1 von 2

Webframeworks: Die höchste Kunst der Webprogrammierung?

Verfasst: Samstag 28. Februar 2009, 20:08
von ogurek
Hallo Leute,

ich bin hauptsächlich an Webentwicklung interessiert. Mir schweben auch einige Ideen im Kopf herum, am Inhaltlichen wird es also nicht mangeln. ;-)

Angefangen habe ich wie viele mit simplen statischen Seiten, auf reiner HTML-Basis. Dann kam erwartungsgemäß CSS dazu und im Laufe der Zeit versuchte ich herauszufinden, wie das eigentlich die Profis machen, mit den Webseiten im Internet. Müssen die etwa auch alles so wie ich manuell und umständlich offline ändern?

Also bin ich mit der Zeit auf PHP gestoßen und habe dort meine ersten Erfahrungen mit Skriptsprachen gemacht. Weil meine Kenntnisse allerdings nicht ausreichten, suchte ich schon nach einiger Zeit nach Alternativen und traf auf das Stichwort CMS. Genau das Richtige für mich zu dieser Zeit. Mit diesen habe ich bis dato auch Homepages umgesetzt, aber eben nur Homepages - private für mich, für Bekannte oder Freunde. Und doch habe ich gemerkt, egal welches CMS ich ausprobiert habe, mit keinem wurde ich so richtig glücklich. Mal hat hier was gefehlt, mal hat das Plugin nicht richtig funktioniert. Außerdem hänge ich ständig an dieser Vorstellung, ich möchte doch was lernen, womit ich ausgesorgt habe und alles in jeglicher Richtung realisieren kann.

Mit diesen Anforderungen kommend, bin ich letztlich auf das Thema Webframework aufmerksam geworden. Diese scheinen scheinbar genau das mitzubringen, was ich suche. Eine Plattform mit der man angefangen von simplen kleinen Homepages ganze Webanwendungen schreiben kann.

Daher frage ich mich - "Webframeworks: Die höchste Kunst der Webprogrammierung?"

Sollte man solch ein Webframework erlernen, anstatt sich auf ein oder mehrere CMS zu spezialisieren, um auch in Zukunft keine Realisierungsprobleme zu haben?

Habt ihr Erfahrungen mit der Umsetzungszeit bei der Verwendung eines Framworks, beispielsweise für die Erstellung einer konventionellen Homepage ohne viel SchnickSchnack, vielleicht noch mit einem kleinen Backend? Kann man dies bei ausreichend Erfahrung in vergleichbarer Zeit umsetzen, wie es ein standard-CMS könnte?

Und zu guter Letzt - lohnt es sich, sich ein Webframework anzueignen - und wenn ja, welches sollte man wählen? Ich spiele mit dem Gedanken, mein Votum an Pylons (nicht zuletzt wegen Python; etwas ausprobiert habe ich Python schon und es sagt mir grundlegend sehr zu) zu vergeben. Fahre ich damit langfristig auf einer sicheren Schiene?

Entschuldigt bitte den etwas unstrukturierten und leicht konfusen Text, das waren einfach die Dinge, die mir so im Kopf schwebten und jetzt ihren Weg nach draußen gebahnt haben. :oops: :D

Verfasst: Samstag 28. Februar 2009, 20:50
von DasIch
Es gibt eine ganze Reihe von Frameworks für Python auf die man alle recht schnell stösst.

Schau dir die einfach mal an und mach eine Liste von Frameworks von denen du glaubst dass sie dir gefallen könnten mit denen machst du dann alle eine Aufgabe, nichts riesiges aber ausreichend komplex um dass Framework recht gut kennen zu lernen und dann nimm einfach dass was dir am besten gefallen hat.

Alles andere wird dich nicht sonderlich nicht viel weiterbringen weil dir einfach jeder sein Lieblingsframework nennt oder irgendeine Kombination aus Librarys.

Re: Webframeworks: Die höchste Kunst der Webprogrammierung?

Verfasst: Sonntag 1. März 2009, 03:47
von Leonidas
Hallo ogurek, willkommen im Forum,
ogurek hat geschrieben:Außerdem hänge ich ständig an dieser Vorstellung, ich möchte doch was lernen, womit ich ausgesorgt habe und alles in jeglicher Richtung realisieren kann.
Ich denke die Zeiten sind zumindest seit Unseren Großeltern oder Urgroßeltern vorbei, wo man einmal was gelernt hat und das dann sein ganzes Leben gemacht hat. Ich fände sowas auch schrecklich langweilig und im Bereich von Computern auch ziemlich unrealistisch. Sonst würden wir heute noch Perl auf CGI nutzen.
ogurek hat geschrieben:Daher frage ich mich - "Webframeworks: Die höchste Kunst der Webprogrammierung?"
Jein. Ein Webframework ist wie ein CMS auch ein Kompromiss zwischen nötigem Zeitaufwand um etwas zu realisieren (da verlieren Frameworks meist gegen CMS) und der Flexibilität (da Punkten sie gegenüber CMS). Das heißt also dass du bei einem Framework dich einverstanden erklärst gewisse Beschränkungen in Kauf zu nehmen, aber dafür für viele Aufgaben schon fertigen Code hast den du nur aufrufen musst.
ogurek hat geschrieben:Sollte man solch ein Webframework erlernen, anstatt sich auf ein oder mehrere CMS zu spezialisieren, um auch in Zukunft keine Realisierungsprobleme zu haben?
CMS finde ich generell eher sub-par. Joomla vermittelt das Gefühl dass es aus Zahnstochern und Spucke besteht und Plone, obschon wesentlich besser für viele Seiten schlichtweg zu komplex ist.
Generell tendiere ich also zu Webframeworks. Eigentlich nicht zu einem bestimmten, ich wäge da auch immer ab was ich habe und was ich erreichen will.
ogurek hat geschrieben:Habt ihr Erfahrungen mit der Umsetzungszeit bei der Verwendung eines Framworks, beispielsweise für die Erstellung einer konventionellen Homepage ohne viel SchnickSchnack, vielleicht noch mit einem kleinen Backend? Kann man dies bei ausreichend Erfahrung in vergleichbarer Zeit umsetzen, wie es ein standard-CMS könnte?
IMHO: ja. Besonders ein CMS richtig anzupassen erfordert unter Umständen mehr Arbeit als so eine Seite mit einem Webframework aus dem Boden zu stampfen.
ogurek hat geschrieben:Und zu guter Letzt - lohnt es sich, sich ein Webframework anzueignen - und wenn ja, welches sollte man wählen? Ich spiele mit dem Gedanken, mein Votum an Pylons
Ja, Pylons ist wohl durchaus brauchbar. Ich nutze hauptsächlich aber Django (+ einige Hacks und Libraries).

Verfasst: Sonntag 1. März 2009, 11:21
von sma
Die Vorstellung, für alle Zeiten nur einmal zu lernen, funktioniert nur, wenn "alle Zeiten" relativ kurz ist. Zu sehr ändert sich die Welt der Programmierung, schon da wir alle fortlaufend dazu lernen und da die Technik immer mehr Möglichkeiten bietet.

Am nächsten an einem CMS (und dessen hohem Vorfertigungsgrad) ist IMHO Django dran. Es kann nicht so viel, wie ein fertiges CMS, dafür ist es flexibler. Und vielleicht brauchst du ja auch viele Funktionen nicht. Es gibt auch das Django-CMS-Projekt, das basierend auf dem Django-Webrahmenwerk ein CMS bauen will. Mir gefiel jedoch nicht die Richtung, in die es geht. CMS bedeutet für mich noch etwas anderes. Der Begriff ist aber so dehnbar, dass er eigentlich gar nichts bedeutet...

Ob du mit Pylons auf der sicheren Schiene fährst? Ich weiß es nicht, glaube aber, dass es nicht eine so große Anhängerschar hat, wie Django. Über Nacht verschwinden wird es auch nicht, aber auf Grund der Tatsache, dass es viele Dinge kombinieren will und so die Community zersplittert, glaube ich nicht, dass es mal Nummer 1 wird.

Übrigens: Wenn dich die zusätzliche Komplexität von Ruby gegenüber Python nicht abschreckt, dann denke ich, dass du mit Rails auch nicht schlecht fährst. Bereits im fünften Jahr hat es gerade gegen Merb gewonnen und hat (zumindest in den USA) die Industrie erreicht und wird nicht mehr so schnell verschwinden. Das ist allerdings noch weniger CMS und ich persönlich tue mich deutlich schwerer, damit warm zu werden. Ich denke, ich muss mir wohl nachbauen, was ich bei Django lieb gewonnen habe...

Stefan

Verfasst: Sonntag 1. März 2009, 22:25
von ogurek
Hey ich möchte mich erstmal für eure Antworten bedanken.

Ich habe mich jetzt eigentlich dazu durchgerungen, mich in Pylons einzuarbeiten. Da ich an konkreten Projekt wie gesagt besser lerne, möchte ich mir eine kleine Blogapplikation schreiben.

Jetzt stellt sich nur die Frage, "wie anfangen?"

Kann ich das Projekt angehen, indem ich direkt in Pylons einzusteigen versuche, ohne wirkliche Kenntnisse von Python zu haben?

Oder muss ich erst komplett Python beherrschen, um mit Pylons und den Tutorials umgehen zu können?

Verfasst: Sonntag 1. März 2009, 22:33
von DasIch
Ich würde sagen man sollte zumindest dass Tutorial durchgearbeitet haben wobei der Part mit der stdlib dabei nicht unbedingt notwendig ist allerdings sollte man collections, functools und itertools kennen sowie datetime wenn man mit Zeiten zu tun hat. Die stdlib ist generell recht umfassend und ein Blick darein lohnt sich oft wenn man ein Problem hat.

Verfasst: Montag 2. März 2009, 22:28
von ogurek
Hey dann bedanke ich mich schon mal bei euch. :)

Ein abschließende Frage, kann mit mit Pythons so ohne weiteres bei der Programmierung auf Frameworks wie Django oder Pylons verzichten?

In wie weit ist das möglich und sinnvoll?

Bei PHP sehe ich beim dem Verzicht auf ein Framework beispielsweise nicht unbedignt einen Nachteil. Wie ist das bei Python?

Verfasst: Montag 2. März 2009, 23:09
von nemomuk
Ohne irgendwelche Frameworks, geht es natürlich auch, aber davon kann ich nur abraten. Das wäre dann zimelich Low-Level und da wirst du bald merken, dass es einfach keinen Spaß macht und auf PHP-Level bleibt... Es gibt auch Tools wie zB Werkzeug mit denen man lediglich ein "Werkzeug" hat und kein überfrachtetes Framework (welche ich nicht besonders mag - programmiere allerdings auch nich allzu oft WebApps).
Ein guter Startpunkt wäre http://werkzeug.pocoo.org/ - dort findest du auch ein Klasse Tutorial. Damit kann man meiner Meinung nach unheimlich elegant und flexibel WebbApps schreiben. Man hat halt weniger vorgefertigte Funktionen, hat dafür aber auch ein individuelles/flexibles Tool. Du kannst dir dein eigenes ORM und Template-System aussuchen usw.

Verfasst: Montag 2. März 2009, 23:39
von Leonidas
ogurek hat geschrieben:Ein abschließende Frage, kann mit mit Pythons so ohne weiteres bei der Programmierung auf Frameworks wie Django oder Pylons verzichten?
Kann man, klar. Finde ich aber eher selten sinnvoll. Welchen Vorteil möchte man dadurch haben? Mehr Arbeit indem man das Rad neu erfindet (zudem teilweise auch schlecht neuerfindet)? Schließlich sind Webapplikationen ja oft alter Wein in neuen Schläuchen.
ogurek hat geschrieben:In wie weit ist das möglich und sinnvoll?
Möglich ja, sinnvoll.. nunja, man kann WSGI verwenden + die Middlewares und Libraries. Letztendlich kann man sich so sein Framework selbst zusammenstellen.
ogurek hat geschrieben:Bei PHP sehe ich beim dem Verzicht auf ein Framework beispielsweise nicht unbedignt einen Nachteil.
Also ich schon. Das was die Leute ohne Frameworks in PHP zusammenbasteln ist ja übelst. Da bin ich ja froh, wenn sie schon PHP-Frameworks verwenden. Das bedeutet dann wenigstens nicht dass das Produkt zusammengecopypastet ist sondern dass dann jemand dran war der zumindest mal irgendeinen Funken von Programmieren versteht am Werk war.

Verfasst: Dienstag 3. März 2009, 08:56
von jens
Im Wiki gibt es den Punkt "Welches Framework für wen", siehe: [wiki]Web-Frameworks[/wiki]

Verfasst: Dienstag 3. März 2009, 14:04
von ogurek
Hi ich danke euch. Ich habe mich jetzt auf Python in Kombination mit Pylons festgelegt, man muss das Rad wirklich nicht neu erfinden. Dass was ich bisher von Pylons gehört habe spricht für sich, von daher. :wink:

Jetzt suche ich lediglich noch nach guten, empfehlenswerten Büchern zum Thema Python bzw. Pylons, da ich weitaus lieber aus Gedrucktem lese, als vom Monitor.

Gibt es da wirklich heiße Kanditaten, die ich ohne zu zögern kaufen kann?

Verfasst: Dienstag 3. März 2009, 14:08
von jens
Wenn es um gute Dokumentation und Bücher geht, wirst du wohl mit django besser fahren. Denke dazu gibt es wesentlich mehr als über jedes andere Framework...

Verfasst: Dienstag 3. März 2009, 14:11
von zero-one
Ich habe die Buecher:
Programming Python ISBN: 0596009259
Core-Python-Programming ISBN: 0132269937

wobei beide Buecher Python 2.5 behandeln... ich finde das core python jedoch besser als das von O'reilly... weiss nicht obs gute/bessere neue Buecher gibt... und zu Pylons kann ich leider auch nix sagen ... aber das core python kann ich empfehlen

Verfasst: Dienstag 3. März 2009, 14:16
von ogurek
jens hat geschrieben:Wenn es um gute Dokumentation und Bücher geht, wirst du wohl mit django besser fahren. Denke dazu gibt es wesentlich mehr als über jedes andere Framework...
Das mag sein, aber wenn ich etwas lerne, dann will ich so wenig Einschränkungen wie möglich haben und die Freiheit haben, auch wirklich so viel zu lernen, wie ich möchte. :)

Ist einfach meine Meinung.

@zero-one,

danke für die Empfehlungen. Gibt es noch weitere, die womöglich vielleicht auch Python 2.6x behandeln, auch wenn ich nicht weiß, in wie fern sich da was geändert hat.

Verfasst: Dienstag 3. März 2009, 14:28
von zero-one
ogurek hat geschrieben:
jens hat geschrieben:Wenn es um gute Dokumentation und Bücher geht, wirst du wohl mit django besser fahren. Denke dazu gibt es wesentlich mehr als über jedes andere Framework...
Das mag sein, aber wenn ich etwas lerne, dann will ich so wenig Einschränkungen wie möglich haben und die Freiheit haben, auch wirklich so viel zu lernen, wie ich möchte. :)
na wenn du so drauf bist... dann go for "Werkzeug" da musst du viel lernen und hast die totale freiheit ;-) ... wenn du noch mehr lernen willst und noch mehr freiheit... nimm direkt WSGI ;-) *duck und rennt*

gruessle

Verfasst: Dienstag 3. März 2009, 14:59
von jens
Ich weiß nicht warum immer wieder gesagt wird, das man in django keine Freiheiten hätte... Das stimmt so nicht. Django ist sehr modular aufgebaut. Mann kann alle Komponenten austauschen/ersetzten. Natürlich hat man dann nicht mehr den Komfort, aber das hat man auch nicht, wenn man direkt ein Framework nutzt, welches wenig Komfort Features hat ;)

Verfasst: Dienstag 3. März 2009, 15:23
von lunar
Django ohne Django's Komponenten ist aber irgendwie witzlos ... zumal das Austauschen von Komponenten innerhalb eines Frameworks immer noch etwas anderes ist als eine Anwendung komplett selbst zusammenzubauen, wie man es bei Werkzeug kann. Und mit aller Gewalt gegen das Framework zu programmieren, ist auch selten ratsam.

Verfasst: Dienstag 3. März 2009, 15:26
von jens
schwarz/weiß oder was?

Natürlich ist ein Framework witzlos, wenn man alle seine Komponenten nicht nutzt... Werkzeug wäre auch sinnlos, wenn man keine Features davon nutzt ;)

Verfasst: Dienstag 3. März 2009, 15:35
von Hyperion
Wie sieht es denn aus, wenn ich bei Django SQLAlchemy und Jinja2 nutzen wollen würde? Klappt das ganze automatische Admin-Interface dann noch? Oder muss ich mich dann darum selber kümmern?

Verfasst: Dienstag 3. März 2009, 15:36
von Leonidas
Ich persönlich habe bei Django auch die Templatenegine gegen Jinja ausgewechselt. Habe dann aber das Problem, das etwaige andere eingebundene Projekte dennoch Django-Templates benötigen und ich das nicht so einfach integrieren kann. Das Problem hätte ich aber mit Pylons genauso.