@ Say
Publicado em 2010 abril por Crocciari
Esta semana tivemos o contato de um amigo programador de Clipper (deixou um comentário em um dos posts), e também recebi outros dois emails de amigos que trabalham constantemente com Clipper.
E aquilo que sempre digo acaba de confirmar-se, tem bastante gente que ainda usa o Clipper em produção, alguns já migraram para Harbour e saíram da pirataria, mas o mais importante elevaram o nível de seus programas, pois herdaram várias melhorias adquiridas no Harbour, porém uma grande maioria não conseguiu ainda entrar no ambiente gráfico (MS-Windows) através da HMG (Harbour MiniGui).
Desta forma resolvi fazer esse post, não trata-se de um guia de como fazer essa entrada, mas sim de uma dica de como pensar para fazê-la.
Deve existir centenas de textos como estes na Internet, talvez até melhores, não custa dar uma procurada por aí, mas vou falar um pouco do que conheço sobre essa “migração” do Clipper 5.2 for MS-DOS para a HMG for MS-Windows.
O grande problema que tive com a HMG quando iniciei-me neste novo universo xBase (Clipper), foi o seguinte:
Eu não conseguia separar o que era uma coisa e outra, não sabia o que era Harbour e o que era a MiniGUI e apesar de pensarmos que sejam a mesma coisa, elas não são, e este é o primeiro passo para o sucesso.
Explico isso da seguinte forma, o Harbour é o compilador que foi criado para substituir o Clipper ele trouxe a evolução exigida pelos clippeiros, ou seja, através dela ganhamos muitas coisas que não tinhamos na nossa linguagem, além de manter-se em evolução, o que já não acontece com o Clipper. O Harbour é gratuíto e sua adoção tira da pirataria os programadores Clipper que não possuem licença de desenvolvimento com o mesmo, e também possibilita a evolução, pois sempre temos novos recursos sendo adicionados.
A HMG (Harbour MiniGUI), pode se dizer para facilitar, é a biblioteca gráfica para deixarmos os programas escritos em Harbour mais agradáveis.
Tenho que instalar os dois no meu PC?
Não! Você baixa a HMG instala em sua máquina e pronto, já pode desenvolver seus programas em Harbour com a biblioteca gráfica MiniGUI.
Agora vem a dúvida de como fazer essa programação, você pode fazer de duas formas distintas, a primeira é da mesma forma como você trabalhava em Clipper, abre um editor de texto e sai desenvolvendo sua aplicação, digitando linha a linha e posicionando os componentes na tela através do código-fonte, só que isso é muito improdutivo, um processo profundamente lento, eu não aconselho a fazer isso.
A segunda maneira de fazer é utilizando a HMG-IDE que acompanha a instalação, através dela, você cria um projeto, formulários, módulos, gruda componentes nos formulários e vai configurando tudo, assim a produtividade aumenta e você já vai tendo uma idéia de como se projeto final vai ficar.
Você que vai sair agora do Clipper e vai entrar na HMG tenha em mente o seguinte pensamento, separe processamento de dados das saídas de tela, eu sempre fiz isso desde meus programas for MS-DOS e isso facilitou minha vida, e seria bom você fazer o mesmo, eu explico isso.
A maioria de nós quando fazemos um programa Clipper vamos escrevendo o programa assim, entramos um dado “@ Say @ Get@”, processamos os dado entrado, e retornamos o resultado “@ Say” e assim sucessivamente até chegarmos ao fim do que queremos para nosso projeto.
Agora no HMG o ideal (correto) seria fazermos assim, criamos um formulário para receber os dados, e criamos funcões ou procedimentos para processar os dados entrados e um outra para mostrar o resultado processado, então executamos a entrada, no final chamamos a função de processamento e esta ao final chama a função de mostrar o resultado, parece um jeito bobo de programar, mas escutem o que digo, fica muito mais fácil assim.
Minha dica então para projetar um sistema em HMG é separar tudo o quanto for possível em funções e procedimentos, estas separações devem ser feitas seguindo o conceito não colocar as comandos de exibição de tela dentro das funções de processamento e dentro das funções de exibição de telas não colocar comandos de processamento, isso evita que o sistema trave por algum tempo enquanto processa dados, lembre-se que você está em um ambiente multi-tarefa e o usuário não vai gostar de ver aquela tela congelada enquanto ele clica em alguma coisa.
Um conceito bem interessante em programas MS-Windows é fornecer algo para o usuário fazer enquanto sua aplicação processa algo, essa é a magia do ambiente de multi-tarefa, evite rotinas longas de processamento, faça com que elas sejam enxutas o máximo possivel e que sempre acionem uma exibição na tela para que o usuário faça algo enquanto seu programa esta pensando.
Não é nada demais esse post, mas espero que ajude aos amigos que querem migrar do Clipper para a HMG.
Lembre-se separe o processamento das entradas e saidas de telas, quebre o sistema em funções o máximo que puder, e do mais, DEDIQUE-SE!
Não fique preso ao Clipper, pois aqui o ambiente é novo, imagine que você esta em um novo país com nova cultura e novos costumes, sua única vantagem é o idioma que é o mesmo que você fala.
Um grande abraço e muita boa sorte!
Ja comecei estou fazendo meu primeiro aplicativo, o STRU que era em modo console em Harbour, agora estou fazendo com que ele trabalhe tanto em GUI como em modo console. Dependerá da passagem de parâmetros ao chamar o aplicativo. Em breve postarei essa versão.
A versão da IDE que estou utilizando é a HMG 3.0.35 (acho que a versão 4 ainda não saiu) e pode ser baixado em:
http://download844.mediafire.com/mq90waa9emhg/vp3kivo0q59gptb/hmg.3.0.35.exe
Outro material que me ajudou muito é este tutorial (também externo): http://sites.google.com/site/vivaclipper2/tutorial