Linux, Open-source, Programação e Produtividade

Top 5 ferramentas Linux para Desenvolvedores

convidados em 10/05/2007

1. Um (bom) editor de texto (Emacs/GVim): Um editor de texto bom é essencial para aumentar a produtividade de um programador. Apesar da existência de IDEs poderosas como o Eclipse, Netbeans e RadRails, o domínio de um bom editor é essencial para as tarefas do dia-a-dia, em que linguagens podem variar e os programas são em geral curtos. O Emacs e o GVim cumprem muito bem esse papel, com a capacidade de alterar a cor do texto conforme a sintaxe da linguagem, indentar o texto corretamente, abrir vários arquivos ao mesmo tempo – podendo até mostrar vários arquivos ao mesmo tempo na tela, aceitar plugins para estender as linguagens suportadas e as funcionalidades do editor e executar comandos diretamente do editor, podendo inclusive abrir uma shell para, por exemplo, compilar seu programa.

2. Controlador de Versão (CVS/SVN): Essencial para o desenvolvimento em grupo, os controladores de versão facilitam a edição simultânea dos mesmos arquivos, pois permite uma fácil junção das modificações feitas pelo grupo, além de permitir a recuperação de todas as versões anteriores de cada arquivo, possibilitando voltar atrás no desenvolvimento caso isso seja necessário. Eles são úteis também para a distribuição das versões mais recentes dos softwares, as famosas nightly builds, permitindo que os testers e early adopters analisem o software. Uma coisa interessante desses controladores é que são independentes de linguagem e podem ser usados até para outras finalidades, como controle de versões de um texto, por exemplo.

3. Documentador (Doxygen): Para qualquer programador, é realmente muito bom encontrar um biblioteca de funções bem documentada, de forma que não seja necessário despender dezenas de horas estudando algo que não é diretamente relacionado ao seu projeto. E, quando escrevemos um programa, também não podemos esquecer de criar uma boa documentação para ele, pois é possível que alguém precise consultá-la no futuro. E criar uma boa documentação é uma tarefa árdua que pode gastar bastante tempo e exigir muito esforço. Mas, com o auxílio de um documentador como o Doxygen (que suporta C, C++, Java, Objective-C, Python, IDL, PHP, D), a tarefa fica muito mais simples. Fica simples ao ponto de ser possível documentar logo após ter escrito um protótipo de uma função.

4. GNU Compiler Collection [GCC]:Uma boa coleção de compiladores pode ser a diferença entre escrever código portável (e que funcione) ou código que apenas compila (e funciona) na máquina onde foi escrito. E a coleção GCC cumpre com maestria não apenas essa função, mas diversas outras, como garantir que você programe em um determinado padrão (como o padrão ANSI de C). A GNU Compiler Collection possui compiladores para as seguintes linguagens: C, C++, Objective-C, Objective-C++, Java, Ada e Fortran. Também possui suporte (mas sem padronização) para Modula-2, Modula-3, Pascal, PL/I, D, Mercury e VHDL.

5. Ferramentas de Depuração (gdb, gprof): Um bom depurador, como o gdb [GNU DeBugger], é de grande valia para aqueles momentos em que você tem a completa certeza de que seu código está correto, mas em que o seu programa ainda insiste em não funcionar. Com ele, você consegue rastrear variáveis e interromper a execução do seu programa onde você achar melhor. E o gdb possui suporte para outras linguagens de programação (C , C++, Objective C, FORTRAN, Ada, Modula-2) e capacidade de lidar, ainda que parcialmente, com linguagens não suportadas.

Um profiler, como o gprof, ajuda na otimização do código, pois permite que sejam facilmente identificados os gargalos (pontos de alto consumo de tempo/processando muito amento), para que você possa melhorar o desempenho do seu programa dedicando mais esforço às partes que realmente fazem diferença.

Este post foi motivado pelo Top 5 – Group  Writing Project do Problogger.net