Make your own free website on Tripod.com

Linguagem de programação e ambiente de desenvolvimento

Para decidir qual a linguagem de programação a ser utilizada, vários fatores precisam ser considerados e ainda assim a escolha pode não ser a ideal. Entre as linguagens disponíveis para o Linux, estão o Kylix, Free Pascal, GNU Pascal, GNU C/C++ entre outras. O Kylyx, apesar de ter uma versão gratuita, não é um software livre[1] e então ele foi descartado.

Um dos grandes problemas na escolha da linguagem é que as linguagens propriamente não proporcionam um ambiente de desenvolvimento rápido nem rotinas que tratam do "desenho" das telas ou de acesso ao banco de dados de forma nativa. Em tempos onde a produtividade tem que ser maximizada, ter que se preocupar, além do layout das telas, em escrever todas as rotinas de manipulação de telas e dados, implica em uma perda de tempo muito grande por parte do programador. Considerando as linguagens de programação disponíveis para Linux, apenas o Kylix, que foi descartado, oferece esse tipo de facilidade ao programador.

Então o problema não é só a escolha da linguagem de programação, mas a escolha de um ambiente que proporcione ao programador uma maneira rápida de codificar o sistema. Felizmente, os desenvolvedores dos ambientes gráficos, como o Gnome e KDE disponibilizaram as bibliotecas para que os programadores de aplicativos pudessem utilizá-las em seus sistemas, liberando-os da tarefa de implementar rotinas para manipular janelas. Como foi escolhido o KDE, a linguagem escolhida foi o C++ utilizando o Qt como biblioteca básica para gerar a interface com o usuário.

Além de fornecer um conjunto completo de classes para manipular janelas, o Qt também oferece o Designer, um aplicativo que possibilita o desenvolvimento da interface com o usuário de forma visual, ou seja, é possível desenhar as telas sem precisar se preocupar como será o código fonte que será gerado para compilação.

Usando apenas o Qt e as ferramentas que ele disponibiliza, é possível gerar um sistema completo. No entanto, para desenvolver um sistema dessa forma, o programador precisa saber como utilizar todas as ferramentas para gerar o projeto completo. Além disto, ele também terá que saber trabalhar com Makefiles para adicionar outras bibliotecas (como as de acesso ao banco de dados) e para fazer a instalação do sistema.

Para que a programação seja feita de forma mais fácil e rápida, o programador deve concentrar todo seu trabalho no sistema modelado e detalhes básicos como manipular os Makefiles deveriam ser excluídos do escopo de seu trabalho. Na busca por facilitar o trabalho de programação, foram encontradas algumas ferramentas muito interessantes como o Anjuta, o KDevelop e o KDEStudio. O Anjuta foi descartado porque ele é próprio para desenvolver aplicativos para o Gnome e o ambiente escolhido foi o KDE. O KDEStudio é um ótimo candidato, mas ele não é disponibilizado em algumas distribuições Linux, o que restringe a sua utilização. A escolha então foi o KDevelop.

O KDevelop oferece bons recursos para auxiliar o programador a codificar o sistema. Ele é integrado ao Qt, e portanto é fácil acrescentar novas interfaces criadas com o Designer ao sistema que está sendo desenvolvido. Ele também é muito competente para trabalhar com classes oferecendo um navegador onde, ao clicar sobre o nome de um método ou atributo, o arquivo fonte correspondente é aberto na posição onde o elemento selecionado está definido. Com relação aos Makefiles, o KDevelop deixa para o programador apenas a tarefa de informar as bibliotecas que ele necessita e onde localizá-las. Ao acrescentar uma classe, ou uma biblioteca, o projeto é modificado para que os Makefiles sejam corretamente ajustados para compilar o sistema corretamente. Além dos recursos citados, o KDevelop ainda tem a grande vantagem de fazer parte do projeto KDE, e conseqüentemente está presente na maioria das distribuições Linux.

Resolvido o problema da interface, sobrou apenas a dificuldade de acesso ao banco de dados com o C++. Assim como nos ambientes gráficos, os sistemas gerenciadores de banco de dados, disponibilizam uma API[2] (Application Program Interface) nativa em C para ser usada no desenvolvimento de um sistema. Para usar essa API com o C++, deve-se informar no arquivo contendo o fonte qual o header contendo os protótipos das funções e, no KDevelop, qual a biblioteca necessária para compilar o aplicativo corretamente.

Finalmente, a escolha da linguagem C++ também sofreu influências do próprio Linux e seus aplicativos, a maioria escrita em C. Já que a grande maioria dos programadores Linux usam C, por que procurar outra linguagem? Além do mais o C vem acompanhando qualquer distribuição Linux do mercado.

Notas

[1]

Conforme a Free Software Foundation, o fato de o software ser gratuito não implica que ele seja livre. Para ser livre, o software precisa no mínimo ter o código fonte disponível, o que não acontece com o Kylix.

[2]

API é um conjunto de rotinas que permitem a utilização de um software ou componente de software. Assim, ao dizer que um sistema gerenciador de banco de dados disponibiliza sua API, significa que existe uma biblioteca que implementa as rotinas que devem ser usadas para ter acesso ao banco de dados.