Follow

Mal an die hier. Gibt es ein Buch, welches verständlich Programmieren unter erklärt, wo man keine Konsolenprogramme baut sondern Fensterprogramme? Für Windows habe ich da "C++ mit Visual Studio 2017 und Windows Forms-Anwendungen" wäre nice

@bloodymary In welchen Sprachen möchtest du programmieren lernen?

@bemme Mh... Eigentlich gerne C++, wäre aber auch für was anderes offen. Nur bitte kein Java ;-)

@bloodymary Gerade bei Java hätte ich helfen können. Nun ja.

@bloodymary Ach, schade, für Java hätte ich jetzt auch was nennen können 😃 Woher kommt deine Ablehnung gegenüber Java?
Wie wäre es mit Python? Aber da weiß ich gerade nicht, welche Literatur einen da gut einführt. @bemme

@bloodymary @bemme Ich würde eher davon abraten C++ anzufangen. Viele der heutigen Sicherheitslücken entstehen davon, dass C/C++ es einem zu einfach macht, sich in den Fuß zu schießen.
Die Popularität beider Sprachen basiert auf dem verschobenen Weltbild, dass Profis das schreiben. Was ich für veralteten Unfug halte.
Solange Du keine Treiber oder Kernel oder sowas schreibst, nimm' was mit modernen Speicher- und Threadingabstraktionen.

@bloodymary Wenn du es noch nicht kennst, dann wirf mal einen Blick auf elementary.io. So weit mir bekannt ist, ist das die einzige Linux Distro mit einem Human Interface Guide! Und sie haben sehr gute Developer Dokus: developer.elementary.io

Haussprache ist Vala. Ich will mir schon laenger mal Zeit nehmen, um ein konkretes Projekt dafuer zu bauen.

@phranck @bloodymary Vala ist ein Gnome-Projekt und gestandene Gnome-Entwickler haben schon konstatiert, dass die Sprache tot ist…
phoronix.com/scan.php?page=new
(Und ElementaryOS, der macOS-UI-Abklatsch ohne viel dahinter, den besonders gern Mac-User empfehlen: HIGs haben alle großen Linux-Desktop. KDE/Plasma und Gnome haben auch mindestens genauso gute Entwicklerdoku.)

@frumble @bloodymary Danke für das Feedback. Ich kann das nur aus meiner, sehr bescheidenen Linux-Sicht, benennen, da ich aktuell und seit Längerem eher im macOS/iOS Umfeld daheim bin.
Was "gestandene Gnome-Entwickler" so von sich geben ist erstmal sehr subjektiv, und interessiert mich als Entdecker recht wenig. Spannender wäre zu erfahren, wie die elementary OS Core Entwickler das sehen. Die kommen ja zum Teil auch aus dem Gnome Umfeld. elementary als "Abklatsch" abzutun finde ich etwas platt.

@phranck @bloodymary Mac-User neigen dazu, einen ihnen vertrauten/sympathischen Desktop zu empfehlen, bzw. sich selbst für Linux-Stippvisiten auszusuchen. Bei Elementary/Pantheon wird das problematisch: Das ist wirklich nicht viel mehr als ein UI-Mockup (auf Gnome 3 aufgefrickelt), verglichen mit ausgereiftem Plasma oder Gnome. Mac-Usern bestätigt dieser Zustand die Untauglichkeit von Linux am Desktop und Neulinge werden ebenfalls schnell verprellt. Bitte nicht persönlich nehmen.

@frumble @bloodymary Das passt schon, ich nehm das nicht persoenlich. Wie gesagt, ist meine beschraenkte Sicht auf die Linux Welt. Ich selbst hab mir schon viele Distros und Desktops angeschaut. Vom reinen System her ist FreeBSD mein Favorit. Fuer Desktop Systeme bevorzuge ich Debian-Varianzen mit Plasma. Aber ich bin da nicht wirklich auf dem Stand der Dinge, als das ich wirklich ueber das Thema diskutieren koennte.

@frumble @phranck @bloodymary Ich nutze schon seit Jahren Elementary. Es mag sein, dass Vala eine seltsame Wahl ist, aber das Betriebsystem hat trotzdem viele positive Auswirkungen auf die Linux Welt. Z.B. haben sie ein eigenes LibreOffice-Icon Set entwickelt, dass sich auch auf anderen Systemen immer mehr ausbreitet.

Muss aber zugeben, dass ich weder mit KDE noch mit GNOME viel gearbeitet habe und mich die Desktops immer ein wenig abgeschreckt haben, ohne dass ich sagen kann warum eigentlich.

@frumble Von Ubuntu und Windows. Ubuntu wurde mit dem Ende von Unity für mich unbenutzbar, da bin ich auf Elementary gewechselt. Mittlerweile benutze ich auf der Arbeit Macs, privat experimentiere ich gerade in VMs mir Deepin aber ich bleibe vermutlich erst mal bei Elementary.

@bloodymary Das Problem an Linux ist, dass es diverse GUI-Frameworks gibt, du also erstmal auswählen musst. Zum ersten Überblick: wiki.ubuntuusers.de/GUI-Toolki

@lilo oh man, da geht es ja schon los... Was nimmt man denn da? Qt, FOX oder wxWidgeds oder GTK? Fragen über Fragen...

@bloodymary Erstmal die Negativ-Kandidaten wegstreichen: Nicht Electron.

Ansonsten könntest du danach gehen (jedenfalls, wenn du für dich selber programmieren willst), welchen Desktop du einsetzt, also Qt im Fall von KDE und sonst Gtk.

@lilo OK. Dann wird es GTK. Electron hatte ich ja schon ausgeschlossen ;-) Gibt es denn da ein Buch oder so?

@bloodymary
Also ich würde auch Qt erstmal auf der shortlist halten. Man kann Qt auch auf Windows Rechnern kompilieren, und es ist eine c++ API und es gibt ne Fülle an Bücher und Material.

GTk ist viel mehr gefrickel uns erstmal ne reine c API ggf noch mit einem c++ wrapper
@lilo

@bloodymary @lilo ich glaube, wxWidgets ist mittlerweile relativ veraltet? Bin mir aber nicht sicher. GTK ist halt mit C angenehmer, Qt erfordert C++. FOX sagt mir nix.

Sowohl GTK als auch Qt kommen mit Anleitungen in HTML, die Schritt für Schritt die einfachen Dinge erläutern. Für alles weitere hilft dann meistens die API-Referenz.

@bloodymary Ich hab "C++ mit Linux" Das gute an diesem Buch ist, daß es von Anfang an Objektorientiert ist, und nicht, wie bei fast allen anderen, das erst später kommt. Das Buch ist von Thomas Wieland und gibt es auch online.
cpp-entwicklung.de/cpplinux/cp

@bloodymary Kommt hin. Ich hatte es 2005 gekauft. Ist aber nicht nur zwingend für Linux. Er bezieht sich auf gcc. Die Onlineversion scheint etwas älter zu sein. Ich find es sehr empfehlenswert.

@bloodymary Ach so, keine Konsolenprogramme. Aber für die Grundlagen trotzdem sehr gut.

@bloodymary GUIs programmieren ist halt echt doof / kompliziert leider - was kannst du den schon und wo willst du hin?

@l33tname Ich kann ein wenig C++ und ich würde gerne was bauen, was man halt auch nutzen kann, wie ein normales Programm. So ohne Konsole...

@bloodymary @l33tname Na, für C++ bietet sich eigentlich Qt ideal an. Schau Dir mal den Qt Builder an.

@bloodymary @l33tname GUI-Programmierung ist halt leider unter Linux wirklich nicht selbsterklärend. Würde da im Zweifel auch eher zu Python als zu C++ raten, da gibt’s die einfachere Toolchain für GUIs.

@frumble mh ok, dann schaue ich mir das mal an. Vielen Dank. @l33tname

@bloodymary @frumble yoa cpp ist schon QT für guis aber spass macht das halt alles eher nicht (finde ich)

Oder halt python wiki.python.org/moin/TkInter da hat man recht schnell was es sieht aber eigentlich immer scheisse aus

@bloodymary - Wenn ich Dir eine gute Programmiersprache für Einsteigerinnen / Einsteiger empfehlen kann, dann ist es Python!

Python ist plattformübergreifend, läuft also unter Linux und Windows. Natürlich lassen sich auch Fensteranwendungen damit entwickeln.

Python ist (neben Java) sehr beliebt und weit verbreitet. Und Python ist einfach zu lernen. C++ dagegen ist komplex und für den Start eher ungeeignet (meiner Meinung nach).

hmm,
für X, GTK oder Java?
Da waren sie wieder, die 3 Probleme.

@bloodymary mit so einer Frage tritt man schnell einen Krieg los ;-)… bei C++ würde ich auch erstmal an QT denken, QT ist aber auch sehr gross&komplex. Ein bisschen schlanker kommt „wxwidgets“ daher, da hat auch einen C++ Wrapper ist aber ein „Meta“ Framework (mit gtk backend). Für einfache Tools sind die Python bindings von WX glaube ich auch eine gute Wahl, tkinter würde ich nicht mehr verwenden, zu alt (persönliche Meinung). Schaue Die einfach mal Tutorials & Beispiele an was Sie zusagt.

Zum lernen einer Programmiersprache braucht man jedoch am Anfang kein Framework. Ich würde es in mind. zwei Schritten machen. Die Syntax und die Paradigmen einer Sprache kann man sehr einfach mit kleinen Konsolenanwendungen programmieren.

Bei mir ist es so, dass die meisten ersten Versuche so und so in /dev/null landen.

Wenn man dann etwas Gefühl und das Grundkonzept verstanden hat, dann würde ich mit den libs, Frameworks etc. weitermachen.

@bloodymary Leider keine konkrete Empfehlung, aber ich würd irgendwas mit Qt raussuchen. Benutze das ganz gerne für "kleinere" GUI-Tools, weil es auch cross-platform gut funktioniert. Und man kann es mit Python auch nutzen, und ab und zu mit anderen Sprachen auch, je nachdem wie die Bindings grad maintained sind.

@bloodymary

Würde da auch für den Anfang zu Python raten.

Schönes Buch: "Python 3: Programmieren für Einsteiger"

Dort werden auch die IDEs und GUI Programmierung eingeführt.

@bruhein @bloodymary ..wenn ich zustimmen & ergänzen darf: wundervolles Buch zu ist "Schlangengerangel" - als Windows-/Linux-Ausgabe verfügbar, bspw. storage.googleapis.com/google- - und Python ist wirklich eine geeignete und sinnvolle Sprache, die es sich lohnt zu erlernen, mal so meinungssagend.

@bloodymary ich kenne selber nichts, würde aber wenn nach was zu Qt schauen.

@bloodymary
Mit welcher Programmiersprache möchtest du das? Für C wäre etwas zu GTK+ sinnvoll, für C++ eher Qt oder wxWidgets. Da du bereits Erfahrung mit C++ zu haben scheinst, wäre also Qt sinnvoll, zumal du damit nicht auf Linux beschränkt bist (zumindest beim GUI-Teil).

Wenn du in Richtung Spiele-Programmierung gehen willst, kannst du auch einen Blick auf SDL (eher C) oder Unity (allerdings C#) werfen.

Bücher gibt es gerade zu Qt viele, aber man findet auch sehr viel im Internet dazu.

@julian kennst du denn vielleicht ein gutes deutschsprachiges Buch zu qt?

@bloodymary Als ich mich damit beschäftigt habe, war es noch ein paar Versionen älter, daher kann ich da leider keine aktuellen Bücher beurteilen. Deutschsprachige Bücher zu Qt 5 konnte ich auf die Schnelle auch nicht finden, allerdings unterscheidet es sich wohl nicht sehr von Qt 4.

Hier gibt es ein kostenloses Wikibook, vielleicht reicht das zum reinschnuppern: https://de.wikibooks.org/wiki/Qt_f%C3%BCr_C%2B%2B-Anf%C3%A4nger

@bloodymary @MicMun Ich habe hier zB „Mastering Qt 5 - Second Edition“ (C++) Oder auch: gnustep.it/pierre-yves/index.h (gleiche Funktionsweise wie macOS, z.B. „Cocoa programming for Mac OS X“ (2. bis 4. Auflage), Objective C) (@letterus)

@librechurch @bloodymary @MicMun Wenn du wirklich für Linux/Open Source Programmieren lernen willst, geb ich das Mastering Qt 5 gerne zum Vorzugspreis ab, ich brauche das grad nicht. (per PM oder so)

@bloodymary
"Für Linux" gibt es streng genommen kein GUI-Programmieren. Du musst dich für eines der GUI-Toolkits entscheiden, z.B. Qt, GTK+, wx, Tk. Keine leichte Entscheidung, alle haven Vor- und Nachteile. Und dann natürlich für eine Programmiersprache. Der "Linux"-Anteil spielt dann eine eher geringe Rolle.
Viel Erfolg bei det Entscheidung!

Sign in to participate in the conversation
chaos.social

chaos.social - because anarchy is much more fun with friends.
chaos.social is a small Mastodon instance for and by the Chaos community surrounding the Chaos Computer Club. We provide a small community space - Be excellent to each other, and have a look at what that means around here.
Follow @ordnung for low-traffic instance-related updates.
The primary instance languages are German and English.