PDF Imprimir E-mail
RADiola
A programação visual surgiu juntamente com as interfaces gráficas. Com ela, você começa a desenvolver um programa desenhando sua janela principal, com a barra de menu, textos (labels), botões, campos de edição. Você já pode desenhar também as janelas secundárias do programa e definir os menus, por exemplo. Nesse jeito de programar, os elementos visuais de um programa são chamados widgets. Cada ambiente gráfico tem a sua coleção de widgets, e existem várias coleções de widgets disponíveis na forma de código-fonte. Essas coleções, ou bibliotecas, são chamadas de toolkits. Alguns desses toolkits funcionam de forma similar em diferentes sistemas operacionais e ambientes gráficos. Por exemplo, Qt, GTK, GraphApp, FLTK, MGUI, entre outros.

A segunda fase do desenvolvimento é criar respostas para os eventos. Num ambiente gráfico, as ações do usuário e até do próprio computador são chamadas eventos. Quando você clica o mouse em algum lugar, gera um evento (vamos dizer, Click_Right_Mouse_Button) no sistema operacional. O ambiente gráfico detecta em que posição o mouse estava na hora do clique e, se ele estava sobre um determinado botão (OK, por exemplo), o ambiente informa ao programa que o botão OK foi clicado. Cabe ao programador criar uma resposta a esse evento -- ou seja, ele deve atribuir uma função ao botão OK. O próprio sistema operacional gera uma série de eventos -- por exemplo, o relógio do sistema (o timer) gera pulsos constantes. Você pode usar um manipulador para os eventos do timer para atualizar os dígitos de hora e minutos em um programa de relógio, por exemplo.

As respostas a eventos têm a forma de funções e subrotinas, que recebem diferentes nomes em diferentes linguagens de programação, mas significam a mesma coisa: são pequenos trechos de um programa, que fazem uma determinada tarefa e depois retornam para o bloco de programa que estava em andamento. As funções, assim como na matemática, dão de volta algum resultado, geralmente numérico. As subrotinas (procedures em Pascal, void function em C, SUBs em Visual Basic, etc) simplesmente executam alguma tarefa e não devolvem um resultado. Funções e subrotinas têm uma vantagem importante: elas podem ser reaproveitáveis, e juntadas numa biblioteca. Você pode ter uma biblioteca matemática, por exemplo, com uma função para calcular a raiz quadrada de um número, outra para calcular o logaritmo, outra para tirar o fatorial, e assim por diante. Da mesma forma, para responder a eventos em um programa visual, você tem diferentes funções e subrotinas para responder a um clique de botão, o acionamento de uma combinação de teclas de atalho, etc.

Uma noção importante da programação visual é que ela não tem um fluxo de programa contínuo como os programas antigos. Num ambiente visual, o que o bloco principal do programa faz é basicamente carregar a janela principal na tela e ficar esperando alguma ação do usuário. Tudo que acontece depois são respostas a eventos. Você clica no botão 1 e o programa faz alguma coisa. Clica no botão 2 e o programa faz outra coisa. E fica nisso até você fechar a janela principal, e assim encerrar o programa. Por isso se diz que os programas em ambientes visuais são orientados a eventos. O bloco principal normalmente é chamado de event loop, porque ele fica rodando em círculos, sem fazer nada, só esperando um evento acontecer. Quando acontece algo, ele vê se existe alguma ação programada como resposta ao evento ocorrido. Se não tiver, ele continua sem fazer nada. Se tiver, ele passa o processamento para a ação correspondente.

Para a criação de programas, existem hoje diversos ambientes de desenvolvimento, que podem ser explicados como "programas para fazer programas". As ferramentas que permitem a criação visual de um programa são chamadas de ferramentas RAD (Rapid Application Development). Visual Basic e Delphi/Kylix são os mais conhecidos. Depois de desenhar todas as janelas do programa, você escreve, em linguagem de programação, as respostas a eventos. Depois, quando todo o programa estiver escrito, você compila todos os arquivos. O compilador transforma todo o código-fonte e as janelas que você desenhou em linguagem de máquina, criando assim um executável, que é o programa pronto para rodar.

2) Programação visual no RADiola
Criar um programa usando o RADiola deverá ser tão fácil quanto criar uma apresentação de Impress ou Powerpoint (bem, não sei usar nenhum dos dois, mas enfim : ) ). Por isso, o RADiola pode se tornar uma ótima introdução à programação, ou mesmo uma ferramenta útil para amadores e profissionais. A criação de um programa usando todos os conceitos e recursos listados no item 1 pode ser feita de forma totalmente visual. Para isso, o RADiola é dividido em três módulos, que podem vir a ser integrados em um só programa ou podem ser executados separadamente:

* - App Designer - É o módulo que tem a cara tradicional de um ambiente RAD como o Visual Basic e o Kylix. Aqui o usuário cria as janelas (forms) que compõem o aplicativo, insere os botões, campos e outros comandos, e define as ações correspondentes a cada evento (por exemplo, o que acontece quando o usuário clica no botão OK). Aqui também são definidas algumas características do aplicativo, como o toolkit de objetos gráficos que será utilizado, quais as variáveis globais existentes no programa, o uso de timers e interrupções do sistema, as teclas de atalho.

* - Logical Editor - No RADiola não será preciso escrever funções ou subrotinas em linguagem de programação. O módulo Logical Editor é um editor visual de funções e subrotinas. Para criar uma função, o usuário só precisa desenhar um fluxograma, onde cada bloco do fluxo é uma das instruções básicas de qualquer linguagem de programação. Estão representadas as instruções de atribuição (a = b+c), avaliação if-then (se A é maior que B, siga esse caminho do fluxo, senão, siga este outro), loop condicional (enquanto A for menor que B, executar esse trecho repetidamente), chamada de outra função e retorno. O usuário também pode criar variáveis locais e estruturas (structs em C, records em Pascal). A função criada pode então ser salva na biblioteca do RADiola. Para usar uma função, o usuário do RADiola só precisará selecioná-la em uma lista de ações que é apresentada no App Designer na hora de atribuir uma ação para um objeto gráfico do programa.

* - Code Generator - As definições gerais do aplicativo, suas janelas e cada objeto visual criado no App Designer são salvas em um só arquivo de texto, em uma linguagem de script. A tradução para linguagem de programação é feita pelo módulo Code Generator. Pela organização modular do RADiola, é possível ter vários Code Generators, um para cada linguagem de programação desejada. O Code Generator padrão do RADiola vai gerar um arquivo fonte em C para o compilador GCC, da GNU, e também oferecerá ao usuário a opção de logo em seguida compilar o código para criar um executável. Mas nada impede que sejam criados geradores de código para Delphi, Python, C++, Java, etc - o que, nesse caso, tornará o RADiola um ambiente de programação visual multilinguagem.

Por enquanto, o RADiola não existe. Está na fase de projeto. Por isso, as demais informações existentes neste site são voltadas para programadores que queiram participar do desenvolvimento do RADiola, e entram num nível técnico diferente. Quando houver uma versão pronta do RADiola, haverá documentação disponível para iniciantes em programação e usuários do programa. Para saber como deverão funcionar por dentro os módulos do RADiola, veja os tópicos relativos a cada um deles.