tag:blogger.com,1999:blog-6739072366749751678.post8681816728324975093..comments2022-06-16T20:26:25.624+02:00Comments on Linux, Computer, Musik und was sonst noch wichtig ist...: To GUI or not to GUI...noisefloorhttp://www.blogger.com/profile/05145579161641978739noreply@blogger.comBlogger4125tag:blogger.com,1999:blog-6739072366749751678.post-87289015039868243362012-01-19T15:04:18.624+01:002012-01-19T15:04:18.624+01:00Danke für den Beitrag. Ich habe vor einem Jahr als...Danke für den Beitrag. Ich habe vor einem Jahr als absoluter Nicht-Programmierer genau diese Frage in einem Forum gestellt. Ich war davon ausgegangen, das Programmieren heute generell mit dem Gestalten der zugehörigen Fester usw einhergeht, was sich aber nicht bewahrheitet hat. Für mich war der Hinweis, es ohne GUI zu versuchen genau richtig. Die kleinen Jobs, die ich mittlerweile für den Hausgebrauch programmiert habe, lassen sich im Textmodus deutlich übersichtlicher gestalten. Ich habe mit Python in wirklich übersichtlichen kleinen Scripten sehr schnell Aufgaben erledigt, die die Erstellung einer GUI nicht gerechtfertigt hätten - und das hat schon viel Zeit in Anspruch genommen. Ich hab mal etwas über die Erzeugung von GUIs gelesen, aber es größtenteils nicht verstanden. Wenn man bereit andere Programmiersprachen kennt und Erfahrungen mit GUIs hat mag es natürlich anders aussehen. Insgesamt bin ich allerdings eher ein Fan von GUI Programmen - als Normalo-User sozusagen.carchaiashttps://www.blogger.com/profile/00401488161601409996noreply@blogger.comtag:blogger.com,1999:blog-6739072366749751678.post-25986862604127196622012-01-19T10:02:45.867+01:002012-01-19T10:02:45.867+01:00Hallo,
das ist tatsächlich ein vieldiskutiertes T...Hallo,<br /><br />das ist tatsächlich ein vieldiskutiertes Thema. Ich wollte nur ergänzen, dass es noch weitere Aspekte gibt, die man bei frühzeitigem GUI-Einstieg berücksichtigen sollte. Neben dem bloßen Umfang des Programmes, nimmt auch die Komplexität nicht unerheblich zu. Statt sich zunächst mit den vielen Sprach-Features in Python einzeln zu beschäftigen (Listen, Dicts, List Comprehensions, Iteratoren, Generatoren, Module, Klassen, Packages uvm), springt der Anfänger im Fall der GUI Programmierung gleich ins kalte Wasser und setzt sich mit einem recht großen Framework auseinander, bevor er überhaupt Python richtig verstanden hat. GUIs sind eine ganz eigene Welt - ebenso gut könnte man versuchen, als erstes GStreamer zu erlernen. Das hat mit Python nix zu tun und lenkt von den Eigenheiten der Sprache nur ab. Statt kanonisches Python zu lernen, frickelt der Anfänger sich eine Lösung zurecht, die irgendwie zum gewünschten Resultat führt - hier also etwa zu einem Fenster auf dem Bildschirm. <br /><br />Hinzu kommt, dass man GUIs, gerade wenn sie etwas größer werden, in Klassen einbetten möchte. Auch davon hat ein Anfänger in aller Regel noch nichts gehört und schustert sich aus irgendwelchen Beispielen lauffähige Programme zusammen, ohne genau zu verstehen, warum er das tut. Spätestens hier schlagen die vermeintlichen Lernerfolge ins Gegenteil um, weil der Anfänger sich von Anfang an einen falschen Umgang mit Klassen aneignet. <br /><br />GUIs sind darüber hinaus auch schlichtweg problematisch für Einsteiger - etwa wegen der Probleme mit der Nebenläufigkeit, auf die man früher oder später einmal stößt. Wenn dann auch noch angefangen wird, irgendwie mit Threads und Locks um diese Probleme herum zu arbeiten ("ich möchte einen Downloader mit Fortschritts-Anzeige"), hat man vollends schlechten Code, der schwer nachzuvollziehende Fehler produziert, die vorhanden Sprachmittel nicht ausschöpft und kaum noch zu lesen ist. <br /><br />GUIs kann man am besten als eigene kleine "Programmiersprachen" verstehen. Sie haben ihr eigenes Verhalten, ihre eigenen Probleme, haben bestimmte Design-Prinzipien, die man sich mal angesehen haben sollte (Interface Guidelines) und haben vor allem mit einer einzelnen Programmiersprache überhaupt nichts zu tun - sie lassen sich zwar anbinden, gehören aber nicht dazu. Eigentlich trifft es der GStreamer-Vergleich ganz gut. Niemand würde ernsthaft darüber diskutieren, ob man eine Programmiersprache besser lernt, indem man ein Audio-Framework anbindet. Warum machen wir das mit GUIs?barabbashttps://www.blogger.com/profile/07562624687672800367noreply@blogger.comtag:blogger.com,1999:blog-6739072366749751678.post-32488254756022466262012-01-19T09:00:15.859+01:002012-01-19T09:00:15.859+01:00Gerade für Anfänger ist die GUI schlicht DIE Motiv...Gerade für Anfänger ist die GUI schlicht DIE Motivationsgrundlage zu programmieren und mit den passenden Tools ist das auch nicht weiter schwierig. Du propagierst im Grunde die Bottom-Up-Methode. Dein Argument logisch zu ende geführt, sollte der Anfänger ersteinmal Strukturamme zeichnen, bevor er sich mit der Komplexität einer bestimmten Programmiersprache befasst. <br /><br />Davon ab, dass wohl viele über HTML zu PHP oder Javascript kommen und damit eine GUI-Lose Programmierung ohnehin keinen Sinn mehr macht, da die GUI-API, also in diesem Fall das HTML, bereits die bekannte Komponente darstellt.<br /><br />Ansonsten gebe ich Dir Recht. Ich gestalte auch lieber ersteinmal die Funktionalität aus, bevor die GUI drankommt.Blubberbarthttps://www.blogger.com/profile/07809699104434637959noreply@blogger.comtag:blogger.com,1999:blog-6739072366749751678.post-26799949247194981742012-01-18T22:42:32.097+01:002012-01-18T22:42:32.097+01:00Vielleicht ist die passende in Zukunft, mach doch ...Vielleicht ist die passende in Zukunft, mach doch mal ne website, die ist auch bunt.Rockigerhttps://www.blogger.com/profile/06488644403035516684noreply@blogger.com