A Importância do uso de IDEs
Embora ainda tenhamos muitos problemas com o desenvolvimento de sistemas algumas ferramentas evoluíram bastante permitindo um ganho de produtividade, especialmente na área de codificação. Se pensarmos que os primeiros programas de computador eram feitos utilizando um simples editor de texto (até hoje podemos fazer isso para as principais linguagens de programação) e que hoje contamos com editores muito mais poderosos capazes de reconhecer a sintaxe da linguagem isso já é de chamar a atenção.
Esses ambientes de desenvolvimento modernos tem capacidades poderosas para auxiliar o programador em sua tarefa de criar programas de computador. Porém como sua principal função continua sendo editar arquivos de texto muitas vezes os usuários (principalmente os iniciantes) acabam não explorando (e muitas vezes nem conhecendo) essas capacidades.
Vamos conhecer algumas dessas características para entender a importância de saber utilizá-las:
- Reconhecimento da sintaxe da linguagem – atualmente até os editores mais simples já são capazes de serem configurados para reconhecer as palavras-chave das linguagens de programação com as quais trabalha. A importância é que como os comandos da linguagem ficam marcados com uma cor diferente (que pode ser configurada pelo usuário) rapidamente podemos identificar um comando errado.
- Identação automática – quando usamos linguagens de programação imperativas tais como Pascal, C, C++ e Java entre várias outras, é comum separarmos os blocos de código relacionados adicionando espaços (ou tabulações) à esquerda do código empurrando o bloco para longe de margem, isto facilita entender os relacionamentos entre os blocos. Atualmente as IDEs permitem formatar automaticamente e até mesmo mover blocos inteiros de acordo com as regras de identação.
- Reconhecimento sintático – dependendo da linguagem, são fornecidos reconhecedores sintáticos que são capazes de marcar códigos com erro durante sua escrita, embora esse passo seja executado novamente durante a compilação final do programa, essa capacidade auxilia o programador porque já sublinha o código com erro durante a escrita.
- Autocompletar – essa é a característica preferida de todos, de acordo com o que vamos digitando o ambiente vai identificando quais as possibilidade do código e pode oferecer uma lista de opções, isso é especialmente interessante para programação orientada a objetos em que queremos lembrar um método de algum objeto (que está sendo manipulado através de uma variável,) mas também é muito útil em linguagens estruturadas, pois permite acessar campos de tipos abstratos de dados e acessar funções. Conforme vamos digitando as opções vão se restringindo até que podemos escolher a que nos serve.
- Modelos de código - podemos configurar trechos de código modelo para ser usado em certas situações mais comuns e acessíveis através de atalhos simples. É claro que as ferramentas já vem com vários desses modelos o que torna-se muito interessante, modelos para trechos de código com laços, estruturas de controle, comandos para imprimir e assim por diante.
- Circundar código - é a capacidade de, a partir de uma seleção de código do usuário, a ferramenta colocar uma outra instrução ao redor daquela seleção. As vezes percebemos que seria bom repetir um código ou usar uma condição, não é mais necessário ficar procurando onde colocar o fechamento de um bloco, basta marcar e circundar.
- Identificação de início e fim de blocos através de chaves – é claro que isso se aplica as linguagens que usam chaves como marcadores de bloco, mas as ferramentas são capazes de, quando o usuário coloca o cursor ao lado de uma chave, mostrar qual a correspondente seja ela de abertura ou de fim.
- Navegação em hierarquia de tipos – essa é específica para linguagens orientadas a objetos, mas podemos solicitar qual a árvore de hierarquia de uma classe e a IDE apresenta as classes para cima e para baixo. Quando precisamos entender um sistema de outro desenvolvedor essa é uma funcionalidade de extremo valor.
- Ir para a definição – normalmente acessado utilizando a tecla Control do teclado as chamadas de métodos e funções se transformam em links e o usuário pode clicar e ir para a definição daquele código.
- Mecanismos de navegação no código – conforme vamos clicando nas definições de métodos e funções a ferramenta vai guardando uma lista de onde passamos de forma que podemos voltar passo a passo utilizando setas de navegação na barra de ferramentas.
- Resolver importações de bibliotecas – dificilmente escrevemos um sistema todo do zero, então é muito comum usarmos bibliotecas de outras pessoas e empresas para trabalhar junto com nosso código, mas para que isso seja possível precisamos referenciar essas bibliotecas externas, quando o ambiente está configurado consegue identificar pelo nome que foi usado as possibilidades de bibliotecas que fornecem o recurso.
- Fechamento de trechos de código – uma vez que métodos e funções tem início e fim definidos, as ferramentas permitem “fechar” e “abrir” esses trechos (normalmente com um sinal de – e + ao lado do início do trecho) de forma que não precisemos ficar rolando muito a tela para ver partes do código.
- Auxílio para refatoração – este termo sugerido por Martin Fowler está relacionado a refazer trechos de código que não estão bons de acordo com os mais diversos padrões e critérios de qualidade. O uso de uma ferramenta para realizar essa tarefa é muito interessante porque permite avaliar o código como um todo, por exemplo para trocar o nome de uma variável, ou para trocar a lista de parâmetros de uma função ou método.
Além dessas características temos outros tipos de integração tais como controle de versão, interface para consultas e manipulação de bancos de dados, controle de servidores de aplicação externos, navegador de código entre outros. Então conhecer e saber usar essas capacidades de uma ferramenta permite gastar mais tempo pensando no problema que queremos resolver e menos tempo lembrando a sintaxe da linguagem com a qual estamos trabalhando.
É claro que como tudo, essas características tem uma desvantagem que é deixar o programador bastante dependente da ferramenta, cada uma tem atalhos diferentes, capacidades diferentes mais ou menos poderosas que as concorrentes. Quando fazemos uma escolha por uma ferramenta e começamos a conhecê-la cada vez mais acabamos por desenvolver uma forma de programar que está associada àquele ambiente, o que pode gerar um certo atraso em outros ambientes. Isso não chega a ser um problema alarmante, mas o programador precisa ter consciência disso para que possa se adaptar as diversas situações com as quais vai se deparar ao longo da carreira.


[...] usar um ambiente integrado (IDE) – coloquei um post aqui que fala da importância dessas ferramentas, elas tornam o programador mais produtivo (se ele [...]