# PowerBASIC

PowerBASIC ist ein BASIC-Compiler des Unternehmens PowerBASIC Inc., von dem verschiedene Versionen für MS-DOS und Windows erhältlich sind. Die Entwicklungswerkzeuge umfassen einen Editor, den eigentlichen Compiler und einen Debugger.
Aktuelle Versionen (Ende 2008) :
| System | Programm | Version |
| Windows | PowerBASIC for Windows | 10.040 |
| Windows | PowerBASIC Console Compiler | 6.040 |
| Windows | PowerBASIC Forms | 2.010 |
| DOS | PB/DOS | 3.500 |
Die Compiler erzeugen vergleichsweise schnellen Code, den sie in Maschinensprache generieren, wohingegen einige andere BASIC-Compiler P-Code erzeugen, der zur Laufzeit noch interpretiert werden muss und erst dann Befehl für Befehl in Maschinensprache übersetzt wird. Die Dateien, welche die PowerBASIC-Compiler erzeugen, sind selbständig lauffähig und benötigen keine Runtime-Module.
Die PowerBASIC-Compiler sind kommerzielle Programme. Kostenlos erhältlich ist nur eine stark eingeschränkte Testversion des DOS-Compilers in der Version 3.20, bei der das Laden von Programmen unterbunden ist.

## PowerBASIC für DOS

Der Compiler stammt ursprünglich von Robert S. Zale (aka. Bob Zale), der die Vermarktung der Firma Borland überließ. 1987 erschien das Programm als Turbo Basic-Compiler. Ähnlich wie Turbo Pascal unterstützte es bereits eine strukturierte Programmierung. Der Sprachumfang orientierte sich an Microsofts QuickBASIC, sodass PowerBASIC für DOS weitgehend mit QuickBASIC bzw. QBasic kompatibel ist, nach höchstens geringfügigen Änderungen des Quellcodes kann man daher auch QBasic-Code mit PowerBASIC für DOS kompilieren. Mit dem Erscheinen von Microsofts QuickBasic und dem kostenlosen Interpreter QBasic sah Borland keine Marktchancen mehr und gab das Projekt auf.
Bob Zale löste deshalb 1989 den mit Borland bestehenden Distributionsvertrag auf, sodass auch das Markenzeichen Turbo ersetzt werden musste und der neue Name PowerBASIC entstand. Mit der Firma Spectra Publishing fand er einen neuen Partner für den weltweiten Vertrieb. Bob Zale hat seitdem den Sprachumfang von PowerBASIC ständig erweitert und sogar die von der Programmiersprache C her bekannten Konstrukte Pointer (Zeiger) und Unions in PowerBASIC eingebaut.
Als Spectra Publishing 1993 in Konkurs ging, gründete Bob Zale in Carmel-by-the-Sea, Kalifornien eine eigene Firma namens „PowerBASIC, Inc.“, deren Firmensitz sich mittlerweile in Englewood, Florida befindet.
Bis in die frühen 1990er-Jahre hatte PowerBASIC einen weiteren erheblichen Nachteil gegenüber QuickBasic. Es gab zwar eine Integrierte Entwicklungsumgebung (IDE) mit Pull-Down-Menüs, jedoch keine Maus-Unterstützung. Diese gab es erst ab 1993 mit der PowerBASIC Version 3.0. In so erzeugte Programme ließ sich daher nur mit einigem Aufwand eine Mausbedienung entweder über Interrupt-Aufrufe einbinden oder über die PowerTOOLS, ein Fremdprodukt, das lediglich in Deutschland für eine gewisse Zeit Bestandteil des PowerBASIC Pakets war.
Die letzte Version von PowerBASIC für DOS 3.50 ist nur in Englisch verfügbar. Sie erschien Ende 1997. Heute repräsentiert PowerBASIC für DOS einen Sektor der Programmentwicklung, der seit Mitte der 1990er-Jahre, insbesondere aufgrund des Siegeszuges grafischer Benutzeroberflächen, immer weniger gefragt ist und sich inzwischen nur noch auf wenige spezialisierte Anwendungen abseits des Massenmarktes beschränkt. Gleichwohl lässt sich PowerBASIC für DOS auch unter Windows weitgehend problemlos einsetzen, zum einen unter „echtem“ Microsoft-DOS 7.1 (wie es Microsoft Windows 98 zugrunde lag), zum anderen in den DOS-Emulationen der neueren Windows-Versionen ab Windows 2000. Aufgrund seines geringen Speicherplatzbedarfs und seiner Unabhängigkeit von der Windows-Registry eignet sich PowerBASIC für DOS dabei vor allem für den portablen Einsatz, z. B. zu Reparaturzwecken von einem USB-Stick aus. Einziges wesentliches Hindernis dabei ist, dass PowerBASIC für DOS nur mit 8.3-Dateinamen umzugehen versteht, man also ggf. zunächst einmal mithilfe des Befehls dir "Langname" /x die aktuelle 8.3-Entsprechung des Dateinamens der zu bearbeitenden Datei bestimmen muss, bevor diese selbst mit PowerBASIC für DOS geöffnet und bearbeitet werden kann.
FirstBasic beruht auf PowerBASIC für DOS 2.10 und ist eine kostengünstige Einsteigerversion, die ebenfalls einen echten Compiler beinhaltet.

## PowerBASIC für Windows

Seit einigen Jahren liegt der Schwerpunkt der PowerBASIC-Entwicklung auf der Weiterentwicklung der PowerBASIC-Compiler für 32-Bit-Windows. Es gibt zwei PowerBASIC-Varianten für Windows: PowerBASIC für Windows (abgekürzt „PB/Win“; früherer Name: PowerBASIC DLL, abgekürzt „PB/DLL“) und PowerBASIC Console (abgekürzt „PB/CC“ = PowerBASIC Console Compiler).

### PowerBASIC für Windows (PB/Win)

PB/Win, das bis Mitte 2002 PB/DLL hieß, ist eine moderne, leicht erlernbare Programmiersprache für Windows-Systeme, mit der man Anwendungen programmieren kann, die eine Grafische Benutzeroberfläche haben (Menüs, Dialogboxen u. dgl.). Der PB/Win-Compiler erzeugt Programme, die direkt vom Prozessor ausgeführt werden, sie bedürfen keiner vorherigen Interpretation. Das Kompilat ist kein Zwischencode, sondern nativer Code, daher kann Pb/Win sehr schnelle und kleine EXE-Dateien erzeugen, die zudem, falls gewünscht, alleine, ganz ohne DLL- oder OCX-Laufzeitbibliotheken arbeiten können. Ab der Version 7.0 ermöglicht PB/Win Makros, d. h. die Definition von wiederholbaren Quellprogrammteilen, prinzipiell ähnlich wie es aus der Programmiersprache C bekannt ist.
Über die Include-Datei WINAPI.INC können Pb/Win-Programme auf alle Windows-Funktionen direkt zugreifen. Laufzeitbibliotheken werden dazu nicht benötigt. PB/Win besitzt darüber hinaus einen eingebauten 32-Bit-Inline-Assembler.
Außerdem ist PB/Win zum Erstellen sehr schlanker und schneller Laufzeitbibliotheken (DLLs) geeignet, auf die auch jede andere Programmiersprache zugreifen kann, die mit standardgemäßen DLLs funktioniert – daher der alte Name PB/DLL. PB/DLL erschien erstmals 1996, zunächst als 16-Bit-Version für Windows 3.1x.
PB/Win hat eine recht komfortable Entwicklungsumgebung (IDE), die außer dem Compiler einen Editor mit einer farblichen Hervorhebung der Sprachelemente (Syntax-Coloring), einen Debugger, sowie eine Hilfefunktion zusammenfasst. Der Debugger bietet eine komfortable Trace-Funktion, die das Aufzeichnen aller wichtigen Dateninhalte und Codeadressen während des Programmablaufs ermöglicht.

#### PowerBASIC Forms

Mit dem gesondert zu erwerbenden Programm PowerBASIC Forms kann man grafische Bedienoberflächen für PB/Win-Programme schnell und verhältnismäßig leicht, nämlich über ein GUI (graphical user interface), erstellen. PowerBASIC-Forms erzeugt den für die gewünschte Bedienoberfläche benötigten PowerBASIC-Code. Damit ermöglicht es PowerBASIC, Inc. Softwareentwicklern, eine grafische Bedienoberfläche für ihre PB/Win-Programme schneller als vordem zu erstellen, ohne dass sie Visual Basic oder ähnliche Fremdprodukte benutzen müssen.

### PowerBASIC Console (PB/CC)

PB/CC, der PowerBASIC Console Compiler ist für rein textbasierte Anwendungen gedacht bzw. für Stapelverarbeitungen und Programme fast ohne Bildschirmausgaben; ab der Version 4 allerdings umfasst die Sprache auch einen ganzen Satz von Grafikbefehlen. Darüber hinaus gibt es seit längerem auch für PB/CC einige Bibliotheken und Add-Ons, mit deren Hilfe die Programmierung grafisch ansprechender Anwendungen möglich ist bzw. der Zugriff auf das Windows Application Programming Interface.
Die mit PB/CC erstellten Programme sehen zwar wie DOS-Programme aus, aber es sind 32-Bit-Windows-Programme mit vollem Zugriff auf alle Windows-Systemfunktionen. Beispielsweise können bis zu 2 GB Arbeitsspeicher adressiert werden, lange Dateinamen sind möglich und alle von Windows über Treiber unterstützten Geräte wie Drucker, Modems und Netzwerke (inklusive des Internets) lassen sich ansprechen.
PB/CC ist sehr schnell und ideal für alle Anwendungen, die keine grafische Bedienoberfläche benötigen, zum Beispiel für CGI-Programme (interaktive Web-Anwendungen), kaufmännische Kalkulationen, jegliche mathematische Berechnungen, Datenbank-Zugriffe, halbautomatische Textfilterung, komplexere Batchprogramme oder verwandte Anwendungen.

## Anwendung

PB/Win und PB/CC sind auf die Erstellung betriebswirtschaftlicher Anwendungen unter Windows angelegt, weniger geeignet sind sie zur Programmierung von Computerspielen und Erstellung von Multimedia-Anwendungen, welche ohne zusätzliche Programmbibliotheken nicht umsetzbar wären. Für die Spieleprogrammierung sind Blitz Basic oder PureBasic, beide multiplattformfähig (mit ihren integrierten DirectX-Schnittstellen) bzw. DarkBASIC für Windows besser geeignet.
Anfang 2024 wurde die PowerBasic-Website in den Wartungsmodus versetzt. Trotz zahlreicher kritischer Diskussionsbeiträge im Forum hat der Rechteinhaber angekündigt, die Website nicht mehr online stellen zu wollen.