Вы находитесь на странице: 1из 6

Ferramentas de desenvolvimento

Anlises

Ambientes de Desenvolvimento e ferramentas para construo e migrao de aplicaes

Ferramentas poderosas
Letras brancas sobre fundo preto podem ainda ser o ambiente de desenvolvimento preferido dos hackers, mas o Linux no se limita apenas s ferramentas tradicionais. Conhea diversos programas criados para atender s mais variadas expectativas dos desenvolvedores mais exigentes e descubra como eles podem auxiliar em seus projetos.
Por Rodrigo Domingues
www.sxc.hu

pesar de se ater a uma losoa simplista, as ferramentas de desenvolvimento presentes nas diversas distribuies Linux possuem recursos sucientes para a produo de aplicaes complexas. Porm, para projetos maiores, o uso apenas dos editores de texto, das regras de gerenciamento de compilao e de um ou mais compiladores fazem com que a produtividade geralmente no seja a esperada. Esse tem sido o constante argumento de desenvolvedores de aplicaes comerciais para evitar o uso do Linux, preferindo se concentrar em ferramentas mais sosticadas rodando em sistemas proprietrios, capazes de gerenciar mltiplos projetos ou at mesmo de auxiliar na produo de cdigo. Embora j existam, h algum tempo, ferramentas mais avanadas de gerenciamento de projetos, muitas delas requerem conhecimento de um conjunto de regras de denio, processo que tende a afastar desenvolvedores estes desejam se concentrar nas tarefas essenciais, ou seja, produzir. Com a idia tanto de facilitar o processo de produo quanto de atrair desenvolvedores de aplicaes para outros sistemas, contribuidores de diversos projetos de software livre tm unido foras para implementar e disponibilizar ferramentas avanadas que compatibilizem ou compitam com as ferramentas comerciais existentes, tornando o processo de migrao mais dinmico e rpido, conquistando desenvolvedores de todos os tipos de linguagens de programao.

Este artigo apresenta algumas dessas ferramentas, classicando-as quanto ao tipo e linguagem de programao. Descrevemos aqui solues desde ambientes integrados de desenvolvimento (IDEs) para as linguagens C/C++, Java, Python e Mono a ferramentas RAD (Rapid Application Development, ou Desenvolvimento Rpido de Aplicativos) que se utilizam das linguagens Object Pascal e Basic, em ambientes similares a produtos comerciais como o Delphi e o Visual Basic.

Anjuta
Desenvolvido para o Gnome utilizando a biblioteca GTK, o Anjuta foi um dos primeiros IDEs para o Linux. Com a nalidade de facilitar o desenvolvimento de aplicaes em C/C++ (por prover um mtodo automtico de congurao da ferramenta make, til para a construo do aplicativo), ele incentivou diversos programadores a auxiliar no desenvolvimento do projeto. Com um editor de textos integrado e customizvel, o Anjuta foi a primeira ferramenta a apresentar o recurso de ocultar ou exibir blocos de cdigo (laos, condies, sub-rotinas e classes) com o intuito de facilitar a leitura de um programa. Sua integrao com a ferramenta Glade, utilizada para projetar os formulrios, janelas e toda a parte visual da interface com o usurio uma vantagem nas verses atuais. Entretanto, ele ainda no pode ser considerado uma ferramenta RAD, como o Lazarus ou o Gambas, analisados mais ao nal.

setembro 2005 www.linuxmagazine.com.br

edio 12

61

Anlises

Ferramentas de desenvolvimento

KDevelop
Seguindo a mesma linha de raciocnio que o Anjuta, o grupo responsvel pelo ambiente de trabalho KDE lanou o projeto KDevelop, que comeou na obscuridade mas depois ganhou diversos adeptos devido s suas vrias ferramentas. Assim como o Anjuta, ele possui um editor de cdigo integrado e customizvel, recursos para vericao de classes, variveis, macros e estruturas, ocultao e exibio de blocos de cdigo, depurador integrado e muito mais. Porm, o que torna o KDevelop especial a sua capacidade de gerenciamento de projetos em diversas linguagens de programao, tais como Python, Java, Ruby, Fortran, Haskell, Perl, Shell Scripts e diversas outras. O sistema de congurao de projeto para especicao de bibliotecas ligeiramente mais simples que o do Anjuta devido aos rtulos indicados nas abas. Com uma interface totalmente remodelada a partir da verso 3.0, o KDevelop apresenta um ambiente mais agradvel e de fcil utilizao, o que no ocorria em verses anteriores. Duas caractersticas interessantes em relao ao KDevelop so a capacidade de reuso de cdigo atravs dos Snippets, trechos de cdigo rotulados que, com um duplo clique, so adicionados automaticamente ao programa, e os frameworks de projetos, que conguram automaticamente as bibliotecas bsicas para sua aplicao sem que seja estritamente necessrio recorrer aba de congurao de projeto, caso o projeto no utilize bibliotecas adicionais. Esses frameworks, como demonstrado na gura 3, disponibilizam conguraes automticas para projetos voltados tanto ao KDE quanto ao Gnome, e ainda disponibilizam projetos para sistemas externos, como aplicativos para Windows (Win32),

Figura 1: O ambiente de desenvolvimento Anjuta e o editor integrado demonstrando a ocultao de cdigos e o navegador de classes. Ele oferece recursos de auto-completar, que permitem que os mtodos e atributos de um objeto possam ser consultados em tempo de desenvolvimento sem que o programador necessite recorrer a um manual ou descrio de uma API, alm de recursos de dicas (hints) para exibir os atributos necessrios para se chamar uma sub-rotina de C/C++ criada no projeto ou nativa do sistema. Sua capacidade de exibio de estruturas, funes, variveis, macros e classes presentes no projeto, bem como das descries de atributos e seus mtodos, dentre muitos outros recursos interessantes, so essenciais para facilitar o desenvolvimento de aplicativos complexos. Sua integrao com o popular e poderoso Gnu Debugger (GDB) facilita a depurao de aplicaes, auxiliando na identicao de erros e no acompanhamento do procedimento de execuo da aplicao, j que capaz de observar os valores de variveis vigiadas (watch). A curva de aprendizado na utilizao do Anjuta suave, ou seja, uma vez que se est familiarizado com sua interface, a congurao dos projetos e o uso da ferramenta torna-se um processo praticamente trivial, proporcionando um aumento na produtividade e garantindo qualidade no processo de desenvolvimento da aplicao. Apesar dessa mirade de vantagens, o Anjuta possui a desvantagem de no ter, integrado ao programa, um sistema de documentao sobre o prprio ambiente, sendo necessrio recorrer aos documentos externos para poder aprender a oper-lo. Alm disso, ele tambm s capaz de gerenciar projetos escritos em C ou C++, apesar de realizar marcao de sintaxe (syntax highlighting) em programas escritos em outras linguagens, como Pascal, Java ou Perl.

Figura 2: O Ambiente KDevelop. Assim como o Anjuta, com o editor integrado, demonstra a ocultao de trechos de cdigo e o navegador de classes.

62

setembro 2005

edio 12 www.linuxmagazine.com.br

Ferramentas de desenvolvimento

Anlises

utilizando o MingW, e at mesmo para o GameBoy Advance, integrando o emulador VisualBoy Advance como ferramenta de execuo e vericao do cdigo. Sua integrao com os aplicativos Glade e QtDesigner para a produo de interfaces grcas (GUI) para aplicaes baseadas nas bibliotecas GTK e Qt, respectivamente, outro fator que pesa bastante a favor dessa IDE. Ela tambm possui um sistema integrado de documentao de seus recursos, tornando-a uma das ferramentas preferidas dos desenvolvedores; Tudo isso lhe garantiu ttulos de melhor ambiente de desenvolvimento por trs anos consecutivos em vrias publicaes e premiaes internacionais nas reas de Software Livre ou Open Source. De acordo com o site ocial, apesar da verso 3.1 possuir apenas a interao com os editores de interface, a verso 3.2.x j possui uma ferramenta RAD para desenvolvimento, nos estilo do Visual Basic ou Delphi, o que pode lhe garantir um quarto ano consecutivo de premiaes.

Figura 4: O Editor de Interfaces Integrado, uma facilidade para desenvolvedores de aplicaes grcas.

NetBeans
Desenvolvido em Java, o NetBeans um ambiente de desenvolvimento Open Source produzido pela Sun Microsystems que tem como objetivo se tornar uma ferramenta RAD (Rapid Application Development) para desenvolvimento de aplicativos Java nos mesmos moldes de seu principal concorrente, o produto proprietrio JBuilder, da Borland. Ele possui um sistema de gerenciamento de projetos atravs da "montagem" de diretrios, como nos sistemas de arquivos tradicionais do Linux, permitindo o desenvolvimento concorrente ou seja, mais que um programador pode trabalhar simultaneamente em um mesmo arquivo.

Seu editor de textos integrado oferece os recursos de completar automaticamente trechos de cdigo, visualizar mtodos e atributos de objetos, identao de cdigo e identicao, em tempo de programao, dos trechos de cdigo que possuem erros, o que aumenta a produtividade do programador. Assim como as IDEs apresentadas anteriormente, o NetBeans tambm possui visualizador de classes e ferramenta para auxiliar na criao delas; porm, seu diferencial, como demonstrado na figura 4, est no editor integrado de interfaces, que gera automaticamente um cdigo limpo e de fcil compreenso para leitores de cdigo em texto puro, caracterizando-o tanto como uma til ferramenta RAD, quanto como um convel framework para produo de interfaces. Alm das funcionalidades de edio de cdigo, possui recursos de depurao, desenvolvimento de aplicaes web utilizando Java Server Pages(JSP's) ou Servlets atravs do servidor Tomcat e, em uma verso especca, funcionalidades para desenvolvimento de aplicaes mveis, alm de recursos de anlise de cdigo atravs de tcnicas de engenharia de software, ferramentas de banco de dados e de cdigos XML. E, por ser desenvolvido em Java, apesar de sua performance poder deixar a desejar quando utilizado em mquinas mais antigas, uma ferramenta expansvel e pode ser encontrada em verses para diversas plataformas.

Eclipse
Figura 3: Os diversos projetos j congurados para o KDevelop. A quantidade razoavelmente impressionante. O projeto Eclipse foi iniciado em 1999 pela IBM para servir como um ambiente para produo de ferramentas de desenvolvimento que pudessem ser executadas em diversos sistemas operacionais, tanto em interface grca quanto no console,

setembro 2005 www.linuxmagazine.com.br

edio 12

63

Anlises

Ferramentas de desenvolvimento

Figura 5: O Ambiente Eclipse utilizando uma losoa de neutralidade de linguagem, de maneira a permitir criar ferramentas em quaisquer linguagens que se desejasse. Devido a essa losoa, o projeto tem se tornado uma plataforma universal para a integrao de ferramentas de desenvolvimento. Apesar de trabalhar diretamente com Java, a arquitetura do Eclipse desenvolve o conceito de plugins, nos quais o desenvolvedor implementa a ferramenta necessria para seu projeto e a incorpora ao sistema; isso o caracteriza como expansvel e auto-congurvel, permitindo, inclusive, o desenvolvimento de plugins proprietrios para comercializao. Sua interface bsica, demonstrada na figura 5, possui um editor de textos integrado, um visualizador de informaes de classes, um visualizador e editor de documentao, um sistema de auxlio criao de classes e um ambiente de execuo Java nativo. Este pode compilar aplicaes Java em tempo de desenvolvimento, permitindo identicar erros ou falhas em tempo de programao, assim como no NetBeans. Atualmente o Eclipse um projeto Open Source que recebe contribuies de uma grande comunidade dedicada no somente a manter o sistema, mas tambm a lev-lo a um patamar de qualidade e funcionalidade ainda no alcanado pelas outras ferramentas de desenvolvimento. Entretanto, grande parte do sistema Eclipse desenvolvido em Java, o que pode levar a problemas de desempenho, principalmente quando executado em mquinas antigas.

ser o melhor ambiente de desenvolvimento C# e Mono para ambientes Linux, conquistar desenvolvedores ativos da plataforma .NET no ser uma tarefa to rdua quanto se previa. Ainda em seu estgio inicial, o projeto MonoDevelop est sendo desenvolvido utilizando-se a biblioteca GTK#, uma verso da biblioteca GTK, do Gnome, para o C#. Apesar de ainda no haver uma ferramenta de edio de interfaces com o usurio (entretanto, possvel usar o Glade), h a previso para a incorporao de uma ao sistema. Dentre seus recursos, possui um editor de cdigo integrado (veja gura 6), capaz de auto-completar funes nativas e pr-denidas e tem ferramentas de congurao, depurao e gerenciamento de cdigo, alm de ferramentas de visualizao de informaes do projeto, como consulta s classes e rotinas. Seu sistema de ajuda com documentao tanto para C# quanto GTK# est completo e integrado ao cdigo, proporcionando facilidade de consulta pelo desenvolvedor.

Desenrolando o Python
Para aqueles que querem se iniciar na arte de programao, ou para aqueles que buscam uma tima ferramenta de scripting para integrao com cdigos compilados, a linguagem Python tem se provado ecaz em sua tarefa: ser simples, funcional e prover extensibilidade s aplicaes. Com tantas vantagens, essa linguagem no poderia deixar de ter seus ambientes de desenvolvimento. Um deles a verso 3.0 do editor Idle, um ambiente de desenvolvimento bastante funcional para o que a linguagem se prope. Apesar de simples, o Idle possui marcao de sintaxe, indentao automtica e vericao e execuo do cdigo em um shell Python integrado. Para os mais exigentes, existem diversas IDEs que auxiliam no desenvolvimento em Python. O KDevelop uma boa alternativa; porm, algumas IDEs oferecem recursos adicionais, como por exemplo, a Boa Constructor (uma brincadeira com Boa

MonoDevelop
Um dos mais controversos no movimento Software Livre, o projeto Mono est ganhando a conana dos desenvolvedores. Com o ambiente de desenvolvimento MonoDevelop, que se prope a Figura 6: O Ambiente MonoDevelop, desenvolvido com Mono e GTK#

64

setembro 2005

edio 12 www.linuxmagazine.com.br

Ferramentas de desenvolvimento

Anlises

Figura 7: O ambiente de desenvolvimento Boa Constructor Constrictor, famlia qual pertencem cobras como as Jibias e Ptons), demonstrada na figura 7, que oferece um visualizador de diagramas de classes importadas (utilizadas), editor de documentao, depurador integrado e editor de interfaces usando WxPython (figura 8), dentre outras. Outra ferramenta bastante comentada dentre os desenvolvedores Python a Eric3, a qual, com exceo do editor de interfaces, possui todas as funcionalidades da Boa Constructor e ainda tem recursos de engenharia de software, tais como um gerador de diagramas UML (figura 9), ferramentas integradas para anlise de cdigo com a metodologia de UnitTest e ferramentas para manuteno ou atualizao (refactoring) de cdigo.

o usurio aliada a uma linguagem de programao de fcil aprendizado, o Object Pascal. Nos anos seguintes a mesma Borland lanou o Kylix, um ambiente semelhante e compatvel com o Delphi para sistemas Linux. Seguindo a mesma losoa de facilidade de produo do ambiente grco (gura 10), aliada facilidade de programao, o grupo desenvolvedor do Free Pascal Compiler disponibilizou o Lazarus, um ambiente de desenvolvimento RAD livre e compativel, em quase sua totalidade, com os sistemas desenvolvidos em Delphi. A ferramenta possui as mesmas caractersticas de seu equivalente proprietrio: um editor de cdigo integrado, destaque de sintaxe para a linguagem Pascal, sistema de depurao e visualizador de propriedades de classes e componentes. O editor de janelas e formulrios e o sistema de criao e incluso de componentes so bastante atraentes. Com tudo isso, o Lazarus prova que ferramentas livres tambm possuem qualidade suciente para o desenvolvimento rpido de aplicaes. Para usurios de Delphi, desenvolver em Lazarus ser tarefa trivial: a metodologia de desenvolvimento a mesma, pois os recursos utilizados na equivalente comercial esto todos disponveis, como abas contextualizadas de componentes nas categorias de banco de dados, formulrios, rede, multimdia etc. Estes componentes so utilizados e programados da mesma maneira que no Delphi.

Gambas
O Gambas um ambiente de desenvolvimento RAD que se prope a competir com o Visual Basic. Livre, essa plataforma tem sido a preferida pelos desenvolvedores de software de automao comercial para a produo de verses Linux de seus aplicativos.

Lazarus
Quando surgiu no Brasil, a ferramenta RAD Delphi, da Borland, tornou-se padro nacional para desenvolvimento de aplicativos comerciais devido facilidade de produo da interface com

Figura 8: O editor de GUI integrado ao Boa, um diferencial em relao a outras IDEs Python

Figura 9: O Visualizador e Gerador de Diagrama UML do Eric3, com recursos de Engenharia de Software

setembro 2005 www.linuxmagazine.com.br

edio 12

65

Anlises

Ferramentas de desenvolvimento

Figura 10: O Ambiente de Desenvolvimento Lazarus, liberdade para desenvolvedores Delphi.

Figura 11: O Ambiente Gambas de desenvolvimento. Facilidade de migrao aos desenvolvedores acostumados ao Visual Basic.

Com uma interface de desenvolvimento semelhante do Visual Basic (gura 11), contendo o editor de textos com o seletor/navegador de funes ou sub-rotinas, o visualizador de propriedades de componentes, a janela principal contendo o navegador do projeto e a janela de formulrio, aliadas a uma linguagem essencialmente similar utilizada na ferramenta proprietria da Microsoft, o Gambas oferece pouqussima diculdade de adaptao para os desenvolvedores acostumados com o Visual Basic. Para produzir uma aplicao simples, como as que os livros bsicos apresentam, procede-se de maneira similar do Visual Basic. S necessrio car atento a alguns pequenos detalhes que, certamente, no causaro problemas, mesmo aos desenvolvedores autodidatas. Alm dos recursos tradicionais, o Gambas possui componentes para acesso e manipulao de banco de dados, recursos multimdia, leitura e escrita a recursos de rede, dentre outros essenciais para o rpido desenvolvimento de uma aplicao de complexidade baixa a mdia. Alm do Gambas, existem duas outras ferramentas com recursos similares aos disponveis no Visual Basic. So elas o hbasic e o kbasic. O ltimo se prope a ser 100% compatvel Rodrigo Domingues (ou Spy) mestre em Computao Grca pela Universidade Federal de So Carlos e entusiasta do Linux desde 1997. Atua como consultor, prestando servios em projetos de pesquisa e desenvolvimento para empresas e laboratrios universitrios, professor no curso de Planejamento e Design de Games nas Universidades Anhembi-Morumbi e se parece com Zaphod Beeblebrox.

com a ferramenta da Microsoft, permitindo que aplicaes sejam migradas sem diculdades ou sem a necessidade de alterao de cdigo, apesar de ainda estar em desenvolvimento, mais precisamente na primeira verso beta. As IDEs e ferramentas de desenvolvimento para Linux tiveram um avano signicativo nos ltimos anos. A ateno em manter a metodologia de desenvolvimento ou prover um conjunto de utilitrios com funcionalidades similares s das ferramentas comerciais removeu um grande peso da comunidade de desenvolvimento Linux, facilitando tambm o processo de migrao dos programadores. Basta agora apenas quebrar sua inrcia, fazendo com que se interessem, conheam e experimentem essas timas ferramentas.

Informaes
[1] Anjuta anjuta.sourceforge.net [2] Kdevelop www.kdevelop.org [3] NetBeans www.netbeans.org [4] Eclipse www.eclipse.org [5] MonoDevelop www.monodevelop.com [6] Python www.python.org [7] Boa-Constructor boa-constructor.sourceforge.net [8] Eric3 www.die-offenbachs.de/detlev/eric3.html [9] Lazarus www.lazarus.freepascal.org [10] Gambas gambas.sourceforge.net [11] Hbasic hbasic.sourceforge.net [12] Kbasic www.kbasic.de

66

Sobre o autor

setembro 2005

edio 12 www.linuxmagazine.com.br

Вам также может понравиться