Was jetzt nach C und C++?
-
kingruedi schrieb:
Was da zB. die WinAPI soll versteh ich nicht. Die API ist (selbst nach Aussagen von MS) veraltet und einen schönen Programmierstil lernt man durch die WinAPI erst recht nicht. Also lieber gleich von der Liste streichen und nur lernen, wenn man es wirklich muss (also jemand mit Scheinen winkt ;)). Sich auf APIs festzulegen ist eine schlechte Idee. APIs kommen APIs gehen...
Verstehe ich nicht. *So* schnell ist die WinAPI auch nicht veraltet (jedenfalls hat man noch Zeit, ein paar Grundzüge zu lernen) und man lernt dadurch, auch mit krepligen C-APIs umzugehen. Da ist die WinAPI ja bei weitem nicht die einzige auf der Welt.
-
Ohne WinAPI kommt man aber im Moment noch nicht aus. In C# und Visual Basic etc. brauch man sie auch immer wieder.
-
... schrieb:
Ohne WinAPI kommt man aber im Moment noch nicht aus. In C# und Visual Basic etc. brauch man sie auch immer wieder.
Es gibt auch noch interessante Bereiche jenseits von M$
Zum Thema. Ich bin ebenfalls wie einige Andere hier auch der Meinung dass man mal in verschiedene Sprachen reinschnuppern sollte. Er hat sich nun ne prozedurale Sprache und ne Objektorientierte angeschaut. Da wirds doch evtl. Zeit für was Funktionales oder Imperatives. Eben neue Konzepte und neue Wege.
Assembler ist ne feine Sache um eine tieferes Verständnis für die Funktionsweise des Rechenknechts zu gewinnen. Einfach mal alles anschauen.
Und wenn er sich mal mit allem so ein bisschen beschäftigt hat, bleibt ja noch Brainfuck
-
prolog schrieb:
Und wenn er sich mal mit allem so ein bisschen beschäftigt hat, bleibt ja noch Brainfuck
wobei ich auch nur betonen kann, dass ich BrainFuck jedem Programmierer nur empfehlen kann. Das bringt einem irgend wie ein gewisses Verständniss
-
kingruedi schrieb:
Assembler halte ich da für Sinnvoller, da man ein grundlegendes Gefühl für Computer-Architekturen gewinnt.
Das Argument habe ich ehrlich gesagt noch nie verstanden. Warum sollte man etwas über "Computer-Architekturen" erfahren, wenn man einen Assembler lernt. Wo wird man denn da zum Beispiel mit Dingen wie Pipelining oder der Funktionsweise eines Caches konfrontiert? Naja, vielleicht habe ich mich bisher auch einfach nur zu wenig mit Assembler auseinandergesetzt, um das zu sehen. Ich bin mal auf die Erklärung gespannt.
-
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. Vielleicht kann man Assembler und Windows kombinieren.
http://www.deinmeister.de/wasmtut.htmEine neuere Entwicklung sind "DNS-Rechner":
http://www.wisdom.weizmann.ac.il/~kobi/
-
Vielleicht kann man Assembler und Windows kombinieren.
Sehr sinnvoll.
-
@User20034: In welche Richtung gehen deine Interessen nun?
-
Gregor schrieb:
Das Argument habe ich ehrlich gesagt noch nie verstanden.
Es ist auch ein komisches Argument.
Der Grundgedanke ist wohl der, dass wenn du dich mit ASM abgibst du recht oft mehr ueber die Funktionsweise von alle dem erfahren willst. Zwingen tut dich allerdings keiner. Insofern kann man sich auch ein gutes Buch genehmigen - das tut es auch
-
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 tunSo 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.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.