Para desenvolver aplicativos normalmente fazemos uso de uma grande quantidade de ferramentas de programação, muitas vezes dispostas em kits, frameworks ou plataformas de desenvolvimento.
Como exemplo de plataformas de desenvolvimento temos o .NET e a linguagem JAVA combinada com uma das muitas ferramentas de edição de interface e de código disponíveis.
Para o desenvolvimento de software para as plataformas Windows, Linux, BSD, Mac OS e Unix temos a plataforma de desenvolvimento GNU, que é constituída de uma coleção de projetos de software livre mantidos pela
Free Software Foundation e desenvolvedores que colaboram através da internet. Os principais componentes dessa plataforma estão referenciados em
http://library.gnome.org/devel/references.
A
plataforma GNU não esta associada a nenhuma linguagem de programação em particular: as ferramentas de programação são desenvolvidas em linguagem C e têm ligações para a maioria das linguagens, incluindo C# (mono), C++, Java, PHP, Perl, Python, Ruby e várias outras.
Ela reúne todos os recursos que um conjunto de ferramentas deve conter para ser chamado de plataforma de desenvolvimento: editor de código, editor gráfico de interfaces, compilador, depurador etc, além de um conjunto de bibliotecas facilitadoras para as necessidades de desenvolvimento mais comuns.
Atualmente a plataforma GNU é completa, estável, rica em recursos, mas nitidamente ainda é pouco utilizada para desenvolvimento de aplicativos de acesso a banco de dados, mesmo entre os desenvolvedores de software livre: uma pesquisa no Google pela palavra chave "GDAMM", o nome de umas ferramentas da plataforma de desenvolvimento, em janeiro de 2009, antes da publicação deste artigo, não retornava nenhuma ocorrência em língua portuguesa e muito poucas em língua inglesa.
Isso não deve, entretanto, perdurar por muito tempo. Os projetos que compõem o ambiente GNU estão sendo melhorados continuamente e, como acontece com as plataformas e aplicativos livres, sua popularidade deve continuar a crescer nos próximos anos. É provável que dentro de algum tempo a plataforma GNU venha a ter alguma representatividade entre os ambientes de desenvolvimento populares.
Considero que para todos os ambientes de desenvolvimento deve haver compiladores ou interpretadores, depuradores, editores etc. Por isso, entre todos os componentes que compõem uma plataforma de desenvolvimento, estamos interessados em especial no conjunto de bibliotecas para programação que o ambiente oferece, o resto é "bobagem".
As funcionalidades presentes no ambiente GNU são muitas, incluindo bibliotecas thread-safe e multiplataforma para algoritmos genéricos, threads, XML, unicode, arquivos e outras utilidades (GLIB); tratamento de imagens gráficas (CAIRO), criação de interfaces gráficas (GTK+), acesso a banco de dados (GDA), comunicação interprocesso (D-BUS e BONOBO) e web services (LIBSOUP).
Nas próximas seções vamos conhecer os componentes do ambiente GNU essenciais para a criação de aplicativos e, para tanto, vamos estudar a aplicação genérica de cada uma das funcionalidades necessárias para construir aplicativos de acesso a banco de dados.
Utilizaremos do ambiente GNU: um aplicativo chamado GLADE para desenhar a interface; o toolkit GTKMM para programá-la; os componentes da biblioteca GNOME-DB para integração com o SGBD; o compilador GCC para compilar e linkar; o editor de código Anjuta para escrever o código.
Foram utilizadas as seguintes versões:
- GLIB 2.22.0, GLIBMM 2.22.0, GTK+ 2.16.5, GTKMM 2.12.8,
- GDA 3.1.2, GDAMM 3.0.0, GNOME-DB 3.1.2, GNOMEDBMM 2.9.5
Não foi utilizada a biblioteca GDA na versão 4 porque, ao tempo da redação deste, a ligação em C++, GDAMM, estava incompleta e sem uso possível para as funcionalidades utilizadas aqui. Deve ser lembrado, entretanto, que a versão de referência para novos projetos deve ser a versão 4, se possível.
O conhecimento da linguagem C++ e da arquitetura MVC é pré-requisito para o estudo deste documento.