Running Gambas Programs in Windows
Most software developed by Piga Software are written in Gambas, and as a result they require the Gambas runtime. Unfortunately at this time there is no native support for running the Gambas runtime under Microsoft Windows. However, there are many solutions available for this problem.
- Port the program to Windows by rewriting it in a different language such as Visual Basic .NET, classic Visual Basic, FreeBASIC/VisualFBEditor, or Larazrus/Free Pascal.
- Run the program through Windows via Cygwin (as mentioned in the Gambas documentation).
- Run the program using the first-party Windows Subsystem for Linux (WSL).
- Install the program on a Unix-like computer and use a Windows X11 server such as Xming and SSH forwarding to run the program (once recommended by the Gambas documentation)
- Stream over the cloud via rollApp.
- Using VMWare, VirtualBox, or another virtualisation tool to run a Unix-like system and run the program in that.
- Use CoLinux and a Windows X11 server such as Xming
Windows Subsystem for Linux
From 2016 this was usually done using an X terminal emulator such Mobaxterm on Windows as WSL did not support X11 graphics directly until the updates released with Windows 11 in 2021. Given it is an officially supported part of modern Windows, it is the best option for out of the box use, but is only available from Windows 10 or later. Our own testing has found this system fairly performant, albeit with issues with mouse focus.
To install WSL, load up Powershell (CMD Prompt) in administrator and type:
Once Ubuntu is installed (by default, others are available as well), type:
sudo apt update
sudo apt install gambas3*
This will install Gambas and all of its components.
You can then run Gambas applications or the IDE.
Running through Cygwin
Once only available for command line Gambas programs, since 2016 it is now possible to run graphical, feature rich programs. Therefore, this is the recommended method as of version 3.9.2. Additional instructions were posted here. Our own testing has found the performance to be lower than of WSL, but with greater compatibility. It is also usable on a greater range of Windows installs. An official package for Cygwin is available maintained by Bastian Germann.
Porting to another language
If you are a programmer and you feel up to this challenge then you may want to consider this option.
- If written properly software should be stable and efficient
- Once ported software should be easy to set up for users no matter what their technical background.
- Will require strenuous bugfixing and testing
- Difficult to provide program updates over two separate codebases
Although this is theoretically possible with any language, some are more similar to Gambas than others.
The most obvious candidate for porting is Visual Basic .Net as it is a common BASIC derivative with a form designer that works well in modern versions of Windows. Also VB.net has a stripped down "free for use" version (Community, previously Express), and shares certain syntax supported in Gambas (such as -= or += shorthand and zero indexed arrays). If you have the need, you may also consider using the classic Visual Basic (presumably version 6) for legacy versions of Windows. Other commercial BASIC versions like PureBasic and Xojo, as well as the freeware RapidQ, are also options.
- Common BASIC heritage and similar form designers
- Forms have to be recreated from scratch, and not all form controls are shared between Gambas and either VB or VB .Net
- Syntax differences from both languages are varied
- Visual Studio is proprietary software and Windows only; limited compatibility via Mono.
- As of 2020, Microsoft is maintaining but no longer actively developing the .Net version of the language, although the third-party Mercury exists.
- The original variant was discontinued by Microsoft way back in 2008, with legacy support attempted by ModernVB, RAD Basic and twinBASIC.
Although descended from the earlier QBasic rather than Visual Basic, the FreeBASIC language features numerous modernizations including partial support for object-oriented programming. Although primarily used in pure markup, there exists a few visual IDEs, one of the most active currently in English and cross-platform being VisualFBEditor. The presently discontinued Basic For Qt are also options, as well as markup based variants of BASIC such as wxBASIC or SdlBasic and Basic4GL. QB64 also has an event driven graphical IDE called InForm.
- Free software and crossplatform
- Similar BASIC style syntax
- Porting can be done from a common Linux installation (running side-by-side)
- No unified interface for GUIs, with toolkit components in visual IDEs somewhat limited
- Smaller community than other options
- More archaic syntax with limited object orientation
Main Article: Crustacean of Bethany
In terms of feature set, the IDE most similar to that of Gambas available in the free software world is arguably Lazarus, an environment powered by Free Pascal. Similar to how Gambas was inspired by Visual Basic, Lazarus was inspired by the very similar Delphi for Object Pascal. Theorectically one could also port a Gambas program to Delphi itself, for which there does exist a freeware community version, if one does not care about using an open source foundation.
- Very similar fundamental graphical component models
- Both are free software languages
- Porting can be done from a common Linux installation (running side-by-side)
- Better support for more recent OpenGL versions
- Forms have to be recreated from scratch
- Syntax differences from both languages are varied (Pascal and BASIC are distinct language families)
- Lazarus currently defaults to the antiquated GTK2 on Linux (which needs to be installed on Windows for 1:1 parity)
- GUI Programming with Python
Using SSH Forwarding
A stated on the Gambas Documentation you can used SSH Forwarding to run Gambas programs in Windows. The page has it nicely layed out for using the NX protocal.
You can also use PuTTY and Xming (or CygwinX) to so the same thing. On the Linux server you need SSH installed and the port opened if you are running a firewall (the default is 22). On the Windows computer you need PuTTY and an X11 server, like Xming.
One you have the Gambas software installed on Linux run the X11 server and PuTTY on the Windows computer. Make sure PuTTY is set to allow X11 forwarding too your server. Then connect and login to the linux server.
One you have done that run the program using the relevant command.
Things to add to tutorial:
Sound Forwarding with PulseAudio
- actually running on a Linux server so is fully compatible
- can be slow depending on network connectivity
- limited support for devices
- requires a separate computer
Running through Linux virtual machines
For this option you need a Virtualisation environment to run a "virtual copy" of Linux on top of Windows. There are several available including Parallels, VMWare, Virtual PC, and VirtualBox. For this documentation we are going to use Sun Microsystems VirtualBox platform. The procedure should be similar for other platforms however, you may need to consult documentation specific to it. Microsoft's Virtual PC should work but is not recommended since there is no official support for Linux guests.
- No code changes
- Difficult for non-technical users
- Can be resource intensive
- Separates your program from the user's native Windows setup
coLinux is actually a specialized cooperative virtualisation environment for seamlessly running Linux under a Windows kernel. As shown from the accompanying screenshot, Piga Software has successfully tested this once using andLinux; as has Daniel Campos.
- Seamlessly run Gambas, or any Linux software, under Windows
- Extremely difficult for non-technical users
- Has not been recently maintained since April 9, 2011
- Less choice of distributions than traditional virtualization