JABACO => Java + Visual Basic 6

Neste artigo apresentarei a ferramenta JABACO, uma RAD muito parecida
com a ferramenta VB6 da Microsoft, porém suporta a sintaxe Basic e Java associadas no
mesmo projeto. Iremos tratar aqui pontos positivos e negativos do JABACO e também um
sistema de exemplo com código fonte aberto, direcionado ao mundo jurídico.

[ Hits: 8.123 ]

Por: Alexandre Novaes Iosimura em 22/05/2011


Definições da ferramenta



Quem é o JABACO?

O Jabaco é uma interface de programação orientada a objetos (JAVA) que suporta a sintaxe de programação do Visual Basic 6 (são bem similares na proposta visual) e também a sintaxe JAVA. O Jabaco permite que você crie um poderoso software Java para mult-plataforma e conecte-se a diversos bancos de dados através dos conectores JAVA.

Você escreve o código-fonte com a sintaxe semelhante ao VB6 e com a RAD Jabaco você pode compilar para bytecode, que é uma saída semelhante à saída da linguagem de programação Java, podendo gerar tanto um executável como um arquivo JAR do programa criado. Possui a função auto completar, destaque de código, navegação de objeto, um editor gráfico e outras modernas propriedades que irão apoiá-lo em suas tarefas.

A ferramenta pode ser entendida também como uma framework de desenvolvimento e possui características bem aproximadas do VB6, como exemplo um depurador (debug) em tempo de execução.

As diferenças

O resultado certamente não é o mesmo que obtemos no VB6. O arquivo (executável) é gerado sem a excelente otimização que temos no VB6, logo a preferência é compilar para o formato JAVA (jar), onde o arquivo JAR gerado é extremamente pequeno.

O Jabaco cria formato bytecode, que é muito rápido e funciona bem em muitos sistemas operacionais, logo seu sistema será multi-plataforma e atualmente tenho feitos pequenos testes no Android. Ainda assim a maior parte da sintaxe é semelhante ao Visual Basic o que facilita muito para quem trabalha ou já trabalhou com a sintaxe BASIC.

Por exemplo, Jabaco é totalmente orientado a objetos, ele suporta threading e alguns outros desenvolvimentos modernos - eu consegui integrar algumas coisas nele melhor do que em outras RAD's. Existem algumas limitações no produto, mas há mais possibilidades que problemas utilizando o bytecode java.

Talvez um ponto negativo da RAD seja funcionar somente na plataforma Microsoft Windows, porém os programas gerados a partir dela operam sobre o Linux e Windows sem nenhum problema.

Distribuições dos Programas (Fazer o Deploy)

Podemos pegar uma carona no recurso JAVA WEBSTART e distribuir o sistema criado via web site (intranet/internet), bastando somente assinar o arquivo JAR gerado com uma chave de segurança e criando um arquivo JNLP para distribuir pela rede.

Resumindo

A pergunta que fica é: "Será que agora estamos livres para programar para distintas plataformas?" Vamos aproveitar esta oportunidade?

Desenvolvendo um programa (estudos)

1) Atentar pra alguns pontos importantes: a) Fazer a referência do componente Mysql quando for utilizar o banco de dados Mysql, faça o mesmo para outros bancos baixando o respectivo pacote da internet.

b) Exemplos de implementações (códigos) podem ser encontrados em www.jabaco.org.

2) Teste "Hello World":

Adicione um botão no seu formulário, duplo click no objeto e insira o seguinte código:

MsgBox  "Olá Mundo é a implementação funcional mais básica de todo artigo sobre programação",
vbExclamation

3) Exemplo de função para a conexão e desconexão com banco de dados Mysql:

Public Function Conectar_Banco(Servidor As String , Porta As String , Banco As String , Usuario As String ,
Senha As String ) As Boolean
   Dim driver As Class
   driver = Class.forName("com.mysql.jdbc.Driver")
   If driver = Nothing Then MsgBox "Classe MySql para Java Não encontrada !!!", vbExclamation
   If Conector.Connect("jdbc:mysql://" & Servidor  & ":" & Porta  & "/" & Banco  , Usuario , Senha) Then
      Conectar_Banco = True
   Else
      MsgBox "Erro durante a conexão com o banco de dados !!" , vbCritical
      Conectar_Banco = False
   End If
End Function

Public Function Desconectar_Banco()
   On Error Goto err
   Conector.Connection.close
   Exit Function
Err:
   Trata_Erro(Err)
End Function

'Função que trata os erros das funções (Visualmente mais limpo)
Public Function Trata_Erro(MsgErro)
      Select Case Str(Trim(MsgErro))
         Case "java.lang.NullPointerException"
            MsgBox "Erro de ponteiro." & vbCrLf & "Java Message(" & MsgErro & ")"
      End Select
End Function

4) Criando seu sistema, colaborando com um projeto ou simplesmente estudando:

Você pode baixar o código fonte do sistema Jurídico Net para aprender tudo sobre o carregamento de objetos com dados de uma base Mysql ou mesmo implementações de códigos avançadas que reduzem o tempo de desenvolvimento. Também pode utilizar este código base para criar um novo produto a partir do Jabaco, seguindo o código praticado no projeto Jurídico Net. Visite o site www.juridiconet.org e baixe o código fonte para estudar, contribuir ou desenvolver seu próprio sistema.

Grande abraço a todos.

Alexandre Novaes Iosimura
Analista  / Programador
E-Mail: alexandre.iosimura@gmail.com
MSN: landesksp@hotmail.com

   

Páginas do artigo
   1. Definições da ferramenta
Outros artigos deste autor

Firewall admin: administração do iptables

LTSP - Linux Terminal Service

Criando rotas via iptables para acesso remoto com VNC

Leitura recomendada

Testes unitários em Java com JUnit

GCJ – Conhecendo o compilador Java Livre

Desenvolvendo aplicações Web 2.0 com Java e AJAX (FrameWork DWR)

Linux + Rails + Ruby + Mongrel + PostgreSQL + NetBeans 6 Preview

Java Native Interface

  
Comentários
[1] Comentário enviado por bolche em 23/05/2011 - 00:52h

"O arquivo (executável) é gerado sem a excelente otimização que temos no VB6"
Isso foi ironico. certo? O VB gerava um p-code bem porco. Me lembro de comparar a performance e o tamanho entre programas VB e Delphi e o Delphi ganhava de longe...

De qualquer maneira, este projeto parece bem interessante! Uma pena que o compilador só funciona no Windows... se não eu poderia olhada...

[2] Comentário enviado por cruzeirense em 23/05/2011 - 09:14h

bolche,

Acho que ele quis dizer que o executável gerado pelo vb roda melhor do que o arquivo jar.
Outra possibilidade é a questão do vb.net e as últimas verões do visual studio, posteriores a versão 6. Realmente o executável gerado é muito bom e em alguns casos se compara ao executável gerado pelo visual c++.
Em relação ao artigo, achei a proposta excelente. Uma possibilidade simples de desenvolver programas comerciais mais simples para o linux.

Parabéns pelo artigo!

Renato

[3] Comentário enviado por cruzeirense em 23/05/2011 - 09:22h

Volto aqui depois de instalar a ferramenta.

Fiz um simples "Olá mundo" e funcionou como esperado.
A interface é realmente bem parecida com a do vb6.
A linguagem também...

Abraços,

Renato

[4] Comentário enviado por removido em 26/05/2011 - 17:45h

Sinceramente, não me agrada uma ferramenta "for windows" nesta seção. A não ser que a licença dela seja GPL.

Procuramos ferramentas GPL para desenvolver. Eu troquei definitivamente o windows pelo linux e não sinto nenhuma falta de nada.

Vamos ser livres !!

[5] Comentário enviado por iosimura em 27/05/2011 - 12:42h

Fala PESSOAL !!!!

Primeiro lugar agradeço a todos os comentários e críticas e vou responder neste POST a maioria ok ?

BOLCHE, vou tentar explicar melhor:
Independente de otimização no VB6 ele sobrevive no mundo corporativo mais que você possa imaginar em legados de aplicações que dificilmente serão migradas, ainda nos próximos anos, feliz ou infelizmente isso depende da visão de cada gerente, de cada empresa e do tamanho de cada projeto. O Jabaco gera um BitCode (p-code) mais porco ainda, não digo igual ao VB6 porque quem fez MCP sabe como otimizar código gerado pela RAD; No jabaco a coisa é feia mesmo quando falamos em executáveis Windows, tanto que o executável de um formulário JABACO com um único botão chega a ter 1 Mega. Sim, isso é sem dúvida impraticável. Mas quando geramos arquivos JAR, a coisa fica bonita, o produto final fica leve e versátil porque roda mult-plataforma !!! Isso ai meu amigo, mais uma vez obrigado pelo seu comentário.

Cruzeireinse, vide comentário supra sobre executável, e foi excelente sua frase sobre "Uma possibilidade simples de desenvolver programas comerciais mais simples para o linux." Realmente, pactuo com esta afirmação porque o que falta hoje para o linux vingar no Brasil são sistemas pequenos que funcionem bem na plataforma, sem exigir conhecimento extensivo e que cumpra funções básicas empresariais, como emissão de NF, cadastros, controles, financeiro, RH enfim... e acredito que jabaco dá suporte pra quem vem da linhagem BASIC para transformar essa carência em oportunidade de negócios.

Hags, eu não vou comentar seu post como eu gostaria para evitarmos embates e discussões que só gastam caracteres ok ? Você falou no post somente daquilo que cerca seu mundo, você, seu computador e seus interesses. Ser livre é importante, ser flexível mais importante ainda e não rotular, demarcar e negar as coisas simplesmente porque elas não são exatamente como queremos faz parte de um mundo realmente LIVRE.

Sobre:
...GPL, nem desenvolvedor diz se é ou não, eu mesmo tentei contato com ele algumas vezes para falar sobre alguns assuntos e nunca obtive um retorno, não dá pra saber nem se o Manuel esta vivo ou não.
...Rodar o Jabaco no linux, é possível sim utilizando o wine, desta forma vocês podem testar a ferramenta sobre a plataforma linux.
...Ser GPL é maravilhoso, mas vamos lembrar que ao desenvolver um sistema incorporamos mais que ferramentas, incorporaram propriedade intelectual sobre uma atividade mercantil, sigilo sobre técnicas que levaram meses ara serem concebidas e vezes informações que fazem a nossa diferença dentro de um mercado tão competitivo e quando não protegemos uma parte do contexto também não garantimos "o leitinho das crianças". Pensem nisso.

Abraços a todos e qualquer dúvida podem me adicionar no MSN para dúvidas e sugestões.

[6] Comentário enviado por cruzeirense em 27/05/2011 - 13:40h

iosimura

"...Ser GPL é maravilhoso, mas vamos lembrar que ao desenvolver um sistema incorporamos mais que ferramentas, incorporaram propriedade intelectual sobre uma atividade mercantil, sigilo sobre técnicas que levaram meses ara serem concebidas e vezes informações que fazem a nossa diferença dentro de um mercado tão competitivo e quando não protegemos uma parte do contexto também não garantimos "o leitinho das crianças""

É da natureza humana proteger as suas propriedades. Pessoas colocam cercas elétricas em casas, alarmes nos carros, contratam empresas de segurança, isso é normal e necessário.
Acho que todos tem direito de proteger sua propriedade intelectual também, mesmo porque o conhecimento é o bem mais valioso que temos. Não é uma coisa que se ganha, temos que conquistar.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts