Com o passar dos anos, verificou-se que simplesmente utilizar o C não tornava um aplicativo multi-plataforma. Várias diferenças de arquiteturas de hardware e de bibliotecas tornavam a portabilidade um pesadelo.
A Sun lançou o Java como sendo a solução definitiva para o problema de portabilidade. Write once. Run Everywhere é o lema. De fato, Java é uma excelente linguagem que quase que elimina todos os problemas de portabilidade.
Como isso é conseguido? Ao invés de gerar um binário compatível com o processador (que é o que todas as linguagens compiladas fazem), o Java gera um pseudo-código: os byte-codes.
Este código é interpretado por uma máquina virtual java (jvm).
A máquina virtual Java (desenvolvida em C) é um programa compilado especificamente para a plataforma em que será executada.
É responsabilidade máquina virtual interpretar os byte-codes e executar as operações para o programa em java. Para cada nova plataforma, basta o desenvolvimento da nova jvm pelo fabricante e nossos códigos em Java podem ser executados, sem nenhum esforço adicional do programador.
Apesar desta solução ser ideal para a maioria dos casos, às vezes ela não é conveniente. Há vários motivos para que alguém não queira ou não possa programar em Java:
- desconhecimento da linguagem
- necessidade de rodar o programa em máquinas mais antigas, onde há sérias restrições de memória e processador
- desejo que o programa tenha a mesma aparência que os aplicativos nativos.
- ser rápido
- programação fácil
- fácil portabilidade
- mesma aparência que aplicativos nativos
- baixo custo
A velocidade é obtida por duas coisas:
- a biblioteca é implementada em C / C++, ou seja as mais rápidas linguagens de programação são utilizadas.
- Não existe um interpretador (como acontece com o Java).
Epa! Se o código é em C, então ele é nativo. Como que pode ser portável?
Todas as classes disponibilizadas pelo wxWidgets são implementadas com as bibliotecas nativas de cada plataforma.Por exemplo, no MS Windows, as bibliotecas usam o SDK WIN32. No Linux, usam o GTK+.
Deste modo, o código fonte é sempre o mesmo. O desenvolvedor só precisa recompilar o programa na plataforma de seu interesse. Esta abordagem permite ao aplicativos desenvolvidos com wxWidgets terem a mesma cara dos outros programas, sem nenhum esforço extra.
Você programa para várias plataformas diferentes sem ter que aprender classes diferentes para cada uma delas. Além disso, a licensa do wxWidgets permite que você desenvolva aplicativos comerciais sem necessidade de pagar royalties e sem precisar liberar o código fonte.
Vou escrever mais sobre o wxWidgets (e sobre Java também), para tentar te mostar como funciona esta framework e como portar um aplicativo feito com a MFC da Microsoft.
Quer saber mais? Leia o livro do Julian Smart, principal desenvolvedor do wxWidgets.
Nenhum comentário:
Postar um comentário