Dem kann ich voll und ganz zustimmen. Da ich jetzt seit ca. 1,5 Jahren in PureBasic programmiert habe, kann ich da doch jetzt recht gut darüber urteilen, wie sich damit umgehen lässt, zumindest grob. Seit ein paar Wochen habe ich dann mal C/C++ ausprobiert und musste da feststellen, dass es nicht alles mehr so simpel ist wie in PureBasic. Denn Fenster werden nun nicht simpel mit einer Zeile Code erzeugt sondern erfordern mehrere Structuren, Variablentypen und eine ganze andere Art der Event-Abarbeitung (Ich verwende für Fensteranwendungen derzeit die WinAPI). Da tritt der erste Nachteil/Vorteil (Kann man sehen wie man will) von PB auf. Fenster lassen sich einfach erstellen, man hat wenig Arbeit und keine Sorgen mit Pointern und Speicherreservierung. In C/C++ in Kombination mit der WinAPI muss da mehrere Windows-Typen und Structuren erstmal erlernen, da sich die Namen teils unterscheiden. (Word anstatt short, UINT für unsigned Int usw. ) Außerdem muss man sich mit Dingen wie Windows-Klasse registrieren und Pointer setzen beschäftigen. Dies bietet allerdings den Vorteil, dass man wesentlich mehr lernt da alles sehr explizit gemacht werden muss. Sogar die Cursor und Icons sowie Brush-Farbe des Fensters müssen vorher in einer Structur angegeben werden bevor das Fenster erstellt werden kann. In PB hat man diese Dinge nicht, es gelten Standardvorgaben und Fenster werden mit einer Zeiel erstellt. Dafür hat man den Nachteil, dass man keinen großen Einfluss auf den Aufbau des Fensters hat. Man kann nicht explizit die Brush-Farbe, Icons bei Maus im Fenster und solche Dinge festlegen. Im endeffekt bedeutet das, mehr Arbeit, dadurch aber auch mehr Freiraum, und man lernt mehr über das was dahinter steckt als wenn man nur eine Zeile hat welche alles für einen im Hintergrund generiert. (Unter Windows verwendet PureBasic die WinAPI und somit werden diese Vorgänge alle im Hintergrund automatisch erstellt, man braucht nur eine Zeile aufrufen.) Da PB Plattformunabhängig ist, zumindest im Bereich von Linux, Windows, Mac und Amiga hat es aber hier den Vorteil, dass man eine Befehl hat um ein Fenster zu erstellen und dieser wird auf dem jeweiligen OS anders gehandhabt. Unter Linux wird dann die dort ansässige API verwendet um die Fenster zu erstellen, unter Mac wieder eine andere und unter Windows eben die WinAPI. Die Vorgänge welche dahinter stecken lernt man nicht, dafür ist es wesentlich leichter und man erzielt schneller sichtbare Ergebnisse.Zitat
Ansonsten sei noch gesagt, wie MagicMagor auch schon schreib, lässt sich per PureBasic leicht auf DirectX zugreifen (wieder ohne den wahren Hintergrund zu kennen, aber dafür leicht verständlich und mit schnellen Ergebnissen) und einfach Grafiken auf den Bildschrim ausgeben. Bei C++ ist der Standard-Ausgabekanal erstmal die Konsole. Um andere Dinge anzusprechen, etwa Fensteranwendungen oder um Spiele zu erstellen, muss man auf diese APIs zurückgreifen. Wie oben angesprochen, bei Fensteranwendungen unter Windows könnte man die WinAPI nehmen, für Spiele etwa DirectX oder OpenGL. Demnach kommt man wieder mit PureBasic schnell ans Ergebnis, kann Grafische Dinge ausgeben und Spiele und Fensteranwendungen programmieren. Der Nachteil ist eben, wie angesprochen, dass man oft den Sinn, was wirklich hinter den simplen Befehlen wie DisplaySprite() steckt, nicht versteht und nicht erlernt wenn man mit PB und anderen Basic-Dialekten schreibt.
Ich beispielsweise kenne die komplexen Vorgänge von DirectX nicht, bisher habe ich in PB immer so diese Befehle genutzt und war mit dem Ergebnis zufrieden. In C++ jetzt aber muss man da umdenken denn C++ bietet keine Befehle für Grafiken dieser Art. Man muss auf die APIs zurückgreifen, selbst DirectX lernen und damit dann Bild auf den Monitor zaubern. Wesentlich komplexer und schwieriger, aber man lernt was und kann dieses Wissen auch in anderen höheren Sprachen anwenden oder kennt dann wenigstens die Zusammenhänge wenn man mal den Befehl OpenWindow() schreibt, was dann wirklich intern automatisch vom Compiler erledigt wird.
Soweit von mir, das sind so meine Eindrücke vom Umstieg von PureBasic auf C/C++. (Nicht dass ich PB nicht mehr nutze, nur ich versuche mich eben mal in einer mehr low-level orientierten Sprache um eben die Vorgänge besser zu verstehen).
Man muss da nicht meiner Meinung sein, aber so habe ich es erlebt jetzt nachdem ich ein paar Fensteranwendungen per WinAPI erstellt habe welche sich Zeilentechnisch um das 5 Fache vermehren. (Vorher vielleicht 16 Zeilen in PureBasic, jetzt 80 Zeilen in C++ mit WinAPI).
@MagicMagor:
In PB konntest du für dein Aufbauspiel (Das mit den Iso-Kästchen) noch die einfachen Sprite-Library Befehle von PB nutzen, was verwendest du denn jetzt in Delphi für Bibliotheken? Würde mich einfach mal interessieren.