»
GAMBAS :
Gambas, um Basic Visual para
Linux
"A fenomenal quantidade de bugs e inconsistências
que tornam o Visual Basic tão adorável levaram-me
a iniciar este projeto". É assim que Benoit Minisini,
um francês de 30 anos vivendo nos subúrbios de
Paris, começa a descrever seu projeto, denominado Gambas.
Gambas é um substituto do VB para Linux. Não
um clone, uma vez que Benoit nunca gostou da implementação
do software da Microsoft: "Parece que a própria
Microsoft está ciente da má qualidade de sua
linguagem, uma vez que o VB.Net não é compatível
com versões anteriores do Visual Basic. Eu acho que
eles jogaram fora o interpretador do Visual Basic, e que o
VB.Net é apenas um compilador .Net cuja sintaxe se
parece com a do Visual Basic".
O objetivo de Gambas é ser um Visual Basic melhor que
o original.
Benoit tomou emprestado do VB o que ele achava útil:
a linguagem BASIC e a interface de desenvolvimento fácil
de usar. Ele também tirou algumas idéias da
linguagem Java, resultando em uma linguagem não apenas
simples, mas também poderosa. Quão poderosa?
A interface de desenvolvimento completa foi criada em Gambas,
um indicador do nível de sofisticação,
antes mesmo da versão 1.0.
Neste artigo tentaremos descrever o status
atual da linguagem, e como ela se compara com VB. Nós
veremos alguns screenshots e código fonte, para que
você possa ter uma visão geral sobre a linguagem.

Esta é a tela de abertura do gambas.
IDE do gambas
Caixa de ferramentas
Propriedades dos objetos

Edição do código
Contexto
Gambas não é a primeira tentativa de se criar
um substituto do VB para Linux, mas certamente é um
dos projetos mais maduros.
Na verdade, existem muitas outras tentativas incompletas de
se criar um clone do VB em Linux: RapidQ foi adquirido pela
RealBASIC, que somente agora está lançando uma
biblioteca runtime para Linux, porém sem IDE; Phoenix
BASIC está paralizado por 3 anos; KBasic está
parado, GNOME Basic mudou seu foco para oferecer suporte a
VBA para aplicações do GNOME; entre os projetos
mais promissores estão o XBasic e o HBasic, mas o primeiro
é menos avançado e o segundo ainda bastante
instável.
Além desses, existem muitas outras linguagens BASIC
sem interfaces de desenvolvimento integradas, e outras IDEs
sem a linguagem BASIC.
Gambas oferece um conjunto único de características
que possibilitará a milhares de programadores em VB
migrar do Windows para Linux, trazendo muito mais aplicações
para o desktop livre.
O Básico do BASIC
Um dos primeiros programas que você certamente encontrará,
em qualquer linguagem de programação, é
o clássico "Hello World".
Hello VB World
Inicie com um formulário em branco
Adicione um botão (Command1) e um label (Label1)
Escreva o código:
Sub Command1_Click()
Form1.Caption = "Hello World!"
End Sub
Hello Gambas World
O exemplo mais simples possível, em Gambas, seria um
projeto sem formulário:
SUB main()
PRINT "Hello World!"
END
Mas você também pode usar um
formulário, como no VB:
Inicie com um formulário em branco
Adicione um botão (Button1) e um label (Label1)
Escreva o código:
SUB Button1_Click()
Label1.Text = "Hello World!"
END
O primeiro exemplo do Gambas é trivial,
e ainda assim, mostra algo que o Visual Basic não consegue
fazer! No VB existe um comando Print, mas apenas para o objeto
Debug e outros objetos gráficos, como Printer, Form
ou Picture. Aparentemente a Microsoft, que havia decidido
que programadores não deveriam escrever diretamente
para a saída padrão, voltou atrás recentemente,
com o lançamento do NET.
Diferenças
- Embora o Gambas não tenha o objetivo de ser um clone
do VB, ele ainda é BASIC, e portanto existem muitas
similaridades entre as duas linguagens, e muitas relações
um-para-um entre suas características.
Existem mais similaridades do que diferenças, mas você
não pode simplesmente copiar seu antigos projetos e
esperar que eles compilem no Gambas.
Entre as principais diferenças,
podemos destacar:
- O Visual Basic embute o código de uma classe dentro
de cada formulário ou objeto, resultando em um único
arquivo que define a lógica e a interface. Gambas mantém
as duas coisas separadas, em arquivos .form e .class.
- No VB, arquivos de diversos projetos podem
estar misturados em um único diretório. No Gambas,
cada projeto tem o seu diretório.
As medidas de tela no VB são feitas em "twips",
unidades de 1/1440 de polegada. Gambas usa uma medida mais
precisa, os "pixels".
O que o VB tem, que Gambas não
tem?
- No Gambas, você não consegue editar o código
em break mode, precisando interromper a execução
antes.
- Em VB, parâmetros de procedimentos
são passados por referência, a não ser
que você use a cláusula ByVal. No Gambas, parâmetros
de procedimentos são passados por valor.
- Não existem variáveis de
escopo global, para todo o projeto, em Gambas. Uma forma de
contornar esta limitação é criar uma
classe chamada Global, declarando suas variáveis como
static e public, e referindo-se a elas como Global.VariableName.
Assim, suas variáveis globais estarão claramente
identificadas -- caso você realmente queira fazer uso
deste recurso.
- No VB, variáveis não precisam
ser declaradas a não ser que você inclua a diretiva
Option Explicit. Em Gambas, as variáveis precisam ser
declaradas, sempre, o que resulta em código superior,
mesmo que seja preciso um pouco mais de trabalho.
- Em Gambas não existe a propriedade
Index, que permite que componentes sejam agrupados no VB.
É possível, porém, agrupá-los
programaticamente.
- O evento MouseMove apenas é executado
quando o botão do mouse está pressionado, de
forma que você não pode usá-lo para os
tradicionais efeitos de "mouse over". Você
pode, porém, criar tooltips com o uso de uma propriedade
destinada a isso.
O que Gambas tem, que o VB não
tem?
- Ao contrário do VB, você pode escrever diretamente
para a saída padrão; a interface gráfica
é opcional.
- Gambas possui o conceito de control groups,
que permitem lidar com eventos originados de diversos componentes
a partir de uma única subrotina. Isto reduz a necessidade
de código redundante, a chance de erros, e ainda permite
várias coisas que os índices do VB fazem - e
muitas outras que o VB não faz.
- Enquanto o VB torna impossível rodar
programas sincronamente e receber sua saída sem o uso
de complexas chamadas à API do Windows (Shell apenas
executa um programa em background), Gambas permite que isto
seja feito através dos comandos SHELL e EXEC, e do
objeto Process. Isto permite que você aproveite uma
miríade de recursos proporcionados por programas externos,
criando front-ends para programas de linha de comando. Isto
poderá representar um fator decisivo para o surgimento
de cada vez mais ferramentas gráficas no Linux.
- Além de lidar com programas externos,
você pode manipular os dispositivos como se fossem arquivos
(/dev), obter informações do kernel (/proc),
ou usar pipes para trabalhar em conjunto com outros programas
do Unix.
- Você pode criar janelas de formatos
variados, não estando restrito a um retângulo.
Para isso precisa apenas ajustar a propriedade ME.Mask de
uma janela, definindo áreas transparentes. O Visual
Basic requer chamadas da API e um pouco mais de trabalho.
- Em Gambas, você pode embutir um formulário
dentro do outro.
Já está em desenvolvimento o componente Network.
De acordo com Daniel Campos, seu criador, o componente encontra-se
em versão beta, e já oferece funcionalidades
tais como clientes DNS/NIS, cliente e servidor para sockets
TCP, UNIX e UDP ("datagramas"), e SerialPort - uma
classe para gerenciar dispositivos seriais (RS-232, etc...).
- A interface de desenvolvimento do Gambas
foi escrita em Gambas, permitindo que você customize
seu ambiente de trabalho de maneira ilimitada, expandindo
e utilizando seu conhecimento da linguagem.
- Gambas é software livre, e funciona
em uma plataforma inteiramente livre, oferecendo total liberdade
de uso, aprendizado, cópia e distribuição
-- e sem custos de licença.
Aproveitando o poder do Unix
"This is the Unix philosophy: Write programs that do
one thing and do it well. Write programs to work together.
Write programs to handle text streams, because that is a universal
interface." -- Doug McIlroy
Uma das grandes vantagens do Gambas com relação
ao VB é que o Gambas foi construído segundo
a filosofia Unix. Isto significa que você pode alavancar
o poder do sistema operacional e de milhares de ferramentas,
ao invés de escrever código.
Vejamos as possibilidades
- Existem, no Linux, ferramentas gráficas e de linha
de comando para queimar CDs, tocar arquivos MP3 e baixar arquivos
da internet.
Ao reconhecer este fato, você pode unificar todos estes
recursos sob uma única interface, sabendo que os demais
programas são especializados em fazer uma coisa, e
bem.
- Você não precisa depender
de um fornecedor de componentes especializados. Conte com
os recursos que vêm sendo desenvolvidos pela comunidade
de desenvolvedores de software livre. Torne-se parte desta
comunidade, contribuindo com sua experiência e conhecimentos.
Se você alguma vez já programou em BASIC, você
terá de volta aquele sentimento de familiaridade assim
que começar a usar o Gambas.
Programadores acostumados com o VB se sentirão em casa
desde o início.
- Certamente, Gambas não é
VB, e portanto os desenvolvedores acostumados com a linguagem
da Microsoft precisarão estar preparados para algumas
mudanças. O lado bom é que a maioria destas
mudanças estão lá por alguma razão
específica: para fazer uma linguagem melhor. Como já
dissemos no início, Gambas procurou aproveitar boas
idéias de Java e outras linguagens.
Convertendo seu código
legado
- Então você é um programador de VB, e
possui quase uma década de código fonte em uma
plataforma proprietária, que muda a cada dois ou três
anos.
- Você certamente conhece o problema
de ter que adaptar-se às mudanças. No caso do
VB, porém, muitas dessas mudanças foram criadas
por questões mercadológicas, de forma a impulsionar
as vendas. Problemas antigos são perpetuados, e os
programadores sempre buscam o santo Graal.
- Talvez você esteja considerando mudar
para uma plataforma livre, que não se coloque no seu
caminho; mais do que isso, que não cobre altos tributos
sobre o seu trabalho. Mas a necessidade de lidar com o código
legado continua.
- Felizmente os desenvolvedores de Gambas
já começaram a trabalhar no sentido de facilitar
esta transição.
- Com o lançamento do script VB2Gb,
a interface de projetos inteiros em VB pode ser rapidamente
convertida para Gambas. O programa encontra-se na versão
0.1, e portanto existe muito espaço para melhorias.
Como na maioria dos softwares livres, as melhorias dependem
basicamente do feedback de seus usuários, que também
podem se envolver no projeto.
Conclusão
Gambas é a solução mais próxima
ao Visual Basic no universo do software livre. Ele não
foi criado com o objetivo de imitar o VB, nem mesmo rodar
código nativo do VB, mas oferece uma interface rápida
de desenvolvimento baseada na linguagem BASIC.
- Gambas encontra-se em progresso contínuo.
Sua versão atual (0.98) é considerada uma versão
alfa, sujeita a mudanças. Ainda assim, Gambas já
está sendo usado em aplicações complexas,
como a própria IDE. Não existe pressa para lançar
a versão 1.0, pois o objetivo é fazer as coisas
certas desde a primeira vez.
- Gambas possui uma estratégia para
o futuro. Entre as características que podemos esperar
para os próximos meses, podemos citar:
- Gerenciador de relatórios (report
designer)
- Sistema de persistência de objetos.
(Estuda-se a aplicação do conceito de prevalência,
promovido pelo brasileiro Klaus Wuestefeld)
- Expressões regulares estilo Perl
- Componente SDL - crie jogos em Gambas!
- Com Gambas, qualquer um pode começar
a programar aplicações gráficas em questão
de minutos, o que poderá trazer muito mais programadores
e aplicações para o GNU/Linux. Por isso, podemos
dizer que, assim como o OpenOffice e o Mozilla, o Gambas pode
será uma ferramenta essencial para o fortalecimento
do GNU/Linux no desktop.
Como você pode colaborar? Comece a
aprender, usar e divulgar este projeto!
OBS: Este texto foi retirado do arquivo
de ajuda do gambas e publicado em sua forma original.
|