Running Gambas Programs in Windows

Most software developed by Piga is written in Gambas. As a result it requires the Gambas Runtime. Unfortunately at this time there is no native support for running the Gambas runtime under 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 run a Unix-like system and run the program in that.
 * Use CoLinux and a Windows X11 server such as Xming

Running through Cygwin
Once only available for command line Gambas programs, it is now possible to run graphical, feature rich programs. Therefore, this is the recommended method as of version 3.9.2.

Porting to another language
If you are a programmer and you feel up to this challenge then you may want to consider this option.


 * Advantages
 * 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.


 * Disadvantages
 * 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.

Visual Basic


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 version 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.


 * Advantages
 * Common BASIC heritage and similar form designers


 * Disadvantages
 * 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 compatability via Mono.
 * As of 2020, Microsoft is maintaining but no longer actively developing the .Net version of the language; the original variant was discontinued in 2008.

FreeBASIC
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 HBasic and Basic For Qt is also an option, as well as markup based variants of BASIC such as wxBASIC or SdlBasic and Basic4GL.


 * Advantages
 * Free software and crossplatform
 * Similar BASIC style syntax
 * Porting can be done from a common Linux installation (running side-by-side)


 * Disadvantages
 * 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

Lazarus
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.


 * Advantages
 * 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


 * Disadvantages
 * 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

Python

 * GUI Programming with Python
 * PAGE
 * gui2py

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.

E.g. Gambas_Example

Things to add to tutorial:

Sound Forwarding with PulseAudio


 * Advantages
 * actually running on a Linux server so is fully compatible

Disadvantages
 * can be slow depending on network connectivity
 * limited support for devices
 * requires a separate computer

Cloud streaming
Gambas is included on the rollApp cloud streaming service, although the free tier is very limited in functionality.

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.


 * Advantages
 * No code changes


 * Disadvantages
 * Difficult for non-technical users
 * Can be resource intensive
 * Separates your program from the user's native Windows setup

coLinux


coLinux is actually a specialized cooperative virtualisation environment for seamlessly running Linux under a Windows kernel. As shown from the above screenshot, Piga Software has successfully tested this once using andLinux; as has Daniel Campos.


 * Advantages
 * Seamlessly run Gambas, or any Linux software, under Windows


 * Disadvantages
 * Extremely difficult for non-technical users
 * Has not been recently maintained since April 9, 2011
 * Less choice of distributions than traditional virtualization

Windows Subsystem for Linux
Windows Subsystem for Linux

This is usually done using an X terminal emulator such Mobaxterm on Windows as WSL does not support X11 graphics directly.


 * https://forum.gambas.one/viewtopic.php?f=9&t=812