Brauche Rat: wie tot ist TurboGears?

Django, Flask, Bottle, WSGI, CGI…
Antworten
Hase
User
Beiträge: 100
Registriert: Donnerstag 1. Oktober 2009, 15:17
Wohnort: Bremer Speckgürtel

Hallo, wir betreiben im Unternehmen ein Programm zur Messwerterfassung (HTML-Formulare), Auswertung und automatische Berichterstellung, dass ich vor nunmehr 10 Jahren mittels Python 2.5-TurboGears 1.1.1- SqlAlchemy 0.6 - genshi 0.6 + LaTeX geschrieben habe. Das Programm wurde über die Jahre gepflegt und erweitert, es dürften einige 1000 Zeilen Code sein, die aber genau das tun, was sie sollen.

Nun überlege ich, wie ich das Programm für die nächsten 10 Jahre fit machen kann. Kaum ein 3rd-Party-Modul des jetzigen Programms wird noch aktiv gepflegt, überhaupt müssten man das Ganze sowieso auf Python 3.x portieren.

Das einfachste wäre wahrscheinlich eine Portierung auf TurboGears 2.x, aber auch da wäre wohl einiges an Aufwand nötig und TG ist wohl ein totes Pferd. Andererseits denke ich auch über Flask nach. Der Aufwand zum Portieren wäre sicher deutlich größer, auch wenn ich den größten Teil der Programmlogik irgendwie übernehme könnte. Trotzdem weiß ich nicht, ob ich das wuppen kann.

Arbeitet überhaupt noch jemand mit TG und wie schätzt ihr die Zukunft von Flask ein, Aussicht wieder so 10 Jahre?
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich bin selbst frueher im TG-Zug gefahren. Hatte sogar Committer-Status und war Maintainer fuer ein paar Abhaengigkeiten. Das ist schon >5 Jahre her, aber schon da war klar: die Chose ist in der Hose.

TG2 war eigentlich schon der Todesstoss, weil es frueh angekuendigt und spaet "fertig" wurde. Problem daran: das Momentum von TG1.x, das durchaus damals mit Django vergleichbar war, wurde abgewuergt. Denn alle warteten auf das neue Shiny. TG2 ist des weiteren zwar oberflaechlich TG1.x aehnlich (Widgets, routing per Klassenhierarchie und Dekoratoren, DB Abstraktion mit SQLObject oder SQLAlchemy), aber die Unterschiede doch so signifikant, dass ein einfacher Umstieg definitiv nicht moeglich ist. Da muss alles stueckweise getestet werden.

Zu allem Ueberfluss hat der Initiator von TG2, Mark Ramm, im Grunde schon vor der Fertigstellung beschlossen, NOCH was schoeneres neueres zu bauen, naemlich Pyramid. Womit nochmal mehr Unruhe reinkam, und TG erst Recht in der Nische versauerte. Summa summarum: lass die Finger von TG. Leider. War gut gedacht, durchaus auch in Teilen so gemacht, aber leider auf dem Abstellgleis gelandet.

Ich habe mich persoenlich nie mit Django anfreunden koennen, weil ich vor allem das ORM im Gegensatz zu SQLAlchemy doch etwas hakelig fand, und viel der Magie in TG mit zB den hoch deklarativen ToscaWidgets MIR gut gefallen hat. Leider muss man aber auch sagen, dass dieser Ansatz seine Tuecken hat, wenn mal was nicht geht. Ich habe Stunden im Debugger gestanden, um rauszufinden, warum irgendwelche Formulare komisch dargestellt wurden.

Aber das ist auch ein starkes Geschmacksurteil, und mit Django machst du garantiert nichts falsch. Die Kollegen die noch Web-Entwicklung machen, haben mehr oder minder alles darauf umgezogen und verwalten den TG-Kram nur noch wo notwendig. Neues wird damit nicht mehr entwickelt.

Flask habe ich nie benutzt, stattdessen das Konkurrenzprodukt bottle. Von der Aussenwahrnehmung scheint Flask aber deutlich groesser von der Community her, und auch aktiver entwickelt. Darum wuerde ich da durchaus zugreifen, wenn du das schon ins Auge gefasst hast.
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Um mal Niels Bohr zu bemühen: „Vorhersagen sind schwierig, insbesondere wenn sie die Zukunft betreffen.“ ;-)

Was es zu TGs Zeiten schon gab, heute noch gibt, und wahrscheinlich in 10 Jahren noch geben wird, ist Django. Da ist dann aber die Frage wie sehr/viel Du umschreiben müsstest, denn Django ist IMHO ein deutlich festerer Rahmen als TG oder Flask, die aus mehr ”freien” und damit theoretisch leichter austauschbaren Komponenten bestehen.

Ohne Dein Projekt jetzt zu kennen, würde ich wohl Flask ins Auge fassen, es sei denn es wäre absehbar, dass es sehr einfach nach Django zu portieren wäre.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

also wenn die Anzahl Supportranfrage zu TG ein Maßstab zur Popularität wären, dann ist TG toter als tot.
Flask habe ich nie benutzt, stattdessen das Konkurrenzprodukt bottle. Von der Aussenwahrnehmung scheint Flask aber deutlich groesser von der Community her, und auch aktiver entwickelt. Darum wuerde ich da durchaus zugreifen, wenn du das schon ins Auge gefasst hast.
+1. Bottle will ja "klein" bleiben und was bei Bottle - im Gegensatz zu Flask - nie wirklich durchgestartet ist, ist das Plugin-System zum Einbinden anderer Komponenten.

Was in deinem Fall für Flask spricht ist, ist, dass es eine Erweiterung zur Integration von SQLAlchemy gibt - was du ja nutzt. Theoretisch geht das bei Django auch, praktisch würde ich mal behaupten, dass 95% der Projekt das Django ORM nutzen. Es gibt für Flask auch ein Plugin, um Genshi statt dem Default Jinja2 als Template-Engine einzusetzen. Wobei du hier überlegen solltest, auf Jinja2 zu wechseln. Das ist die populärste und IMHO meistgenutzte Template-Engine, neben Flask unterstützt auch Django Jinja2. Jinja2 würde ich nach aktuellem Stand der Dinge auch als sehr zukunftssicher einstufen.

Gruß, noisefloor
Antworten