Gambas (Programmiersprache)

Gambas, ein rekursives Akronym für Gambas almost means basic, ist eine freie Programmiersprache zur Softwareentwicklung. Es handelt sich um eine objektorientierte BASIC-Variante mit einer kompletten IDE. Gambas sollte ursprünglich die Vorteile von Visual Basic (VB) auch auf dem Linux-Desktop wie z. B. unter KDE oder Gnome verfügbar machen, wurde aber zu einem eigenständigen BASIC für Linux und Unix entwickelt. Gambas ist von Visual Basic inspiriert, aber trotz vieler Gemeinsamkeiten sind beide Sprachen nicht äquivalent: Gambas ist grundsätzlich  stark typisiert (entspricht VB mit 'Option Explicit On'), enthält jedoch auch den Variant-Typ, der jegliche Typen enthalten darf. In Gambas gibt es keine ActiveX-Steuerelemente, sie sind durch eigene Objekte ersetzt worden, dadurch sind Visual-Basic-Formulare nicht in Gambas zu importieren, sie müssen neu erstellt werden. Allerdings kann bereits vorhandener VB- oder VBA-Code in großen Teilen wiederverwendet werden, dadurch eignet sich Gambas für die Portierung von vorhandenen VB- oder VBA-Anwendungen nach Linux. Umgekehrt lässt sich Gambas auch im Windows-Subsystem für Linux betreiben.

Weitere Einzelheiten 

Gambas-Programme werden normalerweise – kompiliert, als Bytecode gepackt und in ausführbare Dateien gespeichert – von einem Interpreter ausgeführt. Ab der Version 3.2 kann zusätzlich eine Just-in-time-Kompilierung aktiviert werden. Dabei wird das Basic Programm beim Programmstart nach C übersetzt, es kommt dadurch zu erheblichen Geschwindigkeitsverbesserungen zur Laufzeit. Ab Version 3.3 ist Gambas zu Multitasking bzw. Multiprocessing fähig, Klassen können dafür vorbereitet werden, indem sie von der Klasse Task erben. Dadurch ist es möglich, alle vorhandenen Kerne des Prozessors zum Rechnen zu benutzen. Außerdem können Gambas-Programme in ausführbaren Textdateien als Skripte ausgeführt werden.

Gambas wird seit 1999 hauptsächlich von dem Franzosen Benoît Minisini entwickelt und ist, durch die Hilfe vieler Übersetzer, auch in vielen weiteren Sprachen (so unter anderem in Deutsch, Englisch, Spanisch, Türkisch und Chinesisch) verfügbar. Es wurde zudem unter der GPL veröffentlicht und ist daher quelloffen.

Gambas ist eine der wenigen quelloffen Rapid-Application-Development-Umgebungen unter Linux. Mit Gambas kann man schnell Programme mit grafischer Bedienoberfläche (GUI) entwickeln, dabei werden Qt und GTK+ zur Erzeugung der GUI unterstützt. Der Zugriff auf Datenbanken wie MySQL, SQLite oder PostgreSQL wird von Haus aus unterstützt. Über die eingebaute SDL-Bindung lassen sich Multimedia-Anwendungen (englisch multimedia applications) und Spiele schreiben. In der aktuellen Version 3 wird D-Bus unterstützt, sodass sich Gambas-Programme in aktuelle Desktop-Oberflächen integrieren lassen.

Die Oberfläche der IDE selbst ist in Gambas-BASIC geschrieben. Ab der Version 0.99 lassen sich aus der Programmierumgebung RPM/DEB-Pakete für Debian und Ableger (Ubuntu), sowie alle gängigen RPM-Distributionen (nur RPM in Version 4.x) erstellen.

Erstellte Anwendungen können anderen Gambas-Benutzern über die Gambas-Software-Farm zur Verfügung gestellt werden. Im Gambas-Playground ist es möglich, kleine Programme online zu bearbeiten und zu starten.

Sämtliche Quelltexte, Projektdefinitionen und Formularbeschreibungen sind in Textdateien, sodass Gambas-Quellcode auch unabhängig von der IDE mit beliebigen Texteditoren bearbeitet und mit beliebigen Versionsverwaltungen verwaltet werden kann. Die Gambas-IDE selbst unterstützt die Versionierung mit Git. Seit Version 3.15 unterstützt der Interpreter eigene Testklassen, die im Zusammenspiel mit der IDE Testgetriebene Entwicklung, aber auch automatisiertes Unittesting ermöglichen und so zur Stabilität des mit der Sprache erstellten Codes beitragen. Mit der Version 3.17 haben neben weiteren Neuerungen Namespaces in die Sprache Einzug gehalten.

Weblinks 

 Offizielle Webpräsenz (englisch)
 Gambas Dokumentation (englisch)
 Das Gambas Buch
 Das deutsche Forum zur Programmiersprache Gambas
 Die internationale Gambas Mailingliste (englisch)
 Interview mit Benoit Minisini (englisch) in der FLOSS Weekly Show

Einzelnachweise 

BASIC
Programmiersprache
Objektorientierte Programmiersprache
Imperative Programmiersprache
Freies Programmierwerkzeug
Skriptsprache