Gambas – development environment and a full powerful development platform

Gambas is a free development environment based on a Basic interpreter with object extensions.

It is inspired by Visual Basic and Java. Although it has some similarities with Visual Basic, Gambas is not a clone.

With Gambas, you can design your application’s Graphical User Interface with QT or GTK+, access MySQL, PostgreSQL, Firebird, ODBC and SQLite databases, pilot KDE applications with DCOP, translate your program into any language, code network applications easily, create 3D OpenGL applications, develop CGI web applications, and much more.

Gambas has a component architecture that allows users to extend the language. Anyone can write components as shared libraries that dynamically add new native classes to the interpreter.

Gambas consists of:

  • A compiler:
    • Fast executable.
    • Relies on the interpreter for optimization.
    • Manages and compiles strong translations using the GNU gettext tools.
  • An interpreter:
    • Provides all of the native features of Basic.
    • Loads classes on demand.
    • Linking between classes is done entirely at runtime.
  • An archiver:
    • Creates a Gambas executable from a Gambas project directory.
  • A scripter:
    • A small Gambas executable that allows you to dump Gambas code into a text file.
  • A development environment.
  • Many extension components.

Characteristics of the Gambas Language

  • Approximately 250 keywords and native functions to manage almost everything: arithmetic, strings, input-outputs, files, time…
  • Full error management.
  • Full process control, with pseudo-terminal management.
  • Full support for watching input-output file descriptors.
  • Event loop support with timers.
  • Native UTF-8 string support.
  • Full internationalization and translation support.
  • Ability to call external functions in system shared libraries.
  • Object oriented:
    • Objects and classes.
    • Properties, methods, constants and events.
    • Public and private symbols.
    • Polymorphism, i.e. virtual method dispatching.
    • Single inheritance.
    • Constructors and destructors.
    • Array accessors, enumerators, sortable objects.

Support: Documentation
Developer: Benoit Minisini and others
License: GNU GPL v2