Mit was programmiert man moderne und schnelle Software (Win, Linux etc.)?

5 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
Bei mehreren tausend zeilen xaml code, lagt das ganze, zudem ist HTML und CSS viel besser und man hat deutlich mehr möglichkeiten.

Ich bin zwar auch kein Freund von WPF aber du übertreibst maßlos:

  • WPF ist relativ performant, HTML/CSS mit JS ist dagegen fast die langsamste Möglichkeit für GUIs
  • Da WPF nicht an eine Sandbox gebunden ist, gibt es viel mehr Möglichkeiten als in der Webentwicklung
  • Niemand zwingt dich XAML zu verwenden, es geht auch komplett ohne

Wenn man Anwendungen für mehrere Desktop Plattformen entwickeln will, die noch halbwegs nativ aussehen, ist Qt die einzige verbleibende umfassende Lösung die zugleich auch sehr performant ist. Java ist noch portabler und ähnlich performant, aber die GUI Toolkits dafür sind weniger verbreitet (JavaFX und Swing).

Die Github Desktop App basiert auf Electron und ist damit im Prinzip eine Webapp, die direkt mit einem Browser kommt. Solche Anwendungen haben einen riesigen Overhead bzgl. der Speichergröße und sind im Vergleich zu nativen Desktopanwendungen extrem langsam.

Meine Frage, mit was macht man heutzutage moderne und schnelle Software für Win und Linux evtl. auch Android und IOS?

Android und iOS? Das ist eine blöde Idee. Allein Android und iOS untereinander haben große konzeptionelle Unterschiede in der GUI-Entwicklung und die Unterschiede zum Desktop sind noch viel größer. Wenn man alle Plattformen mit einer Oberfläche abdecken will macht man immer signifikante Abstriche bei Performance und Funktionalität.


Eine Möglichkeit für schöne/moderne grafische Öberflächen mit sehr guter Performance ist Flutter.

Wenn man sich die Performance anschaut, dürfte Flutter etwas langsamer als C/C++ Anwendungen mit z.B. GTK/Qt sein. Die Performance wird trotzdem sehr gut sein. Einige interne Komponenten von Flutter wurden z.B. in C/C++ entwickelt.

Flutter ist ein Cross Plattform Framework, welches alle gängigen Plattformen unterstützt. Das wären: Android, iOS, Web, Windows, MacOS und Linux. MacOS und Linux wurden erst vor wenigen Tagen als Stable veröffentlicht.

Wenn man wenige/keine nativen Funktionen nutzt, ist es nur ein Kompilieren für die neue Plattform. Wenn man ernsthaft mehrere Plattformen unterstützen möchte, sollte man auch die UI an die Eigenheiten der jeweiligen Plattform anpassen.

Zumindest bei Flutter sollte man den Performance Vergleich auch nur mit dem Release Build starten. Im Debug Build sind viele Entwicklertools integriert, die auf die Performance gehen. Dafür hat man viele hilfreiche Tools bei der Entwicklung.

Hier gibt es ein Performance Vergleich zwischen einer Flutter MacOS Anwendung und einer Electron Anwendung. Zum Testzeitpunkt war Flutter Desktop noch in der Beta.


WPF kannst du auf Linux sowieso vergessen, würde da eher GTK oder QT empfehlen. Wenn du mit Android kompatibel sein willst, könntest du React anschauen. Mit Electron läuft das dann auch auf allen Desktops - allerdings nicht performant.

Woher ich das weiß:Studium / Ausbildung – Informatik

Die Frage ist immer, was du für welche Plattform programmieren willst. Bspw macht WindowsForms keinen Sinn, aber schon garnicht für eine Linux Distribution oder eine Server Software mit Flutter programmieren ist ebenso unsinnig.

Du solltest dich also fragen

  1. Was soll die Software können?
  2. GUI oder als Dienst?
  3. Für welche Plattform ist es gedacht?

Wenn du eine GUI Anwendung für Linux schreiben willst, lohnen sich Rust+GTK4 oder C++/Qt (oder C++/EFL).

C++/Qt kann man auch für Windows und MacOS Anwendungen verwenden, da es plattformunabhängig ist.

Server Dienste auf Linux würde ich mit Rust oder Go schreiben, glaube ich. 🤔

Bei Web Anwendungen ist JavaScript + HTML + CSS oder PHP gut geeignet.

Für iOS, iPadOS und/oder MacOS empfehle ich die dortigen Werkzeuge. Um die kommt man eh nicht rum, will man dort veröffentlichen.

Für Android lohnt sich Kotlin.

Flutter + Dart soll auf allen Plattformen funktionieren, aber ich würde darauf nicht setzen.

Und dann gibt es noch viel mehr, was sich für bestimmte Dinge lohnt.


Wenn Geschwindigkeit die Priorität ist, dann nativ (iOS -> Swift, Android -> Kotlin, MacOS/Linux/Windows -> C++/C/Rust...).

Worauf du hinauswillst ist vermutlich ElectronJS, das ist aber notorisch langsam/aufgebläht.