Gui und linux



  • Hi,
    ich beabsichtige mich demnächst mit der Linux-programmierung zu beschäftigen und möchte euch daher nach eurer subjektiven(!) Meinung zu C(++) und GUI befragen:

    1. Zunächst steht die Frage, welche Sprache für Linux geeigneter ist (C oder C++).
      C++ soll zwar eine Obermenge (jedenfalls meinen das manche) sein, jedoch möchte ich mich speziell auf eine der beiden festlegen. Davon, denke ich, wird auch die GUI-Programmierung beeinlusst...

    2. Soweit ich weiß, gibt es zwei weitverbreitete Bibliotheken für die Grafikprogrammierung, nämlich gtk und qt. Das eine ist für gnome geeigneter und hängt mehr mit c zusammen, das andere mehr mit kde und c++ (IMHO). Daneben gibt es sicher noch weitere...
      Welche Bibliothek für die GUI-Programmierung würdet ihr vorziehen (subjektiv) in Verbindung mit welcher Sprache? Welche ist verbreiteter?
      Gibt es für diese vernünftige Dokus im Netz?

    Ich weiß, dass diese Fragen hier wahrscheinlich einen "Glaubenskrieg" entfachen werden und bei einigen nicht gern gesehen werden. Daher interessiert mich auch nur eure subjetive Meinung.



  • Dort steht alles, was du wissen musst:
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-81596.html



  • Hi,
    ja den Beitrag habe ich schon gesehen...
    Eigentlich möchte ich mit C unter Linux programmieren, da Linux auf C basiert. Daher suche ich auch eine gute Bibliothek für die GUI, wofür hauptsächlich gtk in Frage kommt. Ich habe aber auch gehört, dass es für gtk nicht viele gute und vor allem ausführliche dokus/tutorials im Netz gibt, und dass gtk etwas gewöhnungsbedürftig ist. Daher frage ich mich, ob ich mich mit gtk auseinandersetzen sollte...
    Daher möchte ich meine Fragen noch ein wenig präzisieren:
    Was haltet ihr grundsätzlich von gtk? Ist es heutzutage noch sinnvoll mit C unter linux zu programmieren?

    mfg



  • Wie sinnvoll das ist, haengt davon ab was du machen willst. Fuer Hardwarenahe Sachen, Kernel, usw. und ueberall dort, wo du wirklich Speed brauchst, ist C sicher eine gute Wahl.

    Fuer "Anwenderprogramme" mit viel GUI wuerd ich heute eher eine "leichtere" Sprache wie Python nehmen. Die ist sehr sauber, sehr leicht zum lernen etc. Unter Linux sieht man immer mehr Programme in Python, viele Tools aktueller Distributionen sind in Python geschrieben (IIRC z. B. gentoo's 'emerge'-Befehl).

    Was Gtk angeht: ich hab selber nie damit gearbeitet, aber soweit ich gehoert hab soll das eine sehr saubere Lib sein (soweit ich gehoert hab komplett OOP, was ja in C sehr schwierig ist).

    Ob C oder C++ ist Geschmackssache, ich persoenlich glaub aber, dass C++ die "modernere" Sprache ist, mit der man auf lange Sicht besser faehrt. C++ enthaelt einige Konzepte (OOP, Metaprogramming), die in C nicht vorhanden sind. Von daher ist C++ IMO die interessantere Wahl.



  • Subjektive Meinung: Nimm Qt und C++. Einfach und schnell.



  • Heraklit schrieb:

    Eigentlich möchte ich mit C unter Linux programmieren, da Linux auf C basiert.

    Naja, nur weil der Kernel in C geschrieben ist, heißt das ja nicht, dass Du auch C programmieren musst. In den meisten Fällen würde ich von C sogar abraten, aber das ist letztlich auch Geschmackssache.

    Daher möchte ich meine Fragen noch ein wenig präzisieren:
    Was haltet ihr grundsätzlich von gtk? Ist es heutzutage noch sinnvoll mit C unter linux zu programmieren?

    Da Du schon so fragst: Wenn Du GUIs programmieren möchtest, dann macht C absolut keinen Sinn. Wie Blue-Tiger schon sagte, sind oft Sprachen wie Python für derartige Zwecke wesentlich sinnvoller.



  • Heraklit schrieb:

    Ich habe aber auch gehört, dass es für gtk nicht viele gute und vor allem ausführliche dokus/tutorials im Netz gibt

    Dann hast du etwas falsches gehört. Es gibt gute Bücher und http://www.gtk.org/ bietet schöne Tutorials.

    Genrell empfiehlt sich, zuerst nur für die Konsole zu programmierne, bis du die Sprache (vollständig) gelernt hast, und dann in eine GUI Bib. einsteigen.



  • Genrell empfiehlt sich, zuerst nur für die Konsole zu programmierne, bis du die Sprache (vollständig) gelernt hast, und dann in eine GUI Bib. einsteigen.

    Also um mal was klarzustellen:
    Kompletter Programmieranfänger bin ich auch nun wieder nicht. Immerhin hab ich schon ein paar Grundkenntnisse in C und C++, sowie java, gesammelt. Hierbei hat mir C am besten gefallen.

    Da ich in linux programmieren möchte und C gut zum System passen soll, überleg ich mir natürlich, ob ich die C Kenntnisse vertiefen sollte. Das führt natürlich früher oder später an einer GUI nicht vorbei.

    Und zu python: Gestern hab ich mir mal ein kleines Tutorial angesehen: Python mag vielleicht gut sein, um Programmieren zu lernen, aber eine derartige Script-like-Programmiersprache ist nichts für mich.

    Dann hast du etwas falsches gehört. Es gibt gute Bücher und http://www.gtk.org/ bietet schöne Tutorials.

    Das seh ich wiederum anders. Das Tutorial auf www.gtk.org ist nicht vollständig und andere Tutorials, die ich gesehen habe, beschreiben kurz, wie man ein paar Schaltflächen, Editboxen, etc. auf den Frame setzt und das wars dann schon (z.B. tutorials von pronix und pro-linux). Und gleich ein Buch zulegen, naja...
    Wenn man bedenkt, dass mit gtk allein schon gimp und gnome uvm. geschrieben ist, ist das Tutorialangebot im Netz äußerst dürftig, was man von qt, unverständlicherweise, nicht behaupten kann...

    mfg



  • Heraklit schrieb:

    Das seh ich wiederum anders. Das Tutorial auf www.gtk.org ist nicht vollständig und andere Tutorials, die ich gesehen habe, beschreiben kurz, wie man ein paar Schaltflächen, Editboxen, etc. auf den Frame setzt und das wars dann schon (z.B. tutorials von pronix und pro-linux). Und gleich ein Buch zulegen, naja...

    Was soll denn an einem Tutorial vollständig sein? Die Grundlagen werden gut erklärt und wenn du die verstanden hast, dann reicht doch wohl die API Referenz.

    Heraklit schrieb:

    Wenn man bedenkt, dass mit gtk allein schon gimp und gnome uvm. geschrieben ist, ist das Tutorialangebot im Netz äußerst dürftig, was man von qt, unverständlicherweise, nicht behaupten kann...

    Vielleicht gibt es auch nicht so viele Tutorials für GTK+, weil das auf deren Seite so gut ist...



  • Ich persönlich beschäftige mich momentan ein wenig mit gtk und C. Kann ich bisher nur empfehlen. Und die Doku ist echt gut!



  • Übrigens kann man auch mit C++ gtk programmierung machen, siehe gtkmm.



  • naja, soweit ich weiß soll das "qt-tutorial" auch ganz gut sein und trotzdem gibt es darüber bücher, tutorials, etc en masse! Aber was solls...
    Ich denke, dass C und gtk+ für die linuxprogrammierung ganz gut sind und werde daher auch dabei bleiben. Danke schön für den Api-link...
    mfg



  • Eine kurze Frage hätte ich noch:
    Was ist der Unterschied zwischen Gnome und gtk+ Programmierung?



  • Heraklit schrieb:

    Eine kurze Frage hätte ich noch:
    Was ist der Unterschied zwischen Gnome und gtk+ Programmierung?

    Gnome basiert auf GTK+. Gnome fügt GTK+ noch weitere funktionen hinzu, wie z.B. für config Dateien.



  • Heraklit schrieb:

    Und zu python: Gestern hab ich mir mal ein kleines Tutorial angesehen: Python mag vielleicht gut sein, um Programmieren zu lernen, aber eine derartige Script-like-Programmiersprache ist nichts für mich.

    Um ein Missverständnis aufzuklären: Nur weil eine Programmiersprache syntaktisch schön klar ist, disqualifiziert sie das nicht als Sprache für Fortgeschrittene.

    Python wird unter anderem bei Google und ILM verwendet und sämtliche Configtools bei Fedora sind in Python geschrieben, ebenso wie Mailman und BitTorrent.



  • Heraklit schrieb:

    Da ich in linux programmieren möchte und C gut zum System passen soll, überleg ich mir natürlich, ob ich die C Kenntnisse vertiefen sollte. Das führt natürlich früher oder später an einer GUI nicht vorbei.

    und wieso denn das? Ich programmiere schons seit ein Paar Jahren und hab bisher keine GUI gebraucht.



  • Hallo!

    Die zu vertiefende Programmiersprache allein davon abhängig zu machen, welches GUI man verwenden möchte, finde ich nicht gut. Die Frage, die du dir stellen solltest, ist -was möchte ich zukünftig entwickeln, Anwendungen, Spiele oder vielleicht Treiber? Ich denke für Anwendungen wäre sicherlich C++ die beste Wahl? Wenn du also C, C++ und Java "angelernt" hast, wäre eine Vertiefung von C++ wohl lohnenswert.

    Da ich beispielsweise viel mit ncurses programmiere, habe ich neben C und Objective-C auch noch eine weitere Sprache gelernt, Ada. Die ncurses library bietet ein sehr gutes binding zu dieser Sprache. Die Kombination aus Ada und ncurses erleichtern die Arbeit. Allein mit C zu arbeiten ist einfach umständlicher.

    Gruß
    Michael



  • bloodshower schrieb:

    Hallo!

    Die zu vertiefende Programmiersprache allein davon abhängig zu machen, welches GUI man verwenden möchte, finde ich nicht gut. Die Frage, die du dir stellen solltest, ist -was möchte ich zukünftig entwickeln, Anwendungen, Spiele oder vielleicht Treiber? Ich denke für Anwendungen wäre sicherlich C++ die beste Wahl? Wenn du also C, C++ und Java "angelernt" hast, wäre eine Vertiefung von C++ wohl lohnenswert.

    Da ich beispielsweise viel mit ncurses programmiere, habe ich neben C und Objective-C auch noch eine weitere Sprache gelernt, Ada. Die ncurses library bietet ein sehr gutes binding zu dieser Sprache. Die Kombination aus Ada und ncurses erleichtern die Arbeit. Allein mit C zu arbeiten ist einfach umständlicher.

    Gruß
    Michael

    Oha! du bist der erste den ich kenne, der freiwillig mit Ada arbeitet. Wie ist die Sprache denn so? Was gefaellt/missfaellt dir im Vergleich zu C? Wie gut sind die Tools (Compiler, etc.), wie leicht findet man im Netz unterstuetung, wenn man was braucht? Wie gut ist die Std. Lib?
    Und: wie hast du Ada gelernt? Wenn durch Internet-Resourcen: koenntest du bitte die Links posten? 🙂

    Sorry fuer die vielen Fragen 😉



  • Hallo!

    Zunächst einmal muss man sagen, dass Ada sehr umfangreich ist. Zum Einstieg ins Programmieren vielleicht nicht besonders geeignet, da man mit den Möglichkeiten, die diese Sprache bietet, "erschlagen" wird.

    Informationen und Lernmaterial gibt es benügend im Internet. Hier einige Links:
    http://www.wackerart.de/ada.html
    http://www.adahome.com/Tutorials/Lovelace/lovelace.htm
    http://www.adahome.com/rm95/
    http://www.cl.cam.ac.uk/~mgk25/ada.html

    Gruß
    Michael



  • @bloodshower
    folgendes dürfte dich interessieren: ISO ADA 2006 Drafts

    Ansonsten werd ich mich auch mal detailierter mit ADA befassen, wenn ich etwas Zeit hab oder erst mit Eiffel oder vielleicht doch SML.


Log in to reply