IDE mit GUI Editor fuer Linux

Ranayna

Vice Admiral
Registriert
Mai 2019
Beiträge
6.489
Hallo zusammen,

ich wuerde mich selber komplett in die Kategorie "Hobbyprogrammierer" einordnen. Ich bin weit weg davon ein Profi zu sein.

Aber ich bekomme es hin, mit C# in Visual Studio, kleinere Programme mit GUIs zu bauen, die ihren Job erfuellen.

Da ich privat jetzt weg bin von Windows, stellt sich mir die Frage: Womit bekomme ich sowas unter Linux hin?

C# habe ich gerne gemacht, weil es sehr aehnlich zu Java war, mit dem ich als Jungspund die ersten Kontakte mit OOP hatte, und es halt voll integriert ist in Windows.
Heute habe ich eher Bauchschmerzen mit Java, was an Oracle liegt, und bei MS Produkten geht mir das aehnlich.

Java, und C# mit WinForms sind monolithisch: Das GUI Framework ist eng mit der Sprache verbunden. Unter Linux ist das nicht so, daher bin ich aktuell sehr unschluessig. Der Dschungel ist als Programmierlaie doch ziemlich undurchsichtig :D

Nativ gibts ja jetzt soweit ich das weiss zwei grosse GUI Frameworks fuer Linux: GTK und QT, fuer die es dann auch Libraries fuer diverseste Sprachen gibt.
Was waere ein empfehlenswerter Einstieg?
Ich liebaeugele schon laenger mit Python, gibt es dafuer eine gute IDE mit GUI Editor?

Wie Systemuebergreifend ist so ein Programm dann?
 
Für GTK gibts Gnome-Builder, da kannst du dir am Anfang bestehende GTK-Apps reinladen und schauen wie die gebaut sind udn angezeigt werden.
 
  • Gefällt mir
Reaktionen: flaphoschi und madmax2010
Ranayna schrieb:
Ich liebaeugele schon laenger mit Python, gibt es dafuer eine gute IDE mit GUI Editor?
Was spricht gegen die Klassiker wie Spyder/Anaconda oder Sublime Text / Visual Studio?
 
@Tenferenzu: Dagegen spricht das ich von Spyder/Anaconda grade das erste mal hoere :D

Ich bin wirklich unbeleckt was das Linux Umfeld betrifft. Ich war jahrzehntelang ein reiner Windows User.
Und ich bin auch kein Programmierprofi.

Ich weiss das es VSCode, auch "entmicrosoftifiziert" als VSCodium gibt, aber einen GUI Editor hat das nicht, soweit ich weiss. Das grosse Visual Studio gibt es wohl nicht fuer Linux, oder?
Sublime Text habe ich zumindest schonmal gehoert, aber 99 Dollar fuer einen "Fancy Texteditor"?

@madmax2010: Danke. Da steckt einiges an Lesestoff drin :)
 
Was machen denn deine GUI-Anwendungen großes? Wären denn Webanwendungen mit Frontend keine Alternative? Sowas ginge natürlich auch in Python.
 
Als IDE für einfacheres Python- und Java-Programmieren kann ich die Community-Versionen von Jetbrains PyCharm, resp. IntelliJ in den Ring werfen. Ich bin mit denen immer gut klargekommen.
Für Rider (CSharp) gibts leider keine gratis Community Version.

Aber auch VS Code gibts für Linux.

Frameworks für GUI-Progamme gibts in Python einige, die auch Cross-Platform sind. Ich hab zB mal mit "TKinter" gearbeitet.
 
  • Gefällt mir
Reaktionen: KitKat::new() und Gizzmow
Also als Alternative zu Oracles JDK kann ich dir das hier empfehlen wenn du Bauchschmerzen bezüglich Oracle haben solltest.
Aber verstehe ich das richtig, du möchtest eine IDE mit integrierter GUI Creator per Click haben? Also das du dir die GUI-Elemente zurecht schiebst und dann im Code nur noch die Logik für die Buttons entwickelst?
 
Ranayna schrieb:
Spyder/Anaconda ist so ziemlich der Standard wenn es um Python an Hochschulen bzw. Datenauswertung etc. geht.

Ranayna schrieb:
Sublime Text habe ich zumindest schonmal gehoert, aber 99 Dollar fuer einen "Fancy Texteditor"?
Gibt's auch als Gratisversion. Mir persönlich wäre noch nie was abgegangen aber ich programmier auch nicht weiß Gott wie viel..
 
Hat Spyder einen GUI Editor? Soweit ich verstehe will der TE sich die GUI doch zusammenklicken.
 
abcddcba schrieb:
Soweit ich verstehe will der TE sich die GUI doch zusammenklicken.
Richtig. Ich habe damals meine Java-Swing GUIs selber gebaut, da habe ich eigendlich keine grosse Lust mehr drauf.

Tokolosh schrieb:
Wären denn Webanwendungen mit Frontend keine Alternative?
Eher nicht. Die Ideen die mir aktuell im Kopf rumschwirren sind eigendlich alles rein lokale Sachen. Da waere der Overhead mit einem Webserver dazwischen zu hoch.
 
Ich glaube, das was @madmax2010 mit dem QtDesigner vorgeschlagen hat, kommt deiner Idee am nächsten mit Drag'n'Drop Guis zu bauen und im Hintergrund dann den Code für die einzelnen Elemente zu schreiben - Auch wenn man sich natürlich umgewöhnen muss im Vergleich zu Visual Studio.
 
  • Gefällt mir
Reaktionen: flaphoschi und Innensechskant
Ich bin etwas verunsichert bezüglich deines Wunsches. Ich würde erstmal von oben nach unten folgend diese Fragen klären:
  1. Mit welche Programmiersprache (C, C++, C#, Rust oder Python) möchtest Du Programmieren?
  2. Welche GUI-Bibliothek (Gtk oder Qt) möchtest Du nutzen?
  3. Welche Werkzeuge möchtest Du dafür verwenden?
Unter UNIX/Linux ist das Betriebssystem die Entwicklungsumgebung, bei welchen ein Editoren deiner der Wahl (meist VIM oder Emacs) als Werkzeug dient. Den "Leidensdruck" eine IDE mit Konsolenausgabe, Buildwerkzeug und Debugger und unzähligen Plugins verwenden zu müssen gab es nicht. Wenn ich das Log der Anwendung mitverfolgen will "tail -f" und wenn ich Debuggen will "gdb -tui". Wir neigen dazu unsere Editoren mit Plugins zu erweitern, insbesondere dem Language-Server-Protocol (LSP).

Es gibt IDEs. Oft engen die einen Entwickler durch den starken Fokus auf eine Sprache und wenige Buildtools jedoch ein. Alles komfortable, aber eben dann auch mit Einschränkungen. Es gibt etwa CLion (C++ von JetBrains), VSCode (C# von Microsoft), Jucipp (C++, quelloffenes Projekt) und GNOME-Builder (C, quelloffenes Projekt) und KDevelop (C++, quelloffenes Projekt) veschiedene IDEs mit Schwerpunkt auf eine Sprache. Als Beispiel wäre für Einsteiger eventuell Python mit Gtk und eventuell GNOME-Builder (kann auch Python) interessant. Du könntest auch bei C# bleiben, Microsoft hat viel unter Linux investieren müssen. Mein persönlicher Liebling ist etwa C++ mit (Neo)Vim und LSP*.

Und das führt mich zum Anfang:
Finde zuerst heraus welches Programmiersprache Du verwenden möchtest. Beim Toolkit würde ich das Toolkit deines Desktops verwenden, entweder Gtk oder Qt. Und dann kannst Du zwischen Editoren (selbst konfiguriert) oder IDEs wählen.

* Ich nutze etwa Neovim mit LSP. Pures Gold! Der Editor weiss welche Memberfunktionen einer Objekt bieten kann, die Signaturen und markiert Zeilen mit Problemen und Beschreibung des Problems. Im Gegensatz zu einer IDE schnell und hochgradig anpassbar. Nachteil - man muss es anpassen. Vorteil - man kann es anpassen.


PS: Java findet vorwiegend auf Android und für geschäftlich genutzte Serveranwendung seine Anwendung. Mit Ausnahme der Entwicklerwerkzeuge gibt es kaum Javaanwendung auf dem Desktop. Das macht weder als Entwickler noch als Anwender auf dem Desktop eine Freude. Wer in genannten Bereichen tätig ist, ist mit der Kombination aus Linux und Java gut bedient.
 
Zuletzt bearbeitet:
Ansonsten kann es Sinn machen, sich in Flutter einzulesen - ist ein Google Projekt. Das ist nicht so direkt Drag & Drop - aber eine App die mit Flutter entwickelt wurde kannst du nachher für Linux, Windows, MacOS, Android, iOS und auch fürs WEB ausspielen.

Im Gegensatz zu z.b. Electron nutzt Flutter aber jeweils für das Betriebsystem native Bibliotheken und Oberflächen um die GUIs zu zeichnen - es es ist also auf jeder Plattform eine native Anwendung aber mit gemeinsamer Codebasis.

Benötigt aber mehr Einlesezeit, hat aber gute Tutorial denen mal Stück für Stück folgen kann.
 
  • Gefällt mir
Reaktionen: madmax2010
flaphoschi schrieb:
  1. Mit welche Programmiersprache (C, C++, C#, Rust oder Python) möchtest Du Programmieren?
  2. Welche GUI-Bibliothek (Gtk oder Qt) möchtest Du nutzen?
  3. Welche Werkzeuge möchtest Du dafür verwenden?
Tja, da liegt ja die Krux :D

Mangels Erfahrung kann ich zu allen drei Fragen eigendlich nur sagen: "Ist mir egal", bzw. "Ich weiss es nicht"
Mit Python liebaeugele ich wie erwaehnt etwas, weil es ja auch unter Windows laeuft, und ggf. fuer Scripting auch auf der Arbeit moeglicherweise hilfreich sein koennte.

flaphoschi schrieb:
(meist VIM oder Emacs)
Ernsthaft? Ich habe doch schon deutlich gesagt das ich ein von Windows kommender Linux Anfaenger bin. Und du kommst mit VIM? :p

"Choice Paralysis" ist aktuell das, womit ich bei Linux persoenlich am meisten zu kaempfen habe. Es gibt einfach so unglaublich viele Optionen, und als Anfaenger kann ich auch die Optionen die es so gibt garnicht alle kennen. Im Hinterkopf ist aber immer die Stimme die sagt, nachdem ich eine engere Auswahl getroffen habe: "Gibt es nicht doch noch etwas besseres?" Und die Suche geht von vorne los, und es passiert nichts.
Ich will mich daher zum jetzigen Zeitpunkt nicht gross mit Sachen um den Kopf schlagen bei denen ich noch haufenweise Optionen zum Anpassen habe.


Zwei moegliche Projekte die mir momentan im Kopf rumschwirren drehen sich ein bisschen darum, den Umstieg von Windows zu Linux fuer Anfaenger einfacher zu machen, insbesondere bei Fehlersuche.
Das ist zum einen ein GUI Logparser, und eine schoene Visualisierung fuer SMART Werte.

Da gibt es garantiert etwas, aber man braucht ja insbesondere als Einsteiger ein paar "Fingeruebungen". Und obs jemals ueber etwas nur fuer mich selber hinausgehen wird, steht auch in den Sternen.
 
  • Gefällt mir
Reaktionen: Photon und flaphoschi
Evil E-Lex schrieb:
Jenes. Kannst damit quasi genauso wie bisher mit C# weitermachen. Hab während meiner Ausbildung auch mal benutzt und kann es nur empfehlen.
 
Ich würde vielleicht sogar vom GUI Editor als "Must Have" Abstand nehmen und mir einfach mal verschiedene andere Sachen anschauen. Für C# gibt es neben den genannten Optionen noch folgende Cross-Platform:
  • AvaloniaUI (https://avaloniaui.net/) - Eher Desktop fokussiert
  • Uno (https://platform.uno/) - Eher Mobile fokussiert
  • Zu nennen wäre noch MAUI (https://github.com/dotnet/maui) - obwohl es das noch nicht offiziell für Linux gibt und auch NICHT von Microsoft geplant ist, ist es das offizielle nächste "Ding" für GUI Entwicklung von Microsoft
    • Ganz interessant fand ich hier auch noch die neue Option, Blazor Web Komponenten in "Native" Anwendungen zu übersetzen (
      )
Interessant könnte auch noch Flutter (https://flutter.dev/multi-platform/desktop) sein (Programmiersprache: Dart) - GNOME will sich hier stark fokussieren, viele Mobile-Apps werden auch auf dieser Basis entwickelt.

Wenn ich entscheiden müsste, was ich als nächstes lerne, wäre es vermutlich Flutter ODER MAUI.
 
Ich würde ebenfalls Lazarus empfehlen. Das ist Open Source, die IDE ist wirklich intuitiv, und die Sprache ist Pascal. Ja, klingt antik und exotisch, aber erste Erfolge stellen sich sehr schnell ein. Ich hatte nach 20 Minuten einen einfachen Bildbetrachter mit Dateiauswahl "fertig".

Bonus: die fertigen Projekte lassen sich später ohne großen Aufwand auch für Windows und MacOS kompilieren. Das ist also vollkommen plattformunabhängig.

Und es gibt jede Menge "Add-Ons" für GUI-Elemente und beispielsweise Datenbankanwendungen.

Soweit ich weiß, lassen sich mit Lazarus sogar Apps für Android entwickeln. Das habe ich aber noch nicht ausprobiert.
 
Zurück
Oben