Para onde ir...
Enviado: 20 Nov 2004 01:13
Para onde ir...
Bom, resolvi fazer este post para poder acabar de vez com o mito “uso Clipper e para onde ir no meio de tanta tecnologia”.
Vamos ver um pouco de história.
O Clipper como sabemos foi um marco na história da informática mais precisamente da programação, antes mesmo de se pensar em Delphi ou VB ou linguagem visual. Foi um substituto ao DBASE antigo, pois era quase compatível com ele, exceção de alguns comandos. O Clipper era considerado um compilador para os programas de Dbase, mas na verdade era uma linguagem de programação que usava a mesma lógica e sintaxe do Dbase.
O fonte Dbase compilado em Clipper ficava mais rápido e protegido contra “descompilação”, além de haver mais segurança no acesso a dados e do próprio compilador ser mais extenso que o Dbase por aceitar criação de funções especificas em C e ASSEMBLER.
Coisa interessante que uma das primeiras linguagens a usar o modelo de MÁQUINA VIRTUAL foi o Clipper (Se não foi a primeira linguagem), ou seja, o Clipper há muitos anos já usava um conceito que está sendo adotado até pelas linguagens mais novas como é o caso da .NET.
Excelente linguagem que era, com maturidade e inúmeros usuários em todo o mundo, ninguém consegue explicar por que a sua produtora a CA o abandonou de uma hora para outra, parando na versão 5.3 que trazia inúmeras inovações inclusive a possibilidade não explorada de se fazer programas para Windows (que veio a ser explorado pela fivetech com o fivewin), dá para achar até que foi uma armação de outras empresas maiores, que compraram o direito da linguagem só para ela parar de ser produzida, mas dizem que uma empresa chamada Grafx ou algo assim comprou a linguagem, mas eles mesmos não vendem mais...
Hoje, clippeiros sem suporte lutam para desenvolver seus programas, hoje com inúmeras libs e soluções disponíveis gratuitamente pela e NET e mesmo pagas.
Hoje com toda a evolução dos sistemas operacionais e pelo desespero da Microsoft em tirar o DOS do mercado e por outro lado o Linux que vem crescendo sem parar, o programador Clipper fica meio sem saber para onde ir...
Fato interessante que o Windows XP/NT/2000/2003 não tem DOS, logo os programas de DOS continuam rodando, porém emulados, o mais ridículo, é que ao emular um programa DOS ou 16 bits, o Windows fica SSSUUUUPPPEEERRR lento, isto é de morrer de rir... Acho que todos já ouviram falar de Máquina Virtual Microsoft ou VMWare, eu tenho os dois e uso a Máquina Virtual Microsoft no meu PC, estes programas criam computadores virtuais onde eu defino tamanho de HD, quantidade de me memória, etc... Podendo assim ter o Linux instalado dentro do meu Windows. O mais engraçado é que isto é mais complexo do que um simples emulador de DOS; bom eu instalo o Windows o 98, EU TENHO ELE INSTALADO e quando rodo um programa de DOS nele fica muito rápido, sendo que simplesmente rodando no Windows fica uma M****... Você está entendendo, o PROGRAMA DOS DENTRO DO WINDOWS 98 DENTRO XP RODA MAIS RÁPIDO QUE O SISTEMA EM DOS PURO NO WINDOWS XP. Fizeram isto de propósito para que os aplicativos DOS e desenvolvedores DOS ficassem em apuros e acabassem por fim convertendo seus sistemas para WINDOWS.
Bom aí um resumo da história e de onde quero chegar...
Fica a pergunta: PARA ONDE IR? O QUE FAZER?
Bom, não sou anti Microsoft, pois ainda uso o sistema deles como a maioria, mas também uso o Linux (Conectiva 10) que me atende do mesmo jeito, então vamos ver os dois lados da moeda e diversas opções e caminhos que podemos seguir.
Vamos dividir este assunto em diversos passos que nos darão o caminho das pedras. Qualquer um que discordar pode postar uma mensagem ou mandar um e-mail para Mim. Vou postar aqui soluções que já usei e minha OPNIÃO PESSOAL.
Passo um
A primeira coisa infelizmente é esquecer o Clipper, até dói o coração, mas hoje pouco se pode aproveitar dele daqui para frente... Claro, acredito que o DOS sempre vai existir e também programas Clipper, estou falando de abandonar a ferramenta e não os programas ou a forma de programar. Neste ponto temos que avaliar as soluções disponíveis, são elas:
· 1 – xHarbour/Harbour
Praticamente estas ferramentas são as mesmas, tendo pequena diferença na velocidade de algumas rotinas, sendo que o xHarbour está sendo mais adotado por ter um grupo de desenvolvimento mais ativo, são totalmente compatíveis tanto que ferramentas de um servem para o outro bastando apenas um recompilação da mesma. A grande vantagem é ser multiplataforma, ou seja seu sistema pode rodar em DOS, Windows, Linux, Mac OS, OS2, FreeBSD, e outros. Totalmente GPL (Código fonte aberto) o que garante sua continuidade por quanto exista o Linux, grande compatibilidade de sintaxe com o Clipper, assim como diversas Libs já convertidas, estou usando e aprovando... Estou aos poucos convertendo todos os meus aplicativos para ele.
· 2 – Clip
Esta ferramenta testei no primeiro semestre do ano, é basicamente a mesma lógica do xHarbour mas vi de cara algumas dificuldades que não encontrei com o xHarbour, mas assim mesmo o Clip é um Show a parte, gera executáveis pequenos, também é GPL porém não é multiplataforma, está restrito ao Linux, tem diversas Libs já prontas e dá suporte a NSX.
· 3 – Flagship
Outra boa ferramenta, não totalmente compatível com o Clipper e também não é multiplataforma, roda somente no Linux (Mas havia previsão se sair para Windows, não sei como está), é pago e um preço absurdo, fora treinamento e novas ferramentas que vivem tentando nos empurrar. Um executável meu que fica com uns 900k no DOS, ficou com uns 1600 em xHarbour e no Flagship ficou com 32 megas fora as libs .so que tinham que ir junto com o programa para ele funcionar tem uma forma de compilação que o sistema já roda em modo janela com uso da GTK, mas meu filho... Nem queira ver... Fica terrível. DBF com índices que não são compatíveis com o Clipper, só a extensão são as mesmas.
· 4 – VFP (Visual Fox PRO)
Esta é da Microsoft, o suporte tá fraco, mas a vantagem é que se programa para Windows, tem suporte transparente a banco relacional, mas nunca me inspirou confiança(opnião minha). Mesmo o aplicativo depois de compilado roda em um Runtime do VFP o que não me agrada, gosto da independência na distribuição do aplicativo, isto é igual a corcel, quem usa não abre mão e garante que é um show, já usei a muitos anos atrás, deu para ver o que é e como funciona, até programas nele eu fiz... Fiquei triste pela dificuldade de distribuição, o grande problema não era da linguagem, era mesmo do Windows que quase sempre não funcionava.
Destas soluções, em todas elas podem ser usadas as mais novas tecnologias de bancos de dados do mercado, assim como modo janela e programação WEB. Desta escolhi o xHarbour, por ser de imediato gratuita e a mais compatível com o Clipper. Facilidade na distribuição do aplicativo, estabilidade de banco de dados e também por acompanhar o projeto desde quando surgiu, hoje uso apenas o compilador, o makefile eu faço na mão, sem firulas e compilo tudo na manha que o GCC permite. Roda que uma maravilha e tenho controle do que o sistema está fazendo.
Passo dois
Agora veremos a saída de tela. Os programas antigos usavam o console do DOS ou também conhecido como modo texto, assim a tela é formada por determinado número de linhas e colunas, no mais comum, 25 linhas por 80 colunas. Com a evolução dos computadores passaram a se adotar o modo gráfico onde tudo é definido por Pixeis, foi assim com a introdução do Windows 3.11, que era um ambiente janela de 16 bits. Assim a programação hoje é voltada para duas saídas para o usuário (Isso no caso de vídeo): Modo texto e Modo Janela. No modo texto é muito complicado de se colocar imagens de grande definição, é necessário quase um milagre hoje para fazer tal coisa, por outro lado o modo janela (gráfico) permite isto com uma facilidade muito grande. Então para os programas DOS restou uma saída que não durou muito tempo, usar uma lib gráfica. O que foi para mim uma grande evolução em termos de libs gráfica para DOS foi a Graphic Vision do turbo Pascal 7.0, tenho ela e meu amigo... É um show, o programa mesmo em DOS fica igualzinho a um programa de Windows 3.11, porém ela estava restrita ao Pascal, no nosso caso estamos falando de Clipper, o qual passou a contar em 95 com a LLIBG que poucos anos depois por ter sido descontinuada junto com o Clipper, parou de funcionar na sua totalidade em computadores mais novos... Ela ajudou muitos programas a continuarem rodando no mercado apesar de suas limitações, logo devido a linha que o Windows tem seguido e por ainda estar na maioria dos computadores, devemos optar pelo modo janela, por que simplesmente o mercado optou pelo modo janela (Apesar de que as maiores aplicações existentes no mundo ainda rodem em modo texto). No caso de se optar por Linux, nele também temos os dois modos e digo, Não existe Linux sem modo texto, no Linux tem que ser modo texto é até exigência nacional, um programa em modo texto decola no Linux, mas também pode se usar o Modo gráfico nele através da GTK ou mesmo de LIBs especificas que fazem a mesma coisa, como uma lib chamada Minigui que foi usada para fazer o DOOM (Não confunda com Minigui do xHarbour, esta minigui é para C++).
Assim teremos que definir sistema operacional e Plataforma de saída de vídeo. Por isso optei pelo xHarbour, pois ele me possibilitou ter um único fonte que roda em DOS, Windows, Linux em modo texto e também roda em Windows Modo janela, isto apenas com algumas diretivas de compilação.
Colocando o xHarbour em foco agora no passo 3.
Passo três
Quais opções eu tenho para converter meu aplicativo para gráfico, já que modo texto é sempre o mesmo tanto em Windows e Linux?
1. Fivewin
Está é a velha e estável Fivewin,como citado acima a grande evolução do Clipper, como sempre não vindo da CA, mas da Fivetech, esta lib é ótima, mas de cara ela pegava por usar programação totalmente voltada a objeto, o que para quem programa em Clipper é uma barra, mas já foi um empurrão. O grande ponto fora, não foi por causa da Lib e sim do próprio Clipper que é 16 bits, assim como programa DOS em Windows mais novo, o desempenho pesa e cai muito. Mas em si ainda é uma solução, como no caso estamos falando em xHarbour, a versão dela para xHarbour é outra coisa... Fica tudo 32bits for Windows mesmo, o seu programa em Fivewin+Clipper com o Fivewin+xHarbour ele decola, lembro que a lib Fivewin para xHarbour não é a mesma usada com o Clipper, a grande vantagem como já disse é que ela é antiga, estável, tem suporte e a grande desvantagem é ser paga. Num mundo de GPL e Opensource podemos recorrer a outras opções.
2. HWGui
Biblioteca adotada como padrão para a versão comercial do xHarbour, é boa estável mas menos extensível que a Minigui, com ambas você conseguirá fazer basicamente a mesma coisa. É orientada a objeto e mais bem projetada que a Minigui, a Minigui mudou de sintaxes quatro ou cinco vezes (não sei ao certo), em menos de 1 ano e meio, o que fez com que eu diversas vezes tivesse que reescrever meus fontes. A desvantagem é que é orientada a objeto e por isso, como a fivewin mais duro de encarar, outra coisa é por estar fazendo parte da versão comercial, ela pode acabar tendo melhorias que nunca iremos desfrutar a não ser que compremos a versão paga dela.
3. Minigui
Como já citei acima, faz a mesma coisa que as anteriores, mas não é orientada a objeto, apesar de podermos usa-la como se fosse, sua sintaxe lembra a do Delphi onde os objetos e suas propriedades são definidos por ponto, senão quiser não precisa usar a programação voltada a objeto, pode usar tudo usando funções, está muito mais extensa que a HWGui e já tem um IDE básica que ajuda demais no desenvolvimento, ela vem em um pacote que pode ser baixado em www.sourceforge.net , basta procurar por MINIGUI que você encontrará, deve ter em média 6 megas, é só instalar, entrar na pasta MINIGUI\IDE e rodar o IDE dela que você já estará programando com ela, para ter idéia o PRWIN 3.1 que está no meu site foi feito com ela, a diferença dela é que vem com Harbour, como sempre uso o xHarbour, depois de fazer o programa com ela, apenas recompilo tudo com o xHarbour. Os objetos estão com muitas propriedades o que deixa ela mais completa que a HWGui, não é muito difícil ou demorado o seu aprendizado, depois que pega o jeito é batata de programar com ela, tem objetos como Browse, Timer, etc... Alem da HBPrint que consegue fazer qualquer tipo de relatório gráfico. Eu use um componente de impressão específico no PRWIN que mudei para conseguir alguns extras com ele. Junto dela vai uma lib onde podemos declarar rotinas de DLLs facilmente como se fossem rotinas de nossos sistemas, assim eu já até programei telas de entrada de dados no Delphi e chamei estas janelas do xHarbour+Minigui, por usa-la no meu dia a dia, poderia falar dela para o resto do dia, mas isto não vem ao caso. A grande vantagem dela é que não é obrigatoriamente orientada e objetos e é mais extensiva e conta já com uma IDE para desenvolvimento, a desvantagem é que declara diversas variáveis públicas e ainda pode apresentar alguns problemas na troca de versão, mas sempre são sanados.
4. GTWVT
Esta aqui é para os menos exigentes, com ela você pega seu sistema modo texto e simples compila com esta lib no lugar a GTWIN e pronto... Seu programa roda modo janela, toda a saída vai para uma janela, fica meio durão, pois o sistema fica basicamente o mesmo, porém usando modo janela, você dá uma mudada nas cores para ficar mais voltado para o Branco e PIMBA, pode colocar um MENU de Windows no seu sistema, botões, e assim vai, para os que querem um resultado mais rápido é uma ótima pedida. Os programas ficam funcionando da mesma forma, porém modo janela sem precisar de mexer em muita coisa. A grande vantagem é esta, modo janela instantâneo, a desvantagem é ter poucos recursos o que não é problema algum, estão até fazendo alguns teste para pode mesclar a Minigui com ela... Ai vai ser um Show à parte. Usar formulário do Delphi com ela eu nunca fiz, mas sei que consigo.
Passo cinco
O que eu ganho como modo texto no Linux?
Aqui está a grande vantagem e o que deixa o sistema Clipper atualizado enquanto exista o Linux. Simplesmente recompilando o seu programa para xHarbour modo texto, seu programa passa a funcionar como um SQL, pois todo o requerimento das estações é executado no servidor, ou seja tráfego de rede mínimo pois só andam na rede tela e teclado. O usuário roda o programa remotamente dentro do servidor, se houver queda de energia, como tudo está local ganhamos uma segurança maior, pois o sistema não será fechado bruscamente em toda a rede, Além também da segurança extra que o EXT3 nos dá por ter Journal, assim qualquer corrupção do sistema de arquivos é restaurada para o estado anterior. Assim o sistema funciona como um SQL onde tudo é processado no servidor, um computador comum como um PENTIUM 4 2.8 segura com folga uns 30 a 40 terminais logados nele... os bancos de dados ficam escondidos da rede, os usuários não ficam fuçando nos arquivos do servidor uma vez que só conseguem entrar no programa, entre outras vantagens... ainda pode-se usar libs gráficas, a Fivewin mesmo já tem uma versão par xHarbour+Linux, além de diversas libs como HWGUI e Minigui que são GPL. Mas isto é outra história.
Bom amigos, para não encher muita lingüiça, acho que isto dá para ter uma idéia....
Outra boa também é que se pode criar CGI com o xHarbour, aí a saída é para o internet explorer em formato HTM, veja um teste com a CGILIB que estou criando.
www.vagucs.com.br/cgi-bin/auto.exe
Omiti muita coisa aqui, isto foi um pequeno resumo, qualquer coisa mande-me um e-mail ou me ligue.
Nos tutoriais que acompanham o meu CD você consegue ter uma base de como rodar seu programa em Windows e Linux.
Sem mais
Wagner Nunes
www.vagucs.com.br
(33) 3314-2242
Bom, resolvi fazer este post para poder acabar de vez com o mito “uso Clipper e para onde ir no meio de tanta tecnologia”.
Vamos ver um pouco de história.
O Clipper como sabemos foi um marco na história da informática mais precisamente da programação, antes mesmo de se pensar em Delphi ou VB ou linguagem visual. Foi um substituto ao DBASE antigo, pois era quase compatível com ele, exceção de alguns comandos. O Clipper era considerado um compilador para os programas de Dbase, mas na verdade era uma linguagem de programação que usava a mesma lógica e sintaxe do Dbase.
O fonte Dbase compilado em Clipper ficava mais rápido e protegido contra “descompilação”, além de haver mais segurança no acesso a dados e do próprio compilador ser mais extenso que o Dbase por aceitar criação de funções especificas em C e ASSEMBLER.
Coisa interessante que uma das primeiras linguagens a usar o modelo de MÁQUINA VIRTUAL foi o Clipper (Se não foi a primeira linguagem), ou seja, o Clipper há muitos anos já usava um conceito que está sendo adotado até pelas linguagens mais novas como é o caso da .NET.
Excelente linguagem que era, com maturidade e inúmeros usuários em todo o mundo, ninguém consegue explicar por que a sua produtora a CA o abandonou de uma hora para outra, parando na versão 5.3 que trazia inúmeras inovações inclusive a possibilidade não explorada de se fazer programas para Windows (que veio a ser explorado pela fivetech com o fivewin), dá para achar até que foi uma armação de outras empresas maiores, que compraram o direito da linguagem só para ela parar de ser produzida, mas dizem que uma empresa chamada Grafx ou algo assim comprou a linguagem, mas eles mesmos não vendem mais...
Hoje, clippeiros sem suporte lutam para desenvolver seus programas, hoje com inúmeras libs e soluções disponíveis gratuitamente pela e NET e mesmo pagas.
Hoje com toda a evolução dos sistemas operacionais e pelo desespero da Microsoft em tirar o DOS do mercado e por outro lado o Linux que vem crescendo sem parar, o programador Clipper fica meio sem saber para onde ir...
Fato interessante que o Windows XP/NT/2000/2003 não tem DOS, logo os programas de DOS continuam rodando, porém emulados, o mais ridículo, é que ao emular um programa DOS ou 16 bits, o Windows fica SSSUUUUPPPEEERRR lento, isto é de morrer de rir... Acho que todos já ouviram falar de Máquina Virtual Microsoft ou VMWare, eu tenho os dois e uso a Máquina Virtual Microsoft no meu PC, estes programas criam computadores virtuais onde eu defino tamanho de HD, quantidade de me memória, etc... Podendo assim ter o Linux instalado dentro do meu Windows. O mais engraçado é que isto é mais complexo do que um simples emulador de DOS; bom eu instalo o Windows o 98, EU TENHO ELE INSTALADO e quando rodo um programa de DOS nele fica muito rápido, sendo que simplesmente rodando no Windows fica uma M****... Você está entendendo, o PROGRAMA DOS DENTRO DO WINDOWS 98 DENTRO XP RODA MAIS RÁPIDO QUE O SISTEMA EM DOS PURO NO WINDOWS XP. Fizeram isto de propósito para que os aplicativos DOS e desenvolvedores DOS ficassem em apuros e acabassem por fim convertendo seus sistemas para WINDOWS.
Bom aí um resumo da história e de onde quero chegar...
Fica a pergunta: PARA ONDE IR? O QUE FAZER?
Bom, não sou anti Microsoft, pois ainda uso o sistema deles como a maioria, mas também uso o Linux (Conectiva 10) que me atende do mesmo jeito, então vamos ver os dois lados da moeda e diversas opções e caminhos que podemos seguir.
Vamos dividir este assunto em diversos passos que nos darão o caminho das pedras. Qualquer um que discordar pode postar uma mensagem ou mandar um e-mail para Mim. Vou postar aqui soluções que já usei e minha OPNIÃO PESSOAL.
Passo um
A primeira coisa infelizmente é esquecer o Clipper, até dói o coração, mas hoje pouco se pode aproveitar dele daqui para frente... Claro, acredito que o DOS sempre vai existir e também programas Clipper, estou falando de abandonar a ferramenta e não os programas ou a forma de programar. Neste ponto temos que avaliar as soluções disponíveis, são elas:
· 1 – xHarbour/Harbour
Praticamente estas ferramentas são as mesmas, tendo pequena diferença na velocidade de algumas rotinas, sendo que o xHarbour está sendo mais adotado por ter um grupo de desenvolvimento mais ativo, são totalmente compatíveis tanto que ferramentas de um servem para o outro bastando apenas um recompilação da mesma. A grande vantagem é ser multiplataforma, ou seja seu sistema pode rodar em DOS, Windows, Linux, Mac OS, OS2, FreeBSD, e outros. Totalmente GPL (Código fonte aberto) o que garante sua continuidade por quanto exista o Linux, grande compatibilidade de sintaxe com o Clipper, assim como diversas Libs já convertidas, estou usando e aprovando... Estou aos poucos convertendo todos os meus aplicativos para ele.
· 2 – Clip
Esta ferramenta testei no primeiro semestre do ano, é basicamente a mesma lógica do xHarbour mas vi de cara algumas dificuldades que não encontrei com o xHarbour, mas assim mesmo o Clip é um Show a parte, gera executáveis pequenos, também é GPL porém não é multiplataforma, está restrito ao Linux, tem diversas Libs já prontas e dá suporte a NSX.
· 3 – Flagship
Outra boa ferramenta, não totalmente compatível com o Clipper e também não é multiplataforma, roda somente no Linux (Mas havia previsão se sair para Windows, não sei como está), é pago e um preço absurdo, fora treinamento e novas ferramentas que vivem tentando nos empurrar. Um executável meu que fica com uns 900k no DOS, ficou com uns 1600 em xHarbour e no Flagship ficou com 32 megas fora as libs .so que tinham que ir junto com o programa para ele funcionar tem uma forma de compilação que o sistema já roda em modo janela com uso da GTK, mas meu filho... Nem queira ver... Fica terrível. DBF com índices que não são compatíveis com o Clipper, só a extensão são as mesmas.
· 4 – VFP (Visual Fox PRO)
Esta é da Microsoft, o suporte tá fraco, mas a vantagem é que se programa para Windows, tem suporte transparente a banco relacional, mas nunca me inspirou confiança(opnião minha). Mesmo o aplicativo depois de compilado roda em um Runtime do VFP o que não me agrada, gosto da independência na distribuição do aplicativo, isto é igual a corcel, quem usa não abre mão e garante que é um show, já usei a muitos anos atrás, deu para ver o que é e como funciona, até programas nele eu fiz... Fiquei triste pela dificuldade de distribuição, o grande problema não era da linguagem, era mesmo do Windows que quase sempre não funcionava.
Destas soluções, em todas elas podem ser usadas as mais novas tecnologias de bancos de dados do mercado, assim como modo janela e programação WEB. Desta escolhi o xHarbour, por ser de imediato gratuita e a mais compatível com o Clipper. Facilidade na distribuição do aplicativo, estabilidade de banco de dados e também por acompanhar o projeto desde quando surgiu, hoje uso apenas o compilador, o makefile eu faço na mão, sem firulas e compilo tudo na manha que o GCC permite. Roda que uma maravilha e tenho controle do que o sistema está fazendo.
Passo dois
Agora veremos a saída de tela. Os programas antigos usavam o console do DOS ou também conhecido como modo texto, assim a tela é formada por determinado número de linhas e colunas, no mais comum, 25 linhas por 80 colunas. Com a evolução dos computadores passaram a se adotar o modo gráfico onde tudo é definido por Pixeis, foi assim com a introdução do Windows 3.11, que era um ambiente janela de 16 bits. Assim a programação hoje é voltada para duas saídas para o usuário (Isso no caso de vídeo): Modo texto e Modo Janela. No modo texto é muito complicado de se colocar imagens de grande definição, é necessário quase um milagre hoje para fazer tal coisa, por outro lado o modo janela (gráfico) permite isto com uma facilidade muito grande. Então para os programas DOS restou uma saída que não durou muito tempo, usar uma lib gráfica. O que foi para mim uma grande evolução em termos de libs gráfica para DOS foi a Graphic Vision do turbo Pascal 7.0, tenho ela e meu amigo... É um show, o programa mesmo em DOS fica igualzinho a um programa de Windows 3.11, porém ela estava restrita ao Pascal, no nosso caso estamos falando de Clipper, o qual passou a contar em 95 com a LLIBG que poucos anos depois por ter sido descontinuada junto com o Clipper, parou de funcionar na sua totalidade em computadores mais novos... Ela ajudou muitos programas a continuarem rodando no mercado apesar de suas limitações, logo devido a linha que o Windows tem seguido e por ainda estar na maioria dos computadores, devemos optar pelo modo janela, por que simplesmente o mercado optou pelo modo janela (Apesar de que as maiores aplicações existentes no mundo ainda rodem em modo texto). No caso de se optar por Linux, nele também temos os dois modos e digo, Não existe Linux sem modo texto, no Linux tem que ser modo texto é até exigência nacional, um programa em modo texto decola no Linux, mas também pode se usar o Modo gráfico nele através da GTK ou mesmo de LIBs especificas que fazem a mesma coisa, como uma lib chamada Minigui que foi usada para fazer o DOOM (Não confunda com Minigui do xHarbour, esta minigui é para C++).
Assim teremos que definir sistema operacional e Plataforma de saída de vídeo. Por isso optei pelo xHarbour, pois ele me possibilitou ter um único fonte que roda em DOS, Windows, Linux em modo texto e também roda em Windows Modo janela, isto apenas com algumas diretivas de compilação.
Colocando o xHarbour em foco agora no passo 3.
Passo três
Quais opções eu tenho para converter meu aplicativo para gráfico, já que modo texto é sempre o mesmo tanto em Windows e Linux?
1. Fivewin
Está é a velha e estável Fivewin,como citado acima a grande evolução do Clipper, como sempre não vindo da CA, mas da Fivetech, esta lib é ótima, mas de cara ela pegava por usar programação totalmente voltada a objeto, o que para quem programa em Clipper é uma barra, mas já foi um empurrão. O grande ponto fora, não foi por causa da Lib e sim do próprio Clipper que é 16 bits, assim como programa DOS em Windows mais novo, o desempenho pesa e cai muito. Mas em si ainda é uma solução, como no caso estamos falando em xHarbour, a versão dela para xHarbour é outra coisa... Fica tudo 32bits for Windows mesmo, o seu programa em Fivewin+Clipper com o Fivewin+xHarbour ele decola, lembro que a lib Fivewin para xHarbour não é a mesma usada com o Clipper, a grande vantagem como já disse é que ela é antiga, estável, tem suporte e a grande desvantagem é ser paga. Num mundo de GPL e Opensource podemos recorrer a outras opções.
2. HWGui
Biblioteca adotada como padrão para a versão comercial do xHarbour, é boa estável mas menos extensível que a Minigui, com ambas você conseguirá fazer basicamente a mesma coisa. É orientada a objeto e mais bem projetada que a Minigui, a Minigui mudou de sintaxes quatro ou cinco vezes (não sei ao certo), em menos de 1 ano e meio, o que fez com que eu diversas vezes tivesse que reescrever meus fontes. A desvantagem é que é orientada a objeto e por isso, como a fivewin mais duro de encarar, outra coisa é por estar fazendo parte da versão comercial, ela pode acabar tendo melhorias que nunca iremos desfrutar a não ser que compremos a versão paga dela.
3. Minigui
Como já citei acima, faz a mesma coisa que as anteriores, mas não é orientada a objeto, apesar de podermos usa-la como se fosse, sua sintaxe lembra a do Delphi onde os objetos e suas propriedades são definidos por ponto, senão quiser não precisa usar a programação voltada a objeto, pode usar tudo usando funções, está muito mais extensa que a HWGui e já tem um IDE básica que ajuda demais no desenvolvimento, ela vem em um pacote que pode ser baixado em www.sourceforge.net , basta procurar por MINIGUI que você encontrará, deve ter em média 6 megas, é só instalar, entrar na pasta MINIGUI\IDE e rodar o IDE dela que você já estará programando com ela, para ter idéia o PRWIN 3.1 que está no meu site foi feito com ela, a diferença dela é que vem com Harbour, como sempre uso o xHarbour, depois de fazer o programa com ela, apenas recompilo tudo com o xHarbour. Os objetos estão com muitas propriedades o que deixa ela mais completa que a HWGui, não é muito difícil ou demorado o seu aprendizado, depois que pega o jeito é batata de programar com ela, tem objetos como Browse, Timer, etc... Alem da HBPrint que consegue fazer qualquer tipo de relatório gráfico. Eu use um componente de impressão específico no PRWIN que mudei para conseguir alguns extras com ele. Junto dela vai uma lib onde podemos declarar rotinas de DLLs facilmente como se fossem rotinas de nossos sistemas, assim eu já até programei telas de entrada de dados no Delphi e chamei estas janelas do xHarbour+Minigui, por usa-la no meu dia a dia, poderia falar dela para o resto do dia, mas isto não vem ao caso. A grande vantagem dela é que não é obrigatoriamente orientada e objetos e é mais extensiva e conta já com uma IDE para desenvolvimento, a desvantagem é que declara diversas variáveis públicas e ainda pode apresentar alguns problemas na troca de versão, mas sempre são sanados.
4. GTWVT
Esta aqui é para os menos exigentes, com ela você pega seu sistema modo texto e simples compila com esta lib no lugar a GTWIN e pronto... Seu programa roda modo janela, toda a saída vai para uma janela, fica meio durão, pois o sistema fica basicamente o mesmo, porém usando modo janela, você dá uma mudada nas cores para ficar mais voltado para o Branco e PIMBA, pode colocar um MENU de Windows no seu sistema, botões, e assim vai, para os que querem um resultado mais rápido é uma ótima pedida. Os programas ficam funcionando da mesma forma, porém modo janela sem precisar de mexer em muita coisa. A grande vantagem é esta, modo janela instantâneo, a desvantagem é ter poucos recursos o que não é problema algum, estão até fazendo alguns teste para pode mesclar a Minigui com ela... Ai vai ser um Show à parte. Usar formulário do Delphi com ela eu nunca fiz, mas sei que consigo.
Passo cinco
O que eu ganho como modo texto no Linux?
Aqui está a grande vantagem e o que deixa o sistema Clipper atualizado enquanto exista o Linux. Simplesmente recompilando o seu programa para xHarbour modo texto, seu programa passa a funcionar como um SQL, pois todo o requerimento das estações é executado no servidor, ou seja tráfego de rede mínimo pois só andam na rede tela e teclado. O usuário roda o programa remotamente dentro do servidor, se houver queda de energia, como tudo está local ganhamos uma segurança maior, pois o sistema não será fechado bruscamente em toda a rede, Além também da segurança extra que o EXT3 nos dá por ter Journal, assim qualquer corrupção do sistema de arquivos é restaurada para o estado anterior. Assim o sistema funciona como um SQL onde tudo é processado no servidor, um computador comum como um PENTIUM 4 2.8 segura com folga uns 30 a 40 terminais logados nele... os bancos de dados ficam escondidos da rede, os usuários não ficam fuçando nos arquivos do servidor uma vez que só conseguem entrar no programa, entre outras vantagens... ainda pode-se usar libs gráficas, a Fivewin mesmo já tem uma versão par xHarbour+Linux, além de diversas libs como HWGUI e Minigui que são GPL. Mas isto é outra história.
Bom amigos, para não encher muita lingüiça, acho que isto dá para ter uma idéia....
Outra boa também é que se pode criar CGI com o xHarbour, aí a saída é para o internet explorer em formato HTM, veja um teste com a CGILIB que estou criando.
www.vagucs.com.br/cgi-bin/auto.exe
Omiti muita coisa aqui, isto foi um pequeno resumo, qualquer coisa mande-me um e-mail ou me ligue.
Nos tutoriais que acompanham o meu CD você consegue ter uma base de como rodar seu programa em Windows e Linux.
Sem mais
Wagner Nunes
www.vagucs.com.br
(33) 3314-2242