Zum Inhalt springen

Blitz2D: Vorwort

Aus Wikibooks

Vorwort zum Programmieren von Mirco1989

[Bearbeiten]

Programmieren ist kein Kinderspiel, aber auch keine Hexerei. Das soll bedeuten, dass man einerseits nicht einfach schnell einige vorgefertigten Elemente wie Bauklötze aufeinander stellt, um auf die Art in kurzer Zeit ein Programm zu erstellen, andererseits ist es aber nicht unbedingt erforderlich, jahrelang zu studieren um dann vielleicht mit etwas Glück und Geduld ein Programm zu zaubern.

Programmieren liegt irgendwo zwischen diesen beiden Extremen. Wo es genau einzuordnen ist, hängt im wesentlichen von der gewählten Programmiersprache ab. Mit einem Computer kann man theoretisch jede denkbar mögliche Ausgabe an jedes angeschlossene Gerät durchführen und dafür von jedem angeschlossenen Eingabegerät jede mögliche Eingabe auswerten. Man kann sich leicht vorstellen, dass dafür eine große Anzahl von kleinen Einzelschritten erforderlich ist. Mit Assembler (auch als Maschinensprache bezeichnet) kann man wirklich jede der genannten Aktionen ausführen, da Assembler direkt die Steuercodes des Prozessors in verständlichen Symbolen (Mnemonics) verwendet. Jedoch sind in Assembler oft zigtausende Anweisungen nötig, um irgend eine erkennbare Reaktion zu zeigen. Eine hardwarenahe Programmiersprache wie C++ fasst mehrere Assembleranweisungen zu einer leichter lesbaren Form zusammen, doch egal wie viele Anweisungen mit C++ möglich sind, es bleiben immer irgend welche Funktionen, die mit Assembler möglich sind, aber mit C++ nicht programmiert werden können. Leichter lesbare und programmierbare Sprachen wie Blitzbasic fassen wiederum mehrere C++ Anweisungen zu Anweisungsblöcken zusammen. Aber auch hier gilt, selbst sehr viele Anweisungen in Blitzbasic können niemals alles erreichen, was mit C++ möglich wäre. (und damit erst recht nicht alles, was mit Assembler geht) Aber es geht immer noch einfacher, Programme wie Gamemaker bauen tatsächlich nach dem Bauklötze-Prinzip vorgefertigte Elemente aufeinander, ohne das man dabei irgend etwas programmieren muss. Jedoch haben solche Programme wiederum erheblich mehr Einschränkungen, als die Möglichkeiten, die eine Programmiersprache bietet.

Vorwort zu BlitzBasic von Mirco1989

[Bearbeiten]

Zwischen dieser groben Einteilung, die ich hier dargestellt habe, gibt es jedoch noch sehr viele Abstufungen in Form von anderen Programmiersprachen, die mehr oder weniger Einschränkungen gegenüber der Assemblerprogrammierung bieten, aber auch mehr oder weniger Programmieraufwand erfordern. Doch dieses Buch soll nicht Programmiersprachen allgemien beschreiben, sondern die Programmierung in Blitzbasic erklären. Darum ist die grobe Einteilung ausreichend. Etwas näher möchte ich nur auf Unterschiede zu anderen Basic-Sprachen eingehen, wo Blitzbasic deutlich näher zur C++ Programmierung liegt. Dazu ein Beispiel: Die meisten Basic-Sprachen haben eine Messagebox-Funktion, mit der man ein kleines Fenster öffnet, um den Anwender mit einem Text auf irgend etwas hinzuweisen. Gewöhnlich kann man mit der Funktion den Text der Nachricht und den Text der Titelleiste festlegen, manchmal auch ein Icon, dass dazu gezeigt werden soll, sowie den Text, der auf dem OK-Button angezeigt werden soll. Eine solche Funktion gibt es bei BlitzBasic nicht. Dafür gibt es die Möglichkeit, ein in Farbe, Form und Transparenz völlig den eigenen Wünschen entsprechendes Fenster auf eine selbst definierte Art in den Bildschirm gleiten zu lassen. Der Hintergrund des Fensters, die Titelleiste, der Informationstext, der OK-Button und das angezeigte Bild können beliebig gestaltet werden. Entweder nur das Bild, als Animation, oder sogar das ganze Fenster sowie alle Anderen Elemente können als gerenderte 3D-Grafik erstellt werden. Ob all das sinnvoll ist, um den Anwender nur eine Information zukommen zu lassen, ist erst einmal belanglos, wichtiger ist eher, das der Programmierer nicht zu einer bestimmten vorgefertigten Form gezwungen wird, sondern eine Gestaltung nach eigenen creativen Möglichkeiten vornehmen kann. All das genannte und noch weitere Möglichkeiten sind mit C++ (und erst recht mit Assembler) natürlich auch möglich, jedoch erfordert das erheblich mehr Programmieraufwand, als mit Blitzbasic.

„nur eine Spiele-Sprache“??? von Mirco1989

[Bearbeiten]

Blitzbasic wird auf seiner Homepage als "für die Spieleprogrammierung optimiert" bezeichnet, aber natürlich ist auch die Programmierung anderer Anwendungen mit Blitzbasic möglich. Trotzdem wird Blitzbasic von Programmierern anderer Programmiersprachen eher abwertend als „nur eine Spiele-Sprache“ bezeichnet. Doch wenn man sich das genau überlegt, wo wären wir denn heute, wenn es keine Computerspiele gäbe? Erst einmal werden die meisten Computer in Privathaushalten nur zum Spielen genutzt, ohne Computerspiele würden wesentlich weniger Computer gekauft werden und sie wären dadurch deutlich teurer. Spiele stellen die deutlich höchsten Anforderungen an einen Computer. Gerade für immer mehr und bessere Möglichkeiten in Spielen werden immer bessere Grafik- und Soundkarten entwickelt. Ohne Spiele hätten PCs wohl standardmäßig 256 Farben und nur Pieptöne, die für viele Anwendungen ausreichend wären, auch weil bessere Grafik- und Soundkarten mangels großem Absatz deutlich teurer wären. Daher sehe ich die Bezeichnung "Spiele-Sprache" keineswegs abwertend, sondern eher als ein Qualitätsmerkmal.

„Basic ist nicht unbedingt langsam“ von Axel Prignitz

[Bearbeiten]

Ein weiteres Vorurteil von Programmierern anderer Programmiersprachen gegenüber Basic, besonders ältere Generationen, die schon in der 80er Jahren einen C64 hatten, ist dass Basic zu langsam für „sinnvolle“ Programme wäre. Das liegt daran, dass das Basic des C64 eine Interpretersprache ist. Jede Anweisung aus dem Basic musste zur Laufzeit des Programms vom Basicinterpreter in Assembler übersetzt werden, und nach der Abarbeitung für Rückgaben wieder zu Basic übersetzt werden. Außerdem erfolgte eine Überprüfung des Programms auf Fehler erst zur Laufzeit des Programms und der Programmcodes der für den Interpreter im Speicher bleiben musste war sehr Speicherintensiv, so dass mit C64-Basic das nur 38 Kilobyte für Basicprogramme hatte, kaum komplexe und schnelle Anwendungen möglich waren.

Doch die erste Version von BlitzBasic wurde schon Anfang der 1990er Jahren am Amiga von dem Neuseeländer Mark Sibly als Compilersprache entwickelt und war dadurch dem vom Microsoft entwickelten AmigaBASIC-Interpreter deutlich überlegen. Von Anfang an wurde auf eine besonders schnelle Grafikausgabe Wert gelegt. (auch bei Blitz3D ist die Ausgabe von 3D-Grafik sehr schnell) Die Folgeversion „BlitzBasic 2“ wird immer noch als AmiBlitz für den Amiga weiterentwickelt. Der BlitzBasic-Compiler erstellt aus dem Programmcode (ebenso wie C++) ein ausführbares Assemblerprogramm, das den Programmcode nicht mehr benötigt. Eine Fehlerüberprüfung findet schon während des Compilierens statt. (kann jedoch auch ohne Compilierung durchgeführt werden) Am fertig erstellten Programm ist nicht mehr erkennbar, ob es mit BlitzBasic, C++ oder einer anderen Programmiersprache erstellt wurde. (bei meinen Programmen wird darum auf die Erstellung mit BlitzBasic, meist Blitz3D hingewiesen)

Seit der ersten Version von BlitzBasic sind über 25 Jahre vergangen. Jede Version von BlitzBasic ist kompatibel zu allen vorherigen Versionen, wodurch selbst Programmcode, der mit dem ersten BlitzBasic geschrieben wurde, mit allen neueren BlitzBasic-Versionen ohne Anpassungen kompiliert werden kann.

Navigation
Buch-Startseite Gratis-Download der BlitzBasic-Versionen Inhaltsübersicht