Software libre (en inglés free software) es el software que, una vez obtenido, puede ser usado, copiado, estudiado, modificado y redistribuido libremente. El software libre suele estar disponible gratuitamente, pero no hay que asociar software libre a software gratuito, o a precio del coste de la distribución a través de otros medios; sin embargo no es obligatorio que sea así y, aunque conserve su carácter de libre, puede ser vendido comercialmente.
A continuacion se mostrara la diferencia entre un programa en software libre y un software propietario, se trata especificamente de GAMBAS (Software Libre) y VISUAL BASIC (Software propietario) de las cuales se hara una comparacion, pero primero se hablara individualmente de cada una de ellas.
GAMBAS
Gambas es una herramienta de desarrollo visual de aplicaciones muy similar a los conocidos programas comerciales Microsoft Visual Basic o Borland Delphi.Con Gambas se pueden hacer aplicaciones o programas con interfaz gráfica de forma muy rápida, pues integran un diseñador de formularios o ventanas, un editor de código, un explorador de clases, un visor de ayuda, etc.
Este tipo de herramientas han sido siempre muy habituales en la plataforma Microsoft Windows, pero para Linux no existían tantas, o bien no estaban tan depuradas.
Gambas es una herramienta, que, en palabras de su autor, Benoît Minisini, permite la creación de programas potentes, de forma fácil y sencilla. El lenguaje de programación que se utiliza es una versión del "viejo" BASIC. Puede sorprender que se haya escogido un lenguaje tan básico e incluso limitado como es el BASIC, pero no hay que olvidar que uno de los objetivos de la herramienta es acercar el desarrollo de aplicaciones a personas no expertas en la programación.

VISUAL BASIC
Es un lenguaje de fácil aprendizaje pensado tanto para programadores principiantes como expertos, guiado por eventos, y centrado en un motor de formularios que facilita el rápido desarrollo de aplicaciones gráficas. Su sintaxis, derivada del antiguo BASIC, ha sido ampliada con el tiempo al agregarse las características típicas de los lenguajes estructurados modernos. Se ha agregado una implementación limitada de programacion orientada a objetos (los propios formularios y controles son objetos), aunque sí admite el polimorfismo mediante el uso de los Interfaces, no admite la herencia. No requiere de manejo de punteros y posee un manejo muy sencillo de cadenas de caracteres. Posee varias bibliotecas para manejo de bases de datos, pudiendo conectar con cualquier base de datos a través de ODBC (Informix, DBase, Access, MySQL, SQL Server, PostgreSQL ,etc) a través de ADO.
Es utilizado principalmente para aplicaciones de gestión de empresas, debido a la rapidez con la que puede hacerse un programa que utilice una base de datos sencilla, además de la abundancia de programadores en este lenguaje.