Gambas
Encyclopedia
Gambas is the name of an object-oriented dialect of the BASIC programming language as well as the integrated development environment
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...

 that accompanies it. Designed to run on Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

 and other Unix-like
Unix-like
A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....

 computer operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

s, its name is a recursive acronym
Recursive acronym
A recursive acronym is an acronym or initialism that refers to itself in the expression for which it stands...

 for Gambas Almost Means Basic. Gambas is also the word for prawn
Prawn
Prawns are decapod crustaceans of the sub-order Dendrobranchiata. There are 540 extant species, in seven families, and a fossil record extending back to the Devonian...

s in the Spanish language
Spanish language
Spanish , also known as Castilian , is a Romance language in the Ibero-Romance group that evolved from several languages and dialects in central-northern Iberia around the 9th century and gradually spread with the expansion of the Kingdom of Castile into central and southern Iberia during the...

, from which the project's logos are derived.

Gambas is included in a number of Linux distribution
Linux distribution
A Linux distribution is a member of the family of Unix-like operating systems built on top of the Linux kernel. Such distributions are operating systems including a large collection of software applications such as word processors, spreadsheets, media players, and database applications...

s' repositories, such as Debian
Debian
Debian is a computer operating system composed of software packages released as free and open source software primarily under the GNU General Public License along with other free software licenses. Debian GNU/Linux, which includes the GNU OS tools and Linux kernel, is a popular and influential...

's, Fedora
Fedora (operating system)
Fedora is a RPM-based, general purpose collection of software, including an operating system based on the Linux kernel, developed by the community-supported Fedora Project and sponsored by Red Hat...

's, Mandriva Linux
Mandriva Linux
Mandriva Linux is a Linux distribution distributed by Mandriva. It uses the RPM Package Manager...

's and Ubuntu
Ubuntu (operating system)
Ubuntu is a computer operating system based on the Debian Linux distribution and distributed as free and open source software. It is named after the Southern African philosophy of Ubuntu...

's. There is a Windows version of Gambas which can run under the Cygwin
Cygwin
Cygwin is a Unix-like environment and command-line interface for Microsoft Windows. Cygwin provides native integration of Windows-based applications, data, and other system resources with applications, software tools, and data of the Unix-like environment...

 environment, although this version is significantly less tested than its Linux counterparts.

History

Gambas was developed by the French
French people
The French are a nation that share a common French culture and speak the French language as a mother tongue. Historically, the French population are descended from peoples of Celtic, Latin and Germanic origin, and are today a mixture of several ethnic groups...

 programmer Benoît Minisini
Benoît Minisini
Benoît Minisini is a French programmer best known for programming the Gambas graphical development environment. Starting programming when he was twelve, he became interested in writing languages, compilers, assemblers, and interpreters....

 with its first release coming in 1999. Benoît had grown up with the BASIC language, and decided to make a free software development environment that could quickly and easily make programs with user interfaces.

The Gambas 1.x versions featured an interface made up of several different separate windows for forms and IDE dialogues in a similar fashion to the interface of the GIMP
GIMP
GIMP is a free software raster graphics editor. It is primarily employed as an image retouching and editing tool and is freely available in versions tailored for most popular operating systems including Microsoft Windows, Apple Mac OS X, and Linux.In addition to detailed image retouching and...

. It could also only develop applications using Qt and was more oriented towards the development of applications for KDE
KDE
KDE is an international free software community producing an integrated set of cross-platform applications designed to run on Linux, FreeBSD, Microsoft Windows, Solaris and Mac OS X systems...

. The last release of the 1.x versions was Gambas 1.0.19.

The first of the 2.x versions was released on January 02, 2008 after three years of development. It featured a major redesign of the interface, now with all forms and functions embedded in a single window, as well as some changes to the Gambas syntax, although for the most part code compatibility was kept. It featured major updates to existing Gambas components as well as the addition of some news ones, such as new components that could use GTK+
GTK+
GTK+ is a cross-platform widget toolkit for creating graphical user interfaces. It is licensed under the terms of the GNU LGPL, allowing both free and proprietary software to use it. It is one of the most popular toolkits for the X Window System, along with Qt.The name GTK+ originates from GTK;...

 or SDL
Simple DirectMedia Layer
Simple DirectMedia Layer is a cross-platform, free and open source multimedia library written in C that presents a simple interface to various platforms' graphics, sound, and input devices....

 for drawing or utilize OpenGL
OpenGL
OpenGL is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL...

 acceleration. Gambas 2.x versions can load up and run Gambas 1.x projects, with occasional incompatibilities.

The next major iteration of Gambas, the 3.x versions, is currently under development. Early benchmarks of the Gambas 3 development versions show its Gambas scripting being significantly faster than Perl
Perl
Perl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular...

 and Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...

 equivalents. An independent contributor, François Gallo, has also ported Gambas 3.x to Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

 and says he will release packages for it.

Features

Gambas is designed to build graphical
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...

 applications programs using the Qt or the GTK+
GTK+
GTK+ is a cross-platform widget toolkit for creating graphical user interfaces. It is licensed under the terms of the GNU LGPL, allowing both free and proprietary software to use it. It is one of the most popular toolkits for the X Window System, along with Qt.The name GTK+ originates from GTK;...

 toolkit; the Gambas IDE is written in Gambas itself. Gambas includes a GUI designer to aid in creating user interfaces, but can also make command line applications. The Gambas runtime
Run-time system
A run-time system is a software component designed to support the execution of computer programs written in some computer language...

 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+
GTK+
GTK+ is a cross-platform widget toolkit for creating graphical user interfaces. It is licensed under the terms of the GNU LGPL, allowing both free and proprietary software to use it. It is one of the most popular toolkits for the X Window System, along with Qt.The name GTK+ originates from GTK;...

 toolkits, with an additional component which is designed to switch between them. Drawing can also be provided through the Simple DirectMedia Layer
Simple DirectMedia Layer
Simple DirectMedia Layer is a cross-platform, free and open source multimedia library written in C that presents a simple interface to various platforms' graphics, sound, and input devices....

, which can also be utilized for audio playback through a separate sound component. GPU acceleration support is available through an OpenGL
OpenGL
OpenGL is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL...

 component, as well as other hardware functionally provided by various other components. There are also components for handling other specialized tasks.

With Gambas, developers can also use databases such as MySQL or PostgreSQL, build KDE
KDE
KDE is an international free software community producing an integrated set of cross-platform applications designed to run on Linux, FreeBSD, Microsoft Windows, Solaris and Mac OS X systems...

 (Qt) and GNOME GTK+ applications with DCOP
DCOP
DCOP, which stands for Desktop COmmunication Protocol, is a light-weight interprocess and software componentry communication system. The main point of this system is to allow applications to interoperate, and to share complex tasks...

, translate Visual Basic programs to Gambas and run them under Linux, build network solutions, and create CGI web applications.

Differences from Visual Basic

Gambas is intended to provide a similar experience as developing in Visual Basic
Visual Basic
Visual Basic is the third-generation event-driven programming language and integrated development environment from Microsoft for its COM programming model...

, but it is not a free software
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...

 clone of the popular proprietary program. The author of Gambas makes it clear that there are similarities to Visual Basic
Visual Basic
Visual Basic is the third-generation event-driven programming language and integrated development environment from Microsoft for its COM programming model...

 such as syntax for BASIC programs and the integrated development environment; Gambas is written from ground-up to as a development environment of its own.

Its object model and each class being represented in a file, the archiver to package the program is inspired from 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 the Gambas and Visual Basic. One notable example is that Gambas indexes arrays start with 0, whereas Visual Basic indexes can start with 0 or 1.

Adoption

Several programs and many forms of example code have been written using and for Gambas. As of 16 July 2010, Freshmeat
Freshmeat
Freecode, formerly Freshmeat, is a website owned by Geeknet that allows computer users to keep track of the latest software releases and updates as well as write/read reviews and articles, send or receive comments to or from the author, and many other features...

 lists 20 applications that were developed using Gambas, while Gambas wiki lists 50, and several other specialized websites list Gambas applications and code. Several community websites, including community forums and mailing lists, also exist for Gambas. White Island Software offers up project hosting, program listing, forums and more for Gambas users.

Further reading

  • Mark Alexander Bain (Apr 28, 2006) An Introduction to Gambas, Linux Journal
    Linux Journal
    Linux Journal is a monthly technology magazine published by Belltown Media, Inc. of Houston, Texas. The magazine focuses specifically on Linux, allowing the content to be a highly specialized source of information for open source enthusiasts.-History:...

    , issue 146, June 2006 (in print)
  • Mark Alexander Bain (Dec 3, 2004) Gambas speeds database development, Linux.com
    Linux.com
    Linux.com is the name of a website owned by the Linux Foundation. The site is currently a central source for Linux information, software, documentation and answers across the server, desktop/netbook, mobile, and embedded areas. Linux.com offers free Linux tutorials, news and blogs, discussion...

  • Mark Alexander Bain (Dec 12, 2007) Creating simple charts with Gambas 2.0, Linux.com
    Linux.com
    Linux.com is the name of a website owned by the Linux Foundation. The site is currently a central source for Linux information, software, documentation and answers across the server, desktop/netbook, mobile, and embedded areas. Linux.com offers free Linux tutorials, news and blogs, discussion...

  • Fabián Flores Vadell (Nov, 2010) How to Program with Gambas
  • Free .PDF download of "A Beginner's Guide to Gambas, Revised for Version 3" http://beginnersguidetogambas.com/, John Rittinghouse and Jon Nicholson

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK