Was jetzt nach C und C++?



  • Ich würde sagen, dass auch hier gilt: reinschnuppern schadet nicht.



  • Ja, wie gesagt in jedes Paradigma mal reinschnuppern:
    Prozedural: Pascal, Basic, ...
    OO: SmallTalk, Objective-C, Eiffel, ...
    Funktional: ML, Haslkell, ...
    Logisch: Mercury, Prolog, ...

    Gibts noch mehr?

    Das, was dich itneressiert dann weiter ausbauen.



  • Hi,

    danke erstmal für die ganzen Tipps. Ich bin eigentlich ganz heiß drauf ein Prog mit GUI zu programmieren und so meine kentnisse zu sammeln.
    Mein Problem hierbei, überall wo ich nur hinschaue kosten die IDEs ar... viel Geld. Ich bin Student und bekomme von unserer uni die IDE gestellt da wir an dem MSDN Academic teilnehmen. Ich möchte ein Programm Online stellen können wenn ich damit fertig bin damit es die anderen User nutzen können. So eine Art KDE Projekt will ich machen. Mit was ist das möglich? Darf ich dann auch spenden annehmen, Ohne von den Softwareherstellern gleich verklagt zu werden?



  • Mein Problem hierbei, überall wo ich nur hinschaue kosten die IDEs ar... viel Geld.

    1. gibt es auch gute kostenlose IDEs (zB. Eclipse, MinGWStudio, Anjuta oder KDevelop)
    2. Hat eine IDE nichts mit GUI programmieren zu tun 🙄

    So eine Art KDE Projekt will ich machen. Mit was ist das möglich?

    Du musst ja nur die Möglichkeit haben auf dem Bildschirm zu malen. Womit du das genau machst, ist ziemlich egal. Wenn du einen UNIX WindowManager schreiben willst, dann musst du dich aber mit X11 ausseinandersetzen.

    Darf ich dann auch spenden annehmen, Ohne von den Softwareherstellern gleich verklagt zu werden?

    😕 äh, wer sollte dir das warum verbieten?

    Erhard Henkes schrieb:

    Konzepte und grundlegendes Verständnis ist wichtig. Daher halte ich es immer noch für wichtig, den inneren Ablauf einer klassischen Windows-Anwendung (Nachrichtenerzeugung, Nachrichtenpumpe und -Schlange, Reaktionen auf Nachrichten) zu verstehen, denn das ist bei MFC oder auch bei Java bzw. C# das gleiche System, sobald man es mit Mausklicks zu schaffen hat.

    das ist doch totaler Blödsinn. Genausogut lernt man Nachrichtenbehandlung auch wenn man mit einem anderen GUI System arbeitet. Was sollte die WinAPI da für ein Mehrwert mitbringen (denk dran, es gibt mehr Systeme als Windows)? Die WinAPI bringt eher den Nachteil, dass sich die Leute
    a) hässliche Dinge angewöhnen (lange Parameterlisten, ungarische Notation, hässliche typedefs etc.), vorallem wenn der eigene Stil noch nicht so gefestigt ist
    b) die Leute an einer riesigen und unübersichtlichen API sich die Zähne ausbeißen, obwohl sie relativ leicht mit einer höheren Library die Dinge schneller und sauberer lernen könnten.



  • das ist doch totaler Blödsinn

    @kingruedi:
    Also zunächst einmal muss ich dir sagen, dass du dich häufig im Ton vergreifst und dich nicht wie ein neutraler Moderator verhälst, sondern offen deine Zuneigung zu Linux und deine Abneigung zu MS Windows, insbesondere zu WinAPI, zur Schau stellst. Also, entweder solltest du deinen Moderator-Job an den Nagel hängen oder dein Verhalten neutraler oder zumindest ausgewogener (z.B. These, Antithese, Synthese) gestalten. 😉

    @all:
    Persönlich halte ich viel vom Nachempfinden und praktischen Begreifen historischer Entwicklungen. Daher empfehle ich einem Einstieger in GUI die Programmierung auf MS Windows mit WinAPI (Das Buch von Charles Petzold ist z.B. heute noch lesenswert, nicht nur wegen WinAPI). Man lernt dort wichtige Zusammenhänge kennen, aber auch die Schwächen und Probleme vergangener Zeiten.

    Erst dann sollte man sich neuen Ufern zuwenden.

    Ich halte es z.B. auch für gut, den Weg von C über C++ zu Java oder C# zu gehen, weil man m.E. ansonsten nicht wirklich versteht, welche Vor- aber auch Nachteile neue Systeme besitzen.

    Dass man diesbezüglich völlig anderer Meinung sein kann, ist mir ebenfalls klar. Deshalb hat weder der eine noch der andere Recht, darum geht es auch überhaupt nicht.

    Ich möchte aber auch betonen - und da unterstütze ich kingruedi -, dass API's nicht wirklich elementar sind. Sie sind nur temporäres Mittel zum Zweck.

    Entscheidend sind praxisnahe, grundlegende Prinzipien, die sich längerfristig nicht verändern. Hierzu zählen z.B.:
    algorithmische Problemlösung und Zuverlässigkeit, Leistungsfähigkeit und Grenzen algorithmischer Methoden.



  • Erhard Henkes schrieb:

    das ist doch totaler Blödsinn

    @kingruedi:
    Also zunächst einmal muss ich dir sagen, dass du dich häufig im Ton vergreifst und dich nicht wie ein neutraler Moderator verhälst, sondern offen deine Zuneigung zu Linux und deine Abneigung zu MS Windows, insbesondere zu WinAPI, zur Schau stellst. Also, entweder solltest du deinen Moderator-Job an den Nagel hängen oder dein Verhalten neutraler oder zumindest ausgewogener (z.B. These, Antithese, Synthese) gestalten. 😉

    Öhm, es geht hier nicht um Linux und ich habe niemandem gesagt er soll lieber Linux benutzen. Was willst du mir sagen? Das du wenn du argumentativ nicht mehr weiter kommst einfach den "Du bist doch Moderator, lass mich in Ruh"-Hammer rausholst?

    Die WinAPI ist wirklich keine schöne API, aber das wär sie auch nicht wenn Linus Torvald sie geschrieben hätte oder sie vom POSIX Komitee ratifiziert worden wär.

    Und nach meiner Meinung ist es totaler Blödsinn zu glauben, dass man Nachrichten Systeme besser versteht, nur weil man mit der WinAPI arbeitet.

    @all:
    Persönlich halte ich viel vom Nachempfinden und praktischen Begreifen historischer Entwicklungen. Daher empfehle ich einem Einstieger in GUI die Programmierung auf MS Windows mit WinAPI (Das Buch von Charles Petzold ist z.B. heute noch lesenswert, nicht nur wegen WinAPI). Man lernt dort wichtige Zusammenhänge kennen, aber auch die Schwächen und Probleme vergangener Zeiten.

    ich befürchte eher, dass viele Leute, die noch keinen Überblick im Programmieren besitzen (also Anfänger) sich leicht in der historischen Entwicklung verfangen.

    Die WinAPI bringt IMHO kein Mehrwert als jede andere GUI API und im Gegensatz zu vielen GUI APIs fördert die WinAPI auch einen schlechten Stil. (ähnliches lässt sich auch auf andere APIs übertragen. Zum Beispiel was ich vom FOX-Toolkit gesehen habe lässt einen erschaudern, da man mit sehr vielen Macros arbeitet)

    Erst dann sollte man sich neuen Ufern zuwenden.

    Nein, erst wenn man ein gefästigtes Basis Wissen hat, sollte man sich an einen Brocken wie die WinAPI wagen.

    Ich halte es z.B. auch für gut, den Weg von C über C++ zu Java oder C# zu gehen, weil man m.E. ansonsten nicht wirklich versteht, welche Vor- aber auch Nachteile neue Systeme besitzen.

    Den begreift man wenn man sich mit den anderen Systemen ausseinander setzt, gerade als C++ Programmierer wird man schneller mit C konfrontiert als einem lieb ist.

    So gewöhnt man sich eher einen Stil an, der nicht optimal ist und den wieder wegzubekommen ist noch schwerer als der Programmier Einstieg oder das man sich zu sehr auf die WinAPI einfährt



  • C über C++ zu Java oder C#

    Wieso dass? Wieso vorher nicht noch BCPL? Ich meine, wieso ausgerechnet diesen kleinen Ausschnitt aus der Geschichte? Das macht doch nun wirklich gar keinen Sinn.



  • @kingruedi:

    moderator
    At a forum, someone entrusted by the administrator to help discussions stay productive and within the guidelines. Basic moderator duties include deleting or modifying inappropriate posts, educating newcomers about forum guidelines, and possibly deleting accounts of repeat offenders. Additionally, moderators may be experts in their field who can help minimize unanswered questions.

    @helium:

    wieso ausgerechnet diesen kleinen Ausschnitt aus der Geschichte?

    Der Ausschnitt ist in EDV-Maßstäben gar nicht so klein: ca. 30 Jahre, aber Helium hat Recht, es gibt da deutlich mehr (z.B. auch BCPL, PL360):
    http://www-gs.informatik.tu-cottbus.de/~wwwgs/alp_stammb.pdf
    http://www.tinohempel.de/info/info/prolog/paradigmen.htm
    http://www.weihenstephan.de/dvs/edvgw/e08_29.htm
    http://www.tfh-berlin.de/~oo-plug/Java/aufl2/ergzg/116.html



  • ..



  • Ich persönlich finde WinAPI nicht sonderlich spannend, da fast immer die nach dem gleichen Prinzip vorgegangen wird. Ich möchte das jetzt nicht in einen Topf werfen mit den MFC, aber auch dort finde ich wiederholt sich vieles. Da ist es meines Erachtens interessanter, z.B. C++ - Syntax auszufeilen. Oder eben Assembler, was ich persönlich total spannend finde. Und ich muß dazu mal ehrlich sagen: Mir hat Assembler wesentlich weiter geholfen bei C/C++. Insbesondere was Speicherverwaltung angeht etc. finde ich, gehört Assembler einfach dazu.
    Nervig dagegen finde ich z.B. solche Späße wie LISP, zumal ich da nur so eine Schrott-IDE gefunden habe, die ständig abschmiert.
    <OT>Wenn jemand eine gute Freeware-IDE für LISP kennt, mir bitte mitteilen</OT>

    Tja, meine Meinung halt... 🙄



  • Wir können uns darauf einigen, dass WinAPI weder spannend noch schön ist. 😃
    Die historische Bedeutung bezüglich Windows-Programmierung lässt sich allerdings nicht weg diskutieren.

    Assembler, was ich persönlich total spannend finde

    Da kann ich nur zustimmen, besonders, wenn man versucht, sein eigenes OS zu erstellen. Das ist ein wirklich elementares Erlebnis, und man ist froh, wenn man wieder das schäbige MS Windows oder Linux verwenden darf. In der Programmierung von Mikroprozessoren ist Assembler immer noch vorwiegend, obwohl man dort auch C/C++ einsetzen kann.



  • Guter Kompromiss 👍



  • <OT> @Erhard Henkes: Eine Frage mal zu deiner Sprechenden Uhr-Software: Wie sollen sich denn Blinde dieses Hammer-14-Seiten-pdf durchlesen, in denen diese zig Tastenkombinationen beschrieben werden? </OT>



  • ethereal schrieb:

    <OT>Wenn jemand eine gute Freeware-IDE für LISP kennt, mir bitte mitteilen</OT>

    lispworks (Xanalys) für den privaten gebrauch.

    3. Non-Commercial Use Only. The Personal Edition of LispWorks is licensed
    for academic, personal, and commercial evaluation purposes only. Use for the
    purposes of developing any commercial software product is strictly prohibited and
    shall be ground for termination of this license.



  • Wir können uns darauf einigen, dass WinAPI weder spannend noch schön ist. 😃

    Können C-APIs überhaupt schön sein?
    Ich glaube das ist unmöglich.



  • @elise: merci beaucoup



  • @Erhard

    #include <gtkmm.h>
    
    void quit_callback() {
      MessageDialog dialog("Ende");
      dialog.run();
    }
    
    int main(int argc,char **argv) {
      Gtk::Main kit(argc,argv);
      kit.signal_quit().connecct(quit_callback);
      Gtk::Window window;
      Gtk::Label label("Das ist ein Fenster");
      window.add(label);
      return kit.run(window);
    }
    

    wie du siehst, dass Programm ist kleiner, übersichtlicher und intuitiver. Außerdem werden die Anfänger nicht im Stil verzogen. Auch ist die Anzahl der verwendeten Typen/Funktionen kleiner.

    btw. sprechen wir hier nicht von Sprachen!

    Und was bringt jetzt die WinAPI für ein Mehrwert? (Vorallem muss der Mehrwert den Schaden auch wiederaufheben, den die WinAPI verursacht).

    Falls du nicht glaubst, dass die WinAPI Anfänger schädigt, solltest du dir mal die zahlreichen Postings im C++ Forum angucken, da sind eine Menge gute Beispiele bei.



  • kingruedi schrieb:

    Falls du nicht glaubst, dass die WinAPI Anfänger schädigt, solltest du dir mal die zahlreichen Postings im C++ Forum angucken, da sind eine Menge gute Beispiele bei.

    wieso fühle ich mich nur angesprochen 🙄



  • otze schrieb:

    kingruedi schrieb:

    Falls du nicht glaubst, dass die WinAPI Anfänger schädigt, solltest du dir mal die zahlreichen Postings im C++ Forum angucken, da sind eine Menge gute Beispiele bei.

    wieso fühle ich mich nur angesprochen 🙄

    Und Deine Siggi ist Programm bei WinAPI, wie?! 😃



  • gtkmm-Beispiel sieht nicht schlecht aus. was ist bei MS Windows aber darunter? wie sieht das innenleben der funktionen aus? wird dort die WinAPI verwendet? dann wäre das eine kapselung wie MFC o.ä., nur portabel auf andere OS.


Anmelden zum Antworten