Hintergrund für Windowsprogrammierung



  • @nep: Komisches Argument. Natürlicher ist es doch wohl eher sich die GUI zusammenzuklicken und nur die Funktionalität dahinter auszuprogrammieren. Aber das hat nichts mit dem darunterliegenden Framework zu tun. Da kann WinAPI mit irgendwelchen C-Function Pointern drunter sein und da kann eine 4GL-Sprache drunter liegen.

    MfG SideWinder

    PS: Dieses Posting hat auch ein Recht auf Leben :p



  • Da hast du natürlich recht.
    Nur was hat das mit der Diskussion zu tun ?

    Es ging ja jetzt nur ums reine Programmieren. Und da ist es ja wohl so, dass der OO-Ansatz für den Menschen verständlicher ist als der prozedurale



  • nep schrieb:

    Es ging ja jetzt nur ums reine Programmieren. Und da ist es ja wohl so, dass der OO-Ansatz für den Menschen verständlicher ist als der prozedurale

    Sagst du als geübter C++. Aber glaub mir, das ist nicht der Fall. Ich habe in der Uni genug Umgang mit absoluten Programmieranfängern und denen braucht man nicht mit OOP kommen. Beziehungsweise man tut ihnen damit keinen Gefallen. Gerade Programmierer verkennen völlig die gedankliche Komplexität von OOP-Ansätzen. Mit "natürlich" und "einfach" ist da nicht wirklich viel. Um's mal auf den Punkt zu bringen, Java überfordert erst mal alle Anfänger und auch nach einem Semester intensiven lernens kriegen es sehr viele nicht gebacken vernünftige Programme in Java zu schreiben. Werden die Leute aber mit z.B. Perl als erstes konfrontiert, verstehen sie es ziemlich schnell und schreiben auch brauchbare Skripte damit. Und Perl ist sicherlich nicht die Sprache mit der "schönsten" Syntax. Aber man programmiert damit meistens prozedural und hinter diesem Paradigma steckt wenig dahinter. Der Gegensatz dazu ist OOP mit sehr viel Konzepten, die dahinter stehen und die Komplexität entsprechend hochtreiben. Herrje, selbst abgefahrene Sachen wie Prolog fällt den Anfängern hier leichter.
    Objekt-orientierte Systeme sind zum Bauen größerer Anwendungen eine absolute Wohltat und vergleichsweise geradezu ein Traum, aber sie sind auch komplex. Dagegen will "man" keine großen Anwendungen prozedural bauen, aber das Konzept dahinter ist furchtbar primitiv und einfach zu verstehen.
    Sicher, wenn man frei weg von der Leber philosophiert sieht man viel WinAPI-Code und wenig OOP-Framework-Code und ist deswegen versucht ersteres als höllisch schwer und letzteres als furchtbar einfach zu sehen. Die Anfänger-Praxis sieht aber eben anders aus.



  • Da hast du natürlich recht. OOP ist sehr anspruchsvoll, aber darum geht es hier eigentlich auch nicht mal so sehr. Wenn jemand z.B. in C++ programmiert, dann sollte man erwarten, dass er zumindest weiß was Klassen usw sind. Und dieses Wissen reicht auch schon aus, um so ein Framework dann zu BENUTZEN. Es ist IMHO ein gewaltiger Unterschied ob ich ein OO-Framework einfach nur benutze, oder ob ich selbst etwas mit OO entwerfe.
    Klar, wenn jemand noch nie von Klassen gehört hat, dann wird er auch mit so einem Framework wie z.B. QT ziemliche Schwierigkeiten bekommen.
    Übrigens finde ich, dass der Vergleich mit Perl etwas hinkt. Perl ist eine Skriptsprache, und da muss man z.B. keine Variablen deklarieren und sich nicht um die entsprechenden Typen (String, int, ...) kümmern; oder gar die Speicherverwaltung. Ich habe damals auch mit Basic angefangen zu progarmmieren; mit C (was ja aber auch eine prozedurale Sprache ist) wäre ich damals bestimmt überfordert gewesen.



  • Naja, gerade bei Anfängern geht es doch um unbeschriebene Blätter. Den C++-Programmierer möchte ich sehen, der WinAPI schrecklich toll findet und den C-Programmierer will ich sehen, der voller Freude versucht ein OOP-Framework zu veerwenden.
    Bei Perl hast du zwar grundsätzlich recht, ich bezweifel aber die Auswirkungen. Zum einen fängt man bei uns im Grunde von Anfang an mit "use strict" an und muss deshalb grundsätzlich die Variabeln explizit deklarieren. Zum anderen unterscheidet Perl zwar nicht primitive Datentypen wie int, float, char, kennt aber sehr wohl verschiedene Variabeltypen (Skalar, Array, Hash und Referenzen sowie Referenzen auf diese vier) und achtet sehr genau darauf, dass man immer den richtigen Typ angibt ($var ist ein Skalar, @var ist ein Array, %var ist ein Hash, $$ ist eine Referenz auf einen Skalar, $@ eine Referenz auf ein Array, usw. Muss bei jeder Variabelnverwendung entsprechend angegeben werden).
    Ich glaube nicht, dass Datentypen viel gedankliche Komplexität erzeugen. Ich glaube aber sehr wohl, dass die Variabeltypen in Perl ordentlich verwirrend sind. Ich programmiere schon länger in Perl, aber mich verwirren sie hin und wieder auch noch. Insofern 😉
    Aber noch mal zur Sache mit dem hinkenden Vergleich, ich halte C in der Tat für eine wunderbare Sprache für Anfänger. Nur kenne ich außer mir niemanden, der diesen Weg gegangen ist. Hier fängt man eben mit Perl, Prolog oder Java an. Deswegen kann ich auch nur bei diesen drei erzählen, wie sich die Leute meiner Erfahrung nach anstellen.
    Aber noch mal erzähl ich nicht, dass ich C für eine gute Anfängersprache halte (nicht komplex, überschaubarer Sprachumfang, man lernt die Grundlagen: wunderbare Anfängersprache). Ich erinner mich noch ziemlich gut, wie ich das das letzte Mal im Forum hier gemacht habe. Wer den WinAPI-Thread hier gelesen hat, hat schon eine sehr gute Vorstellung von der Reaktion der Leute auf diese Aussage 🙄



  • is mal wieder typisch dass die moderatoren hier ihre macht dazu benutzen negative kritik an ihnen kommentarlos zu löschen 😮

    ja - ich mein rüdiger 😕 👎



  • Boh, passt man hier mal im Forum nen Tag nicht auf, ist hier wieder die Hölle los!!! 😃

    Stick_tai! Die Entwicklung von Anwendungen geht dahin, das man immer mehr abstrahiert. D.h. sich von Lowlevel entfernt. Gerade C++ wurde ja zu diesem Zweck entwickelt. Ich kann in C++ wunderschön Daten kapseln. Ich verstecke also allein durch das private-Schlüsselwort vor dem Benutzer einer Klasse bestimmte Details.

    Hier im Forum scheinen einige immer noch in der C-Welt hängen geblieben zu sein, sonst würden sie für die Anwendungs-Programmierung nicht WinAPI empfehlen. Gerade mit C++ kann ich die WinAPI schön kapseln und mir das Lebel leichter machen.

    Ich benutze ja auch einen std::vector anstatt mir selbst einen dynamischen Lowlevel-Array zu programmieren.

    FLTK ist dabei nur ein Konzept einer GUI-Bibliothek. Es gibt noch so viele GUI-Bibliotheken für C++ die verschiedene Anforderungen erfüllen (können). FLTK ist dabei minimalistisch und kann von Haus aus das nötigste. Es lässt sich aber durch anderen Klassen erweitern, wenn etwas fehlt. Aber durch das Minimalistische hat auch ein Anfänger leichtes Spiel das FLTK zu durchschauen und ohne Frust erste Ergebnisse auf den Bildschirm zu zaubern. Und wenn du einmal FLTK verstanden hast, sind anderen GUIs auch einfach zu verstehen, da sich die Konzepte überschneiden. Auch wenn jede GUI doch ihr eigenes Design hat.



  • Artchi schrieb:

    Hier im Forum scheinen einige immer noch in der C-Welt hängen geblieben zu sein, sonst würden sie für die Anwendungs-Programmierung nicht WinAPI empfehlen. Gerade mit C++ kann ich die WinAPI schön kapseln und mir das Lebel leichter machen.

    Wo empfiehlt hier irgendjemand WinAPI zur "Anwendungs-Programmierung" (sic)? 🙄

    Weil es offensichtlich manch einer noch immer nicht verstanden hat, was ich die ganze Zeit sage: WinAPI ist einfach zu verstehen, aber definitiv nichts zur Anwendungsentwicklung. Wer aber schon eine einfache Callback-Funktion nicht versteht, wird an einem OOP-Framework mit Sicherheit verzweifeln.
    Ich weiß, ich hab das schon mal gesagt, aber was zum Teufel ist an dem, was ich schreibe, eigentlich so schwer zu verstehen?
    Ist es die Notwendigkeit für differenziertes Denken was überfordert? Muss wohl so sein. Anders kann ich's mir nicht mehr erklären ...



  • Hallo

    das hier klingt richtig nach Kampf zwischen Progranmierern
    und Softwarezusammenclickern

    ohne halbwegs die WinAPI zu verstehen auf eine Framework loszugehen
    ist einfach schlecht - Verstaendnisprobleme sind vorprogrammiert

    Mfg
    Klaus



  • kein benutzername schrieb:

    is mal wieder typisch dass die moderatoren hier ihre macht dazu benutzen negative kritik an ihnen kommentarlos zu löschen 😮

    ja - ich mein rüdiger 😕 👎

    Welche Kritik soll ich gelöscht haben?



  • Hm. Wem die WinAPI zu komplex und unübersichtlich ist der soll von C++ lieber gleich die Finger lassen - C++ ist nämlich auch nicht gerade die einfachste aller Sprachen 🙂 *pfeiff*

    Klar hat keiner die ganze WinAPI im Kopf (wird auch "täglich" mehr), aber so _die wichtigsten_ KERNEL32, USER32 und GDI Funktionen kann man doch in "endlicher Zeit" kennen und (zumindest halbwegs) verstehen lernen.


Anmelden zum Antworten