Gambas a la gabardina-2009.jpg
   HOME

TheInfoList



OR:

Gambas is the name of an object-oriented dialect of the
BASIC programming language BASIC (Beginners' All-purpose Symbolic Instruction Code) is a family of General-purpose programming language, general-purpose, high-level programming languages designed for ease of use. Dartmouth BASIC, The original version was created by John ...
, as well as the integrated development environment that accompanies it. Designed to run on Linux and other Unix-like computer operating systems, its name is a recursive acronym for ''Gambas Almost Means Basic''. Gambas is also the word for prawns in the Spanish,
French French (french: français(e), link=no) may refer to: * Something of, from, or related to France ** French language, which originated in France, and its various dialects and accents ** French people, a nation and ethnic group identified with Franc ...
, and Portuguese languages, from which the project's logos are derived.


History

Gambas was developed by the
French French (french: français(e), link=no) may refer to: * Something of, from, or related to France ** French language, which originated in France, and its various dialects and accents ** French people, a nation and ethnic group identified with Franc ...
programmer
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. This int ...
, 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 earlier versions of the
GIMP GIMP ( ; GNU Image Manipulation Program) is a free and open-source raster graphics editor used for image manipulation (retouching) and image editing, free-form drawing, transcoding between different image file formats, and more specialized task ...
. It could also only develop applications using Qt and was more oriented towards the development of applications for
KDE KDE is an international Free software movement, free software community that develops free and open-source software. As a central development hub, it provides tools and resources that allow collaborative work on this kind of software. Well-know ...
. The last release of the 1.x versions was Gambas 1.0.19. The first of the 2.x versions was released on January 2, 2008, after three to four 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 new ones, such as new components that could use
GTK+ GTK (formerly GIMP ToolKit and GTK+) is a free and open-source cross-platform widget toolkit for creating graphical user interfaces (GUIs). It is licensed under the terms of the GNU Lesser General Public License, allowing both free and proprie ...
or SDL for drawing or utilize
OpenGL OpenGL (Open Graphics Library) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardwa ...
acceleration. Gambas 2.x versions can load up and run Gambas 1.x projects, with occasional incompatibilities; the same is true for Gambas 2.x to 3.x, but not from Gambas 1.x to 3.x. The next major iteration of Gambas, the 3.x versions, was released on December 31, 2011. A 2015 benchmark published on the Gambas website showed Gambas 3.8.90 scripting as being faster to varying degrees than Perl 5.20.2 and the then-latest 2.7.10 version of Python in many tests. Version 3.16.0 released on April 20, 2021, featured full support for Wayland using the graphical components, as well as parity between the Qt 5 and GTK 3 components.


Features

Gambas is designed to build
graphical Graphics () are visual images or designs on some surface, such as a wall, canvas, screen, paper, or stone, to inform, illustrate, or entertain. In contemporary usage, it includes a pictorial representation of data, as in design and manufacture, ...
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 A graphical user interface builder (or GUI builder), also known as GUI designer or sometimes RAD IDE, is a software development tool that simplifies the creation of GUIs by allowing the designer to arrange graphical control elements (often cal ...
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 OpenAL (Open Audio Library) is a cross-platform audio application programming interface (API). It is designed for efficient rendering of multichannel three-dimensional positional audio. Its API style and conventions deliberately resemble those ...
specification has also been added). GPU acceleration support is available through an
OpenGL OpenGL (Open Graphics Library) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardwa ...
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 is an international Free software movement, free software community that develops free and open-source software. As a central development hub, it provides tools and resources that allow collaborative work on this kind of software. Well-know ...
(Qt) and GNOME GTK applications with DCOP, translate Visual Basic programs to Gambas and run them under Linux, build network solutions, and create CGI web applications. The IDE also includes a tool for the creation of installation packages, supporting
GNU Autotools The GNU Autotools, also known as the GNU Build System, is a suite of programming tools designed to assist in making source code packages portable to many Unix-like systems. It can be difficult to make a software program portable: the C compiler ...
,
slackpkg slackpkg is a software tool for installing or upgrading packages automatically through a network or over the Internet for Slackware. slackpkg was included in the main tree in Slackware 12.2 - previously it had been included in extras/ since Slack ...
, pacman,
RPM Revolutions per minute (abbreviated rpm, RPM, rev/min, r/min, or with the notation min−1) is a unit of rotational speed or rotational frequency for rotating machines. Standards ISO 80000-3:2019 defines a unit of rotation as the dimensionl ...
, and debs (the latter two then tailored for specific distributions such as
Fedora A fedora () is a hat with a soft brim and indented crown.Kilgour, Ruth Edwards (1958). ''A Pageant of Hats Ancient and Modern''. R. M. McBride Company. It is typically creased lengthwise down the crown and "pinched" near the front on both sides ...
/ RHEL/
CentOS CentOS (, from Community Enterprise Operating System; also known as CentOS Linux) is a Linux distribution that provides a free and open-source community-supported computing platform, functionally compatible with its upstream source, Red Hat En ...
,
Mageia Mageia is a Linux-based operating system, distributed as free and open source software. It was forked from the Mandriva Linux distribution. The Greek term () means enchantment, fascination, glamour, wizardry. The first release of the software ...
,
Mandriva Mandriva S.A. was a public software company specializing in Linux and open-source software. Its corporate headquarters was in Paris, and it had development centers in Metz, France and Curitiba, Brazil. Mandriva, S.A. was the developer and mainta ...
, OpenSUSE and
Debian Debian (), also known as Debian GNU/Linux, is a Linux distribution composed of free and open-source software, developed by the community-supported Debian Project, which was established by Ian Murdock on August 16, 1993. The first version of D ...
, Ubuntu/ Mint). Gambas since version 3.2 IDE has integrated profiler and it started to use Just-in-time compilation technology.


Differences from Visual Basic

Gambas is intended to provide a similar experience as developing in Microsoft Visual Basic, but it is not a free software
clone Clone or Clones or Cloning or Cloned or The Clone may refer to: Places * Clones, County Fermanagh * Clones, County Monaghan, a town in Ireland Biology * Clone (B-cell), a lymphocyte clone, the massive presence of which may indicate a pathologi ...
of the popular proprietary program. 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.


Adoption

Several programs and many forms of example code have been written using and for Gambas. , Freecode (formerly Freshmeat) listed 23 applications that were developed using Gambas, while the Gambas wiki listed 82; several other specialized sites list Gambas applications and code. A Gambas written application, named Gambas3 ShowCase, acted as a software center to download or install Gambas 3 applications. It has since been discontinued following the launch of the first party Gambas Software Farm integrated into the IDE since 3.7.1, which contains nearly 500 applications and demos. Several community sites, including community forums and mailing lists, also exist for Gambas. A notable application written in Gambas is Xt7-player-mpv, a GUI frontend for mpv player contained in a number of Linux software repositories.


Availability

Gambas is included in the repositories of a number of
Linux distribution A Linux distribution (often abbreviated as distro) is an operating system made from a software collection that includes the Linux kernel and, often, a package management system. Linux users usually obtain their operating system by downloading one ...
s, such as
Debian Debian (), also known as Debian GNU/Linux, is a Linux distribution composed of free and open-source software, developed by the community-supported Debian Project, which was established by Ian Murdock on August 16, 1993. The first version of D ...
,
Fedora A fedora () is a hat with a soft brim and indented crown.Kilgour, Ruth Edwards (1958). ''A Pageant of Hats Ancient and Modern''. R. M. McBride Company. It is typically creased lengthwise down the crown and "pinched" near the front on both sides ...
, Mandriva Linux and Ubuntu. A
Microsoft Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
version of Gambas was run under the
Cygwin Cygwin ( ) is a POSIX-compatible programming and runtime environment that runs natively on Microsoft Windows. Under Cygwin, source code designed for Unix-like operating systems may be compiled with minimal modification and executed. The Cygwin in ...
environment, although this version was significantly less tested than its Linux counterparts and was command-line only;
Cooperative Linux Cooperative Linux, abbreviated as coLinux, is software which allows Microsoft Windows and the Linux kernel to run simultaneously in parallel on the same machine. Cooperative Linux utilizes the concept of a Cooperative Virtual Machine (CVM). I ...
and derivatives have also been used, as well as specialized Linux virtual machines. An independent contributor, François Gallo, also worked on porting Gambas 3.x to Mac OS X and
FreeBSD FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD), which was based on Research Unix. The first version of FreeBSD was released in 1993. In 2005, FreeBSD was the most popular ...
, based on using local versions of the X11 system. Gambas from version 3.2 can run on Raspberry Pi, and offers just-in-time compilation there from version 3.12. In November 2013, the future portability of Gambas was discussed, listing the main concerns being
Linux kernel The Linux kernel is a free and open-source, monolithic, modular, multitasking, Unix-like operating system kernel. It was originally authored in 1991 by Linus Torvalds for his i386-based PC, and it was soon adopted as the kernel for the GNU ope ...
features utilized in the interpreter, components using Linux specific software and libraries, and primarily X11-tying in the Qt, GTK and desktop integration components. However, partly due to the need to upgrade to newer toolkits such as GTK 3 (added as of 3.6.0) and Qt 5 (as of 3.8.0), future versions would be less X11 tied, making projects like
Cygwin Cygwin ( ) is a POSIX-compatible programming and runtime environment that runs natively on Microsoft Windows. Under Cygwin, source code designed for Unix-like operating systems may be compiled with minimal modification and executed. The Cygwin in ...
or utterly native versions on other platforms more possible. Benoît Minisini stated that he intended to "encapsulate" X11 specific code to aid in any attempt to replace it, with the X11 support in the desktop component moved to its own component as of 3.6.0. On October 27, 2016, a screenshot and setup guide was released from the main page for running Gambas fully through Cygwin, including most components, graphical toolkits, and the complete IDE. The relevant patches were mainlined as of version 3.9.2. This replaces the prior recommended method of using
freenx NX technology, commonly known as ''NX'' or NoMachine, is a proprietary cross-platform software application for remote access, desktop sharing, virtual desktop (on Linux only) and file transfer between computers. It is developed by the Luxembou ...
forwarding from a
Linux server Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which inc ...
. It has also been successfully run using the Windows Subsystem for Linux.,Gambas on Windows
Gambas-One
this is usually done using an X terminal emulator such Mobaxterm on Windows as WSL does not support X11 graphics directly.


Example code

A "Hello, World!" program with graphical user interface. Public Sub Main() Message("Hello, World!") End Program that computes a 100-term polynomial 500000 times, and repeats it ten times (used for
benchmarking Benchmarking is the practice of comparing business processes and performance metrics to industry bests and best practices from other companies. Dimensions typically measured are quality, time and cost. Benchmarking is used to measure performan ...
). Private Sub Test(X As Float) As Float Dim Mu As Float = 10.0 Dim Pu, Su As Float Dim I, J, N As Integer Dim aPoly As New Float 00 N = 500000 For I = 0 To N - 1 For J = 0 To 99 Mu = (Mu + 2.0) / 2.0 aPoly = Mu Next Su = 0.0 For J = 0 To 99 Su = X * Su + aPoly Next Pu += Su Next Return Pu End Public Sub Main() Dim I as Integer For I = 1 To 10 Print Test(0.2) Next End


See also

*
List of BASIC dialects This is an alphabetical list of BASIC dialects — interpreted and compiled variants of the BASIC programming language. Each dialect's platform(s), i.e., the computer models and operating systems, are given in parentheses along with any o ...
* Comparison of integrated development environments#BASIC * GNAVI * Lazarus


References


Further reading

* Mark Alexander Bain (Apr 28, 2006)
An Introduction to Gambas
',
Linux Journal ''Linux Journal'' (''LJ'') is an American monthly technology magazine originally published by Specialized System Consultants, Inc. (SSC) in Seattle, Washington since 1994. In December 2006 the publisher changed to Belltown Media, Inc. in Houston ...
, issue 146, June 2006 (in print) * Mark Alexander Bain (Dec 3, 2004)
Gambas speeds database development
',
Linux.com Linux.com is a website owned by the Linux Foundation. The goal of the site is to provide information about the developments and changes in Linux and related products. Linux.com offers free Linux tutorials, news and blogs, discussion forums and ...
* Mark Alexander Bain (Dec 12, 2007)
Creating simple charts with Gambas 2.0
',
Linux.com Linux.com is a website owned by the Linux Foundation. The goal of the site is to provide information about the developments and changes in Linux and related products. Linux.com offers free Linux tutorials, news and blogs, discussion forums and ...
* Fabián Flores Vadell (Nov, 2010)
How to Program with Gambas
'


External links


Gambas source code

Gambas Documentation

Gambas Mailinglist



Gambas India Forum
nbsp;— Forum, Bunch of Source Code Repo with Gambas
Gambas Magazine
nbsp;— Linux Software Development with Gambas {{Qt BASIC compilers BASIC interpreters BASIC programming language family Free integrated development environments Free software Free software programmed in BASIC Linux integrated development environments Linux programming tools Object-oriented programming languages Procedural programming languages Programming languages created in 1999 Self-hosting software Software that uses Qt Software that uses GTK Software using the GPL license User interface builders