Desenvolvedores que seguem técnicas ágeis para
desenvolvimento de software certamente têm um outro tipo de visão no que diz
respeito a como uma IDE deveria se comportar em seu dia-a-dia. Pra quem, como
eu, trabalha com C# ou outras linguagens .Net, a busca pela IDE perfeita têm
sido mais árdua do que, por exemplo, nossos amigos que trabalham com
plataformas e, principalmente, comunidades mais maduras, como é o caso do Java. Basicamente, nós só temos o
Visual Studio e suas incontáveis versões. Eu acho que já contei umas oito ou
nove. Por incrível que pareça nenhuma delas me agrada plenamente.
O Visual Studio sempre foi uma IDE focada em
desenvolvimento RAD. Aquela coisa... toneladas de opções e wizards que não
servem pra muita coisa. Agora na versão 2005 houve um pequeno direcionamento
para features code-centric. A intenção foi boa. A idéia era colocar alguns
recursos interessantes, como a geração automática de alguns stubs para quem
faz coding by intention, um intellisense mais completo (sensível a qualquer
parte do código), snippets práticos e algum refactoring. Infelizmente, na
prática, eu já desisti de usar muita coisa. As features de refactoring principalmente.
É lento, só tem o básico e muitas vezes gera resultados indesejáveis.
Nada está perdido, no entanto. O Visual Studio
é uma IDE completamente diferente quando você instala o add-in Resharper da
Jetbrains (a mesma empresa do IntelliJ). O nível de produtividade é
completamente outro. Quando do lançamento do VS 2005 muita gente chegou a dizer
que não migraria sua aplicação simplesmente por que o Resharper não funcionaria
nessa nova versão do VS. Algum tempo atrás chegou-se a divulgar que a JetBrains
estava escrevendo uma IDE completamente nova para C#, semelhante ao IntelliJ.
Estamos aguardando novidades sobre isso ansiosamente, pois ainda temos que
conviver com um grande inconveniente do resharper: o consumo excessivo de
memória. É quase inviável para projetos grandes. O pior é que a versão 2.0 do
produto, pelos testes que fiz até agora, vai continuar podendo até agravar -
o problema de performance e consumo de recursos.
Continuo, assim, em busca da IDE perfeita. Há
alguns dias venho testando o Sharp Develop 2.0 Beta 2. Estou muito
impressionado com a IDE. É bem completa, leve e fácil de estender. É uma IDE
open source e traz consigo a sustentação de boas práticas de toda a comunidade
de desenvolvimento. Assim, nativamente, você já pode contar com uma boa
integração com o Nunit, Nant, Ncover, Ndoc e com a garantia da incorporação de
integração com outros bons projetos open source para a plataforma .Net. Além
disso, a IDE já está preparada para trabalhar com o Mono e com outras vedetes
que estão se tornando realidade no mundo open source da plataforma .Net, como o
GTK#, Glade#, a linguagem Boo, ou com aquelas que provém da própria Microsoft,
como é o caso do WinFx. A parte negativa do SharpDevelop fica por conta da
falta de suporte para projetos web (ASP.Net). E é isso que ainda não me permite
adotá-la de forma oficial por enquanto.
Em resumo... estou em busca da IDE perfeita. Na
minha cabeça ela tem que ter o seguinte:
- Suporte nativo a TDD + Code Coverage (com
comportamento similar ao addin TestDriven.Net )
- Suporte nativo a análise estática de código
- Suporte real a refatorações (semelhante ao
resharper da jetbrains)
- Criação automática de stubs de métodos e
classes - sem precisar tirar a mão do teclado, semelhante ao CTRL+. do VS ou ao
ALT+Ins do resharper
- Nada de wizards, geração de código que viola
técnicas ou conceitos arquiteturais. Arrastar e soltar só para controles GUI
- Detecção automática de namespaces não
utilizadas ou de objetos sem namespace referenciada
- Navegação rápida entre classes (semelhante ao
CTRL+N ou CTRL+E do resharper)
- Janela de View Definition (ótima feature do SharpDevelop)
- Suporte a one-step-build (como na integração
do SharpDevelop com o NAnt)
- Seleção de texto inteligente (o CTRL+W do
Resharper)
- Inserção contextual de código (ALT+Ins do
Resharper)
- Correção inteligente de código (há algumas
delas no Resharper 2.0 que vale a pena dar uma olhada)
- Tudo isso em uma IDE muito leve e rápida
Sonho?