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 or Larazrus/Free Pascal.
 * Run the program through Windows via Cygwin (currently recommended here and by the Gambas documentation).
 * 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 reccomended by the Gambas documentation)
 * 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.

Visual Basic
If you are a programmer and you feel up to this challenge then you may want to consider this option. The obvious candidate for porting is Visual Basic .Net as it is a common BASIC derivative that works well in modern version of Windows. Also VB.net has a stipped down "free for use" version (Express), and shares certain syntax supported in Gambas (such as -= or += shorthand). If you have the tools needed you may also want to consider using the original Visual Basic (presumably version 6) and older for older version of Windows. While demand for pre-XP versions of Windows may be low it is still cool when new software is allowed to run on these versions. All Piga Software programs are released under the GPL and as a result we cannot stop you from doing this. In fact if you wish to do this you are encouraged too. While Piga staff may not be able to offer that much support towards this project we like the idea of this sort of porting.


 * Advantages
 * If written properly software should be stable and efficient
 * Once ported software should be easy to set up for users so matter what their technical background


 * 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
 * Will require strenuous bugfixing and testing
 * Difficult to provide program updates over two separate codebases

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)


 * Disadvantages
 * Forms have to be recreated from scratch
 * Syntax differences from both languages are varied (Pascal and BASIC are distinct language families)
 * Will require strenuous bug-fixing and testing
 * Difficult to provide program updates over two separate code-bases

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

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