Betreff: Desktop-App (Mac/Win) mit Qt & komplexer UI – Python oder C++ für Hobby-Entwickler mit KI-Fokus?
allo zusammen,
ich plane eine persönliche Desktop-Aufgabenverwaltungs-App für Mac & Windows. Langfristig soll sie eine komplexe UI bekommen (Kanban-Board mit Drag & Drop, Kalender mit OS-Integration). Mein Hauptziel ist es, eine Technologie zu wählen, die das packt, um einen späteren kompletten Rewrite der GUI wegen Framework-Limitierungen zu vermeiden.
Nach viel Recherche habe ich mich für Qt als UI-Framework entschieden, da es die nötige Mächtigkeit und den Qt Designer (den ich gut finde) bietet.
Jetzt stehe ich aber vor der großen Frage: Soll ich Qt mit Python (PySide6) oder mit C++ nutzen?
Kurz zu meinem Hintergrund:
- Ich entwickle als Hobby, nicht beruflich.
- Ich setze sehr stark auf KI-Unterstützung für die konkrete Code-Erstellung.
- Meine C++ Erfahrung ist minimal: Bei sehr kleinen Windows-Tools (mit WinAPI, nicht Qt) hat die KI den Code geschrieben, ich habe primär Fehler mit der KI behoben. Ich kann C++ also nicht wirklich.
- Meine Go Erfahrung ist auch kaum vorhanden (nur mal ein Fyne-Fenster testweise).
- Ich habe aber einen (von KI geschriebenen) Python-Backend-Dienst für eine andere iOS Swift App. Python ist also schon entfernt in meinem technischen Umfeld, und ich habe auch Interesse an Pentesting (wo Python nützlich ist).
- Für die Aufgaben-App selbst ist ein Installer/Abhängigkeiten okay. (Der Wunsch nach kleinen, einzelnen
.exe
- -Dateien betrifft andere, zukünftige, kleine Windows-Tools, für die ich dann wahrscheinlich Go oder C++/WinAPI nehmen würde – das ist also ein getrenntes Thema.)
Meine Zwickmühle mit Python/Qt vs. C++/Qt:
- Python/Qt (PySide6):
- Pro: Bietet die volle Qt-Power. Python ist deutlich zugänglicher für mich als C++. Ich habe die genannten Synergien (anderer Dienst, Pentesting). Die KI kann mich bei Python/Qt sicher gut unterstützen, und der Qt Designer hilft beim UI-Bau.
- Mein großes Problem: Ich habe einen hartnäckigen "faden Beigeschmack" / ein starkes Unbehagen, Python für GUI-Programmierung zu nutzen, auch wenn meine frühere Hauptsorge (Performance) bei Qt-GUIs wohl unbegründet ist.
- C++/Qt:
- Pro: Wäre Qt "nativ", und mein Python-GUI-Unbehagen wäre weg.
- Meine große Sorge: Die extreme Lernkurve von C++ von meinem jetzigen Stand. Ich habe Angst, hier monatelang nur mit der Sprache zu kämpfen (auch mit KI) und nicht bei der App voranzukommen, was für mich "verschwendete Zeit" wäre.
Meine Frage an euch: Ich will jetzt "richtig anfangen" mit Version 0.0.1 meiner App (Fenster, Eingabe, Button, Liste). Was ratet ihr mir in dieser spezifischen Situation für den Start mit Qt? Sollte ich versuchen, meine Python-GUI-Aversion (mit viel KI-Hilfe und Fokus auf den Qt Designer) zu überwinden, um die Vorteile der zugänglicheren Sprache und der Synergien zu nutzen? Oder haltet ihr den Weg mit C++/Qt (trotz des immensen Lernaufwands für mich) für realistischer oder langfristig besser, um Qt ohne Python-GUI-Unbehagen zu nutzen? Mein Hauptziel bleibt, die App mit Kanban & Co. sicher umsetzen zu können, ohne in einer Sackgasse zu landen.
Vielen Dank für eure Einschätzungen!
2 Antworten
Ich denke, mit C++ wirst du definitiv Probleme bekommen (sei es aufgrund kryptischer Compilerfehler, Objektverwaltung, falsch gesetzter Modifier oder Operatoren, u.ä.) und zusätzlich kannst du damit rechnen, dass Hilfstools wie ChatGPT dich in Sackgassen manövrieren werden, da du doch nie weißt, ob das, was dir empfohlen wird, tatsächlich gut und richtig ist. Das beginnt schon damit, dass man mit Qt noch einmal anders an Problemlösungen herangeht, als mit Standard C++.
So etwas wird dir sicherlich ebenso bei Python passieren, doch sollte da der Aufwand dennoch geringer ausfallen.
In Performance-Probleme dürftest du da nur bei einem schlechten Programmdesign laufen. Bei deiner Projektbeschreibung fällt mir ansonsten gerade nichts ein, was sonst schwer darauf einzahlen sollte. Nutze in deinem Projekt halt möglichst viel der bereits bestehenden Qt-Implementationen statt Eigenlösungen.
Was ratet ihr mir in dieser spezifischen Situation für den Start mit Qt?
Lerne zuerst Python oder C++, statt komplett auf Hilfstools zu bauen. Du schreibst selbst, dass es sich um eine Hobbyentwicklung handelt, also gehe ich auch davon aus, dass du genügend Zeit dafür hast.
Wenn es dazu deinerseits keinerlei Motivation gibt, bleibt dir wohl nichts anderes übrig, als mit dem Qt Designer die Oberfläche zusammenzuklicken und bzgl. des generierten Python-Codes auf das Beste zu hoffen.
Bezüglich der Projektplanung solltest du noch vor irgendeiner Umsetzungsphase ganz genau definieren, was du alles brauchst. Zudem würde ich gesetzte Anforderungen nochmals hinterfragen. Möglicherweise sind nicht alle wirklich notwendig und können mit Abwurf das Projekt vereinfachen.
Ich neige zu Python, insbesondere auch wenn Du eh schon Python Erfahrugn hast. Letztlich wird das Objektmodell der GUI auf die Primitive von Python übertragen, wenn Du dort schon guten Zugang zu OOP etc. hast, dann wird Dir das definitiv leicht fallen.
Wenn (wie die GUI) das meiste in Python eh nur Glue ist und vieles von in C (o.ä.) geschriebenen Packages/Modulen erledigt wird, ist auch Performance nicht so das Ding. (Achja, seit 3.13 hat Python ja auch ein JIT und kann aufs GIL verzichten - Robustheit mal außen vor)
Klar, C++ wäre nativ, das fühlt sich irgendwie 'richtig' an, aber durch die statische Typisierung wirst Du bei Polymorphie usw. mit C++ deutlich schneller deutlich mehr "Spaß" haben - insbesondere wenn Du dann auch aktuelle Compiler nutzt, die sehr strikt mit Typenwandlungen etc. ins Gericht gehen.
Kurzum: Wenn Du nicht die Intention hast gerade auch C++ so richtig zu lernen und das Projekt als Motivation dafür nutzen willst, dann wäre IMHO Python die naheliegende Variante.
Aber vielleicht sehen andere das ja anders.