quarta-feira, 17 de setembro de 2008

Programação jogada no ventilador

Imagine fazer com que um programa Java converse com uma rotina em Fortran. Parece a cena final do Star Trek I, com o computador da nave querendo "jogar uma idéia" na V'Ger...

Mas isso é possível, a princípio se voce chamar um intermediário, que nesse caso será o meu amigo C++... ou talvez o "primo-pobre" C, talvez cause menos problema com ambos os lados...

Então o programa Fortran será embalado pelo C/C++, fazendo o encapsulamento, podendo virar uma DLL. Daqui ele conversa com o Java, graças ao JNI, que é a possibilidade do Java ler código nativo.

Lembrando que o Java é uma linguagem interpretada e portável entre máquinas distintas, enquanto que o lado C /C++/ Fortran são compilados, não necessariamente funcionais em qualquer lugar.

Então você pergunta: "porque não faça o que você quer em um local só ?!?" porque quero aproveitar o melhor de cada um:
  • O Fortran é o cara para calcular (você pode dizer o mesmo do C++, mas quando você tem uma biblioteca pronta a sua disposição, ou simplesmente um código que levou anos para uma galera implementar, não é você que vai desenroscar)
  • O Java é o cara da apresentação: interface gráfica, web, XML... há bastante coisa pronta, e principalmente: a torcida é a das maiores.
Surgem outras dúvidas, para ambos os lados: tem gente com bibliotecas numéricas boas, e tem gente que é melhor em web... mas juntando todos os requisitos, qual é a melhor combinação? Se buscar pela melhor solução, não saio daqui hoje, então escolhi isto.

Agora o problema é implementar. o java chamará funções do fortran, vai passar estruturas de dados variadas, e hoje em dia tem que haver um tratamento de exceção, coisa que até hoje não tem no fortran (horror, horror), ou seja, quando trava, é rosca, sem aviso prévio.

Felizmente existem tutoriais, que abordam um pedaço de cada coisa. Um exemplo é o http://www.csharp.com/javacfort.html

Um comentário:

  1. Manso, fala sério. Converte essas rotinas de Fortran em C++ logo. Vai ficar embromando com essa merda desse Fortran até quando? Isso MORREU.

    Engenheiro é foda.

    []s,
    Manel.

    ResponderExcluir