Hintergrund für Windowsprogrammierung



  • Also ich finde rüdiger hat vollkommen recht. Jeder Anfänger wird doch wohl besser mit einem Framework wie z.B. diesem FLTK oder QT oder sonst was zurecht kommen als mit der Win-API. Das ist doch ganz natürlich, da diese Sachen auf einem viel höheren Abstraktionslevel sind und so für den Benutzer logischer erscheinen.
    Es mag ja viele unterschiedliche Meinungen geben, aber die, dass die WinAPI leichter zu erlernen ist, ist ja mal totaler Blödsinn.

    P.S. Ich hab auch schon mit der Win-API gearbeitet, bevor da was aus der Richtung kommt...



  • stick_thai schrieb:

    kann die FLTK z.b. überhaupt 'alle' wünsche erfüllen, wo es sich doch hier um ein "minimalistisches Design" handelt?

    FLTK habe ich nur einfach so rausgegriffen. Ob es 'alle' Wünsche erfüllen kann, weiß ich nicht. Aber es lässt sich wie die meisten Frameworks auch über anderen Code (zB WinAPI) erweitern. Wenn man also irgend wo an eine Grenze stößt, kann man sich weiter helfen.

    Aber schau dir mal den Link an, den ich gepostet habe. Da findest du eine Liste von GUI-Frameworks.



  • nep schrieb:

    Es mag ja viele unterschiedliche Meinungen geben, aber die, dass die WinAPI leichter zu erlernen ist, ist ja mal totaler Blödsinn.

    Ich stelle ja aus gutem Grund schon keine hohen Ansprüche an Diskussionspartner im Internet, aber ihr schießt immer wieder den Vogel ab. Ist es wirklich so schwer Argumente anzuführen, so dass ihr nur "Blödsinn" sagen könnt? Echt schlimm.
    WinAPI ist nicht schwer zu lernen, aber keine Freude zum Verwenden. Kann doch nicht so schwer zum verstehen sein. 🙄



  • minhen schrieb:

    WinAPI ist nicht schwer zu lernen, aber keine Freude zum Verwenden. Kann doch nicht so schwer zum verstehen sein. 🙄

    da zu fällt mir eigentlich nur folgendes ein:

    minhen schrieb:

    Ich stelle ja aus gutem Grund schon keine hohen Ansprüche an Diskussionspartner im Internet, aber ihr schießt immer wieder den Vogel ab. Ist es wirklich so schwer Argumente anzuführen, so dass ihr nur "Blödsinn" sagen könnt? Echt schlimm.



  • "Schwer" ist relativ. Natürlich kann es sein (bzw. ist es ja sogar auch), dass es auch nicht schwer ist die WinAPI zu erlernen. Nur ist es aber einfacher sich in ein Framework wie z.B. QT oder sonstiges einzuarbeiten als in die WinAPI.
    Das fängt einfach schon damit an, dass das ganze Objektorientiert gehalten ist, während die WinAPI prozedural ist. Ich könnte sogar meiner Freundin halbwegs erklären wie síe sich so eine einfache GUI zusammenbauen kann, da es für den Menschen einfach natürlicher ist aus OO Sicht zu denken. Bei der WinAPI bezweifel ich das einfach mal. Und das hat nicht mal was mit dem Grundgerüst zu tun, was so groß ist. Das setzt sich ja so fort, wenn ich z.B. einen Dialog mit Buttons usw. designen will.



  • @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