Als Programmierer der "alten Schule" habe ich so meine Probleme mit den überfrachteten und ressourcen-fressenden Programmiersprachen der aktuellen Generation. Wenn ich früher in einer Assemblerschleife um jeden Zyklus gekämpft habe, dann tut es mir einfach weh, wenn ich die Monstren sehe, die der OOP-"Klassenkampf" erzeugt.
Klar, mit schnellerer Hardware und mehr Speicher lässt sich vieles kaschieren - aber es geht eben nichts über ein handliches, flottes Programm, das auch einem uralt-Pentium noch die Sporen gibt.
"Handlich" muss eine Programmiersprache sein. Schnellen, kleinen Code muss sie erzeugen und sie muss den Programmierer in die Lage versetzen, das System in all seinen Facetten zu nutzen. Dazu zählt der Zugriff auf das Betriebssystem, auf alle Ein- und Ausgabeports, auf die Grafik- und Soundkarten und vieles mehr.
Ein wichtiges Kriterium für meine Programmiersprachen-Suche war auch die Möglichkeit, Programme für Windows und für Linux gleichermassen schreiben zu können, ohne viel Anpassungsarbeiten. Hier dünnt sich die Luft schon gewaltig aus. Im Grunde kamen eigentlich nur noch Java, Delphi und eben PureBasic in die engere Wahl.
Java ist sehr langsam und benötigt ein schwerfälliges Runtime-Modul. Klar, es läuft wirklich überall, aber die Nachteile sind doch beträchtlich.
Delphi war einen Versuch wert und ich habe mir mein Urteil gebildet: viel zu umständlich, langsame und riesige Programme, fehlerhafte Linux-Umsetzung und sehr hoher Preis. Grund genug für mich, dieses Experiment abzuhaken.
Was blieb war PureBasic - und ich bin davon täglich mehr begeistert.
Der Compiler
============
Anders als im "klassischen" Basic wird der Code hier nicht "interpretiert", sondern "compiliert" und dann wie ein normales EXE-Programm ausgeführt. Völlig eigenständig und komplett ohne irgendein Runtime-Modul (wie etwa bei VisualBasic). Hier kann man noch vollständige Windows-Programme schreiben, die auf eine Diskette passen und die ohne mühsame Install-Prozedur auskommen! Oder - um ein etwas moderneres Übertragungsmedium zum Vergleich herzunehmen - ein PureBasic-Pragramm kann man über das Internet downloaden, ohne den Computer die ganze Nacht arbeiten zu lassen...
Ein Beispiel: mein aktuelles Projekt besteht mittlerweile aus über 900kB Source-Text. Compiliert ist das EXE-Programm kaum 150kB gross, trotz mehrerer Libraries.
Die Geschwindigkeit des resultierenden Programms ist ebenfalls überzeugend. Meine Vergleichtests zwischen PureBasic und C haben kaum Unterschiede ergeben - mit leichten Vorteilen einmal auf dieser und einmal auf jener Seite.
Die Entwicklungsumgebung
========================
Die mitgelieferte Umgebung besteht aus einem Texteditor mit automatischem Syntax-Check, einem Debugger und natürlich dem Compiler, der auf Klick aus dem Quellcode ein Programm erzeugt und ausführt. Das ganze geht derart schnell, dass angenehm kurze Turnaround-Zeiten entstehen.
Die Fehlersuche und vor allem das Beseitigen derselben macht geradezu Spass. Die Sprache ist derart transparent und problemlos, dass ich bisher jedes Problem in Minuten gelöst hatte. Bei Delphi hat es manchmal Stunden gedauert, bis ich die enorm vielen Parameter irgendeiner Unit durchschaut hatte und einen Fehler einkreisen konnte.
Ein Tipp: sobald wie möglich auf "jaPBe" umsteigen - das ist eine kostenlose Entwicklungsumgebung, die weit mehr Features und Komfort bietet.
Für die Oberflächengestaltung bietet PB auch einen visuellen Editor, mit dem ich mich bisher aber noch nicht sehr intensiv beschäftigt habe. Er steckt noch in den Kinderschuhen und ist nicht vergleichbar mit den entsprechenden Editoren bei VisualBasic oder eben Delphi. Das mag zunächst ein Nachteil sein - ich habe mich aber rasch an die Arbeit ohne "visuelle" Umgebung gewöhnt und bin bei der Gestaltung von Fenstern kaum mehr langsamer, als damals mit der Maus. Hier ist die hohe Compilier-Geschwindigkeit neuerlich von Vorteil - man kann sehr schnell ein paar Parameter ändern und das Ergebnis sofort sehen, wodurch fast ein WYSIWYG-Gefühl entsteht...fast...
Die Sprache
===========
PureBasic ist nicht objektorientiert, sondern eine prozedurale Sprache. Mir kommt das sehr entgegen, andere mögen das nicht (mehr) und die müssen eben auf andere Lösungen setzen.
Selbstverständlich bietet PB alle Strukurelemente wie Prozeduren, Funktionen, REPEAT, WHILE, SELECT, Schleifen, IF-ELSE, globale und lokale Variablen und mehr. Vom alten "GOTO" und von Zeilennummern (obwohl man beides auch hier haben kann) ist PB meilenweit entfernt.
Alle wichtigen Variablentypen sind vorhanden, bis hin zu Bibliotheken für hochgenaue Fliesskomma-Typen. Ein Nachteil ist, dass Strings max. 64kB gross sein dürfen. Hier wurde Abhilfe versprochen - im Moment kann man das aber mit Pointers und reservierten Speicherbereichen gut umgehen.
Wer ein bisschen tiefer einsteigen will, kann direkt per Inline-Assembler programmieren. Externe DLLs sind ebenfalls kein Problem - ich verwende zB intensiv den mySQL-DB-Server per DLL und nicht per ODBC, was auch geht, aber deutlich langsamer wäre.
Natürlich lässt sich der Code auch in beliebige viele Dateien aufteilen und dann per Include zusammenfügen. Eine angenehme Sache für größere Projekte, um den Überblick zu bewahren.
Die WindowsAPI, also die Sammlung zahlreicher Routinen von MS-Windows, ist direkt von PB aus ansprechbar. Natürlich erkauft man sich damit den Nachteil, dass die Programme dann nicht mehr direkt auf Linux einsetzbar sind. Ähnlich ist es mit ActiveX/OCX-Dateien, die mehr oder weniger umständlich ebenfalls verwendbar sind, aber eben nur auf Windows.
Zahlreiche Bibliotheken vervollständigen den Befehlsumfang: von der schnellen 2D und 3D-Grafik, über Sound, Netzwerk-TCP/IP, Verschlüsselung und Komprimierung, Mathematik, Fenster-Elemente, Speicher- und Thread-Handling und vieles mehr. Kurz, alles was man für Spiele und Applikationen auf Windows- und Linuxmaschinen brauchen kann.
Support
=======
Die offizielle Website heisst www.purebasic.com. Hier finden sich auch die beiden wichtigsten Links zum englischen und deutschsprachigen Supportforum. In diesen Foren ist, behaupte ich mal, noch nie eine Frage unbeantwortet geblieben. Viele sehr engagierte User helfen geduldig wirklich jedem, vom Anfänger bis zum Profi.
Sowohl in den Foren, als auch auf diversen Usersites sind zahlreiche Zusatzbibliotheken und Code-Beispiele zu praktisch jedem Thema verfügbar.
Kosten
======
Die einzig sinnvolle Variante ist es, sich über die Website die Vollversion um 59 Euro zu besorgen. Diese Version ist komplett upgrade-fähig, was bedeutet, dass man sich alle künftigen Upgrades ohne Aufpreis holen kann! Die beiliegende, deutschsprachige Hilfedatei ist umfangreich und sehr nützlich.
Ebenfalls erhältlich ist eine "boxed Version" um 79 Euro, die zwar mit Handbuch kommt, aber ohne upgrade-Fähigkeit. Die muss man extra bezahlen, was die Sache dann doch deutlich teurer macht.
Fazit
=====
Ich halte PureBasic für eine ausgesprochen leistungsfähige Alternative für kleine bis mittlere Programmierprojekte, zu einem unschlagbar günstigen Preis. Faszinierend ist vor allem die kurze Einarbeitungszeit und die Geschwindigkeit, mit der Windows- und Linux-Programme erstellt und getestet sind.
|