with
Blackbox Gambas is designed to build
graphical programs using the
Qt (currently Qt 4.x or 5.x since 3.8.0) or the
GTK toolkit (GTK 3.x also supported as of 3.6.0); the Gambas IDE is written in Gambas. Gambas includes a
GUI designer to aid in creating user interfaces in an
event-driven style, but can also make
command line applications, as well as
text-based user interfaces using the
ncurses toolkit. The Gambas
runtime environment is needed to run executables. Functionality is provided by a variety of components, each of which can be selected to provide additional features. Drawing can be provided either through Qt and GTK toolkits, with an additional component which is designed to switch between them. Drawing can also be provided through the
Simple DirectMedia Layer (originally version 1.x, with 2.x added as of 3.7.0), which can also be utilized for audio playback through a separate sound component (a component for the
OpenAL specification has also been added).
GPU acceleration support is available through an
OpenGL component, as well as other hardware functionally provided by various other components. The author of Gambas makes it clear that there are similarities to Visual Basic, such as syntax for BASIC programs and the integrated development environment; Gambas was written from the start to be a development environment of its own and seeks to improve on the formula. Its
object model, each class being represented in a file, as well as the archiver to package the program is all inspired by the
Java programming language. Gambas is intended to be an alternative for former Visual Basic developers who have decided to migrate to Linux. There are also other important distinctions between Gambas and Visual Basic. One notable example is that in Gambas
array indexes always start with 0, whereas Visual Basic indexes can start with 0 or 1. Gambas also supports the
+= and -= shorthand not found in classic Visual Basic. Both of these are features of
Visual Basic .NET however. Gambas also outlived two other attempts at implementing a Visual Basic style interface for Qt and GTK on Linux, those being HBasic and
GNOME Basic, as well as the platform independent
KBasic/Basic for Qt. Similar style IDEs have since been developed as well for
FreeBASIC, namely VisualFBEditor, and
QB64, namely InForm. == Adoption ==