Seite 2 von 2

Verfasst: Dienstag 5. Juni 2007, 05:41
von mitsuhiko
veers hat geschrieben:
blackbird hat geschrieben:Kaum eine Engine macht das auch mit tatsächlich Python code zu erstellen. Mako/Jinja und ich denke einige andere auch interessieren sich nur für den Bytecode und dumpen den (wenn gewünscht) irgendwohin, damit das nächste mal das Template nicht mehr geparst werden muss.
Hm, tönt für mich immer noch etwas nach schwarzer Magie. Aber vielleicht sollte ich es mir auch einfach genauer ansehen.
Wenn du Wege findest das ohne schwarze Magie zu machen, raus damit. Interpretieren ist eine ziemlich blöde Idee da langsam.

Verfasst: Dienstag 5. Juni 2007, 17:30
von birkenfeld
veers hat geschrieben:
blackbird hat geschrieben:Kaum eine Engine macht das auch mit tatsächlich Python code zu erstellen. Mako/Jinja und ich denke einige andere auch interessieren sich nur für den Bytecode und dumpen den (wenn gewünscht) irgendwohin, damit das nächste mal das Template nicht mehr geparst werden muss.
Hm, tönt für mich immer noch etwas nach schwarzer Magie. Aber vielleicht sollte ich es mir auch einfach genauer ansehen.
Magie? Warum? Python unterstützt und fördert doch Introspektion, und der Zugriff auf Codeobjekte aus der Sprache gehört auch dazu.

Verfasst: Dienstag 5. Juni 2007, 17:45
von veers
birkenfeld hat geschrieben:
veers hat geschrieben:
blackbird hat geschrieben:Kaum eine Engine macht das auch mit tatsächlich Python code zu erstellen. Mako/Jinja und ich denke einige andere auch interessieren sich nur für den Bytecode und dumpen den (wenn gewünscht) irgendwohin, damit das nächste mal das Template nicht mehr geparst werden muss.
Hm, tönt für mich immer noch etwas nach schwarzer Magie. Aber vielleicht sollte ich es mir auch einfach genauer ansehen.
Magie? Warum? Python unterstützt und fördert doch Introspektion, und der Zugriff auf Codeobjekte aus der Sprache gehört auch dazu.
Magie weil ich nicht damit vertraut bin und nicht verstehe wie es Funktioniert (Das Prinzip hinter Byte Code und einer VM kenne ich, aber nicht wie es in Python gehandhabt wird). ;) Zudem Magie weil ich vermute dass das ganze ziemlich implementierungsabhängig und undokumentiert ist. Ich mag mich aber böse irren darum auch
veers hat geschrieben:Aber vielleicht sollte ich es mir auch einfach genauer ansehen.
.

Einen eleganteren schnellen Weg kenne ich nicht. Schneller wäre es das ganze in Nativen (Shell)Code zu kompilieren. Ist dann aber nicht nur von der Python Implementierung abhängig sondern sogar von der CPU.

Verfasst: Mittwoch 6. Juni 2007, 11:23
von Y0Gi
Ich persönlich mag keine Template-Engines mit C-Basis, weil man non-pure-Python-Packages nicht mal eben auf einen Python-fähigen Webspace werfen kann, auf dem man keine Shell hat. Genau aus dem Grund sind Cheetah und ClearSilver für mich seinerzeit direkt gestorben und bis heute wiegt das Argument immer noch ganz ordentlich.

Verfasst: Mittwoch 6. Juni 2007, 11:55
von gerold
Y0Gi hat geschrieben:Genau aus dem Grund sind Cheetah und ClearSilver für mich seinerzeit direkt gestorben
Hallo Y0Gi!

Cheetah ist reines Python. Nur, wenn man möchte, kann man ein Modul mit einem in C geschriebenen Modul ergänzen. Damit wird Cheetah schneller. Es läuft aber genau so gut auch ohne dieses C-Modul. Bei mir ist Cheetah die ersten Tage komplett ohne dieses C-Modul gelaufen. Nur die Hinweise beim Kompilieren haben mich darauf gebracht, dass man Cheetah mit einem C-Modul noch schneller machen kann.

mfg
Gerold
:-)

Verfasst: Mittwoch 6. Juni 2007, 15:26
von wakko0815
Meine anderen beiden Topics hier habe ich im Titel als [gelöst] deklariert.
Darf ich das hier zu [gekidnapped] erklären?
:wink:

Verfasst: Mittwoch 6. Juni 2007, 15:57
von gerold
wakko0815 hat geschrieben:Darf ich das hier zu [gekidnapped] erklären? :wink:
8) :mrgreen:

Verfasst: Mittwoch 6. Juni 2007, 16:40
von Y0Gi
gerold: Hm. Entweder ist das mal geändert worden oder ich habe das damals tatsächlich überlesen. Dann war es aber *bestimmt* auch ganz undeutlich formuliert... ;)

Verfasst: Donnerstag 7. Juni 2007, 12:24
von Leonidas
Y0Gi hat geschrieben:gerold: Hm. Entweder ist das mal geändert worden oder ich habe das damals tatsächlich überlesen.
Dann muss das aber wirklich lange her gewesen sein. In meiner Cheetah-Zeit (damals war Spyce 1.3 aktuell und Cheetah einer der wenigen TEs die es damals für Python gab) war das schon so, dass _namemapper optional war.