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.
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.
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
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
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
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...