GUI oder nicht GUI



  • Hallo,

    Ich beschäftige mich jetzt seit ca. 3 Monaten mit der Programmierung, angefangen bei C, nun C++.

    Die wichtigsten Grundlagen kenne ich nun und kann sie auch anwenden ohne ständig etwas nachschlagen zu müssen.

    Nun stehe ich vor der Entscheidung mich primär mit dem Konsolen oder GUI-Programmieren zu beschäftigen.

    Meine Fragen:

    "Lohnt" es sich weiterhin nicht-grafische Anwedungen zu schreiben (Für den Endbenutzer, keine Hardwaredinge, Treiber oder ähnliches sondern echte "Nutzanwedungen") obwohl diese nur eine sehr geringe Usermenge nutzen mag?
    Wird die nicht-grafische Anwendungsprogrammierung auch von Berufsprogrammierern noch eingesetzt?



  • "Konsolen-Programme" werden dort eingesetzt, wo es Sinn macht.
    Ein Compiler z.B. *muss* fast ein "Konsolen-Programm" sein, da man ihn sonst nicht ordentlich aus Make-Tools oder fremden IDEs verwenden kann.
    Dasselbe gilt für eine ganze Gruppe anderer Tools. Alles was man halt gerne in Batch-Files/Shell-Scripts etc. verwenden möchte. Bzw. allgemein alles was man irgendwie von Aussen automatisieren können möchte.

    Bloss ein paar Beispiele: File-Kopier Programme, Uploader/Downloader, Konverter (Bild-Konverter, Video-Konverter etc.), Renderer (z.B. für 3D Renderfarmen).

    Bei vielen dieser Tools wird dann *zusätzlich* noch eine GUI mitgeliefert.

    Grundsätzlich würde ich auf jeden Fall davon ausgehen, dass man als Anwendung-Programmierer früher oder später beides braucht.



  • GUI ist wirklich nicht spektakulär. Wenn man mit dem Programmieren anfängt, dann will man natürlich immer etwas vorzeigbares haben und eine "Konsolenanwendung" mag noch so etwas geniales tun, bei nicht-Programmierern bekommt man dafür nur ein Gähnen :). Aber GUI Programmierung ist absolut langweilig, zeitaufwändig und uninteressant. Und wie hustbaer schon gesagt hat, ist das entscheidende die Programmlogik. Egal, ob dein Userinterface nun grafisch ist oder nicht.

    Ein weiteres Problem ist auch, dass die meisten GUI Toolkits sich nicht nur auf GUI beschränken und daher mit sehr vielen Klassen und Strukturen kommen, die teilweise äußerst schlecht entworfen sind. Als Anfänger unterliegt man da einfach der Gefahr, dass man sich einen schlechten Stil angewöhnt oder sich zu sehr von einem GUI Toolkit abhängig macht.



  • serbud schrieb:

    Die wichtigsten Grundlagen kenne ich nun und kann sie auch anwenden ohne ständig etwas nachschlagen zu müssen.

    Nun stehe ich vor der Entscheidung mich primär mit dem Konsolen oder GUI-Programmieren zu beschäftigen.

    Tja, Grundlagen was heißt das schon.

    Lern doch erstmal etwas über Datenstrukturen.
    Schreib ein Programm, daß aus einer Textdatei alle Zeilen ausliest die länger als 10 Zeichen sind und dann speichere alle diese Zeilen in ein dymisches Array.
    Kern der Aufgabe:
    Die Größe des Arrays darf nicht zur Compilezeit festgelegt sein, sondern muß bei Programmstart wachsen können.

    Lös das mal.

    Und als nächste Aufgabe könntest du mal nen HTML Parser schreiben, auch nicht trivial.
    Automaten und Formale Sprachen wären deine erste Anlaufstelle für entsprechende Bücher.

    Das alles, das sind nämlich die weiterführenden Grundlagen die man zuerst beherrschen sollte, ehe man sich der Grafikprogrammierung zuwendet.



  • Chefprogrammierer schrieb:

    serbud schrieb:

    Die wichtigsten Grundlagen kenne ich nun und kann sie auch anwenden ohne ständig etwas nachschlagen zu müssen.

    Nun stehe ich vor der Entscheidung mich primär mit dem Konsolen oder GUI-Programmieren zu beschäftigen.

    Tja, Grundlagen was heißt das schon.

    Lern doch erstmal etwas über Datenstrukturen.
    Schreib ein Programm, daß aus einer Textdatei alle Zeilen ausliest die länger als 10 Zeichen sind und dann speichere alle diese Zeilen in ein dymisches Array.
    Kern der Aufgabe:
    Die Größe des Arrays darf nicht zur Compilezeit festgelegt sein, sondern muß bei Programmstart wachsen können.

    Lös das mal.

    Und als nächste Aufgabe könntest du mal nen HTML Parser schreiben, auch nicht trivial.
    Automaten und Formale Sprachen wären deine erste Anlaufstelle für entsprechende Bücher.

    Das alles, das sind nämlich die weiterführenden Grundlagen die man zuerst beherrschen sollte, ehe man sich der Grafikprogrammierung zuwendet.

    Ach näää! Du kannst doch nicht ernsthaft irgendwelche konkreten Probleme als Grundlagen deklarieren! Und dann auch noch vorschreiben, dass man diese (total willürliche) Auswahl durchgemacht haben muss, bevor man sich GUI-Programmen zuwenden "darf". Find ich total unangemessen.

    Grundlagen heißt, dass man die Sprache seiner Wahl beherrscht und also weiß, was man tut, wenn man seinen Code schreibt. Im Falle von C/C++ umfasst "Sprache" in diesem Sinne auch die Bibliotheken, die Teil des Standards sind.

    Grundlagen kann heißen, dass man die wichtigsten Algorithmen und Datenstrukturen wenigstens einmal in einem Buch oder Artikel kennen gelernt hat. Doch auch ohne dies kann man schon vernünftige Programme schreiben.

    Es ist vollkommen gleichgültig, welche Programmier-Probleme man löst, hauptsache, man löst sie und lernt dabei. Wenn man Spaß an GUI-Programmen hat oder meint, ein bestimmtes Problem ließe sich am besten mit einem solchen Programm lösen, dann schreibt man halt welche. Punkt.

    Es ist wie beim Sprechenlernen: Ganz gleich, ob das erste Wort "Mama" oder "Scheiße" ist, der Anfang ist gemacht.

    Stefan.



  • serbud schrieb:

    Meine Fragen:

    "Lohnt" es sich...

    sind ja eh noch alles grundlagen. da lohnt sich alles man will.

    rüdiger schrieb:

    Aber GUI Programmierung ist absolut langweilig, zeitaufwändig und uninteressant.

    nicht solange man es noch freiwillig macht 😋


Anmelden zum Antworten