|
Eu tenho uma certa "bronca" com a maioria das chamadas IDEs. A muito
tempo que IDE virou sinônimo de "ferramenta-mais-ou-menos-visual-com-compilador-e-debugger-integrado".
Para mim, o conceito de Integrated Development Environment - IDE - vai
além de uma ferramenta, e atinge todo o ambiente de trabalho. Isso
inclui em especial integração com uma série de ferramentas
que não fazem parte das IDEs tradicionais, e com as quais a maioria
das IDEs tem sérios problemas de integração. No TIDE
- TrueIDE - eu procuro definir pelo menos uma integração
de várias ferramentas que me tragam o ambiente ideal para desenvolvimento
de aplicações Java. Venha dar a sua contribuição!
Quais as Funcionalidades que Eu Busco em um TIDE?
Não são poucas, e eu estou sempre enontrando novas necessidades.
Também é preciso definir prioridades, e nem todas as prioridades
estão definidas. Ainda assim, uma TIDE tem que procurar fornecer
as seguintes características:
-
Multiplataforma. Meu objetivo é o desenvolvimento em Java, e portanto,
eu preciso suportar esse meu ambiente em diversas plataformas diferentes.
Em particular, a TIDE tem que suportar pelo menos Solaris, Linux e Windows95/98/NT.
Infelizmente eu não tenho acesso a outras plataformas de forma fácil,
e portanto por enquanto estou iniciando com essas;
-
Suporte a automatização de processos: compilação,
geração de documentação, testes, arquivos jar,
etc;
-
Suporte ao desenvolvimento de qualquer tipo de aplicação
Java: Applets, Servlets, Applications, JavaBeans, EJBs, etc.
-
Ferramentas "normais": editores, debugger, compiladores;
-
Ferramentas de análise e design, suporte a UML, engenharia reversa;
-
Ferramentas de Teste: visual, white-box, black-box, pure check, stress
testing, entre outras;
-
Suporte ao desenvolvimento em grupo;
-
Suporte a geração visual de GUIs: incluindo o uso efetivo
das caracteristicas do Java, como Swing, suporte a layouts, etc;
-
Ferramentas de engenharia reversa: decompiladores, ofuscadores;
-
Ferramentas de instalação e geração de instaladores;
-
Suporte a web: criação de sites, HTML, geração
dinâmica de páginas, servidor web;
-
Bancos de Dados: suporte a diferentes BDs (relacionais e OO), mapeamentos
objeto-relacionais,
-
Suporte a métricas, análise de código, correção
automática;
-
Acompanhamento de projetos, relatórios, situação,
post-mortem;
-
De baixo custo (pelo menos o mais baixo possível);
-
Bibiliotecas de componentes;
-
Ferramentas de Help geração de documentação;
-
Suporte a prgramação distribuida: isso envolve mauita coisa,
incluindo CORBA, RMI, Jini, EJB, além de debuggers que suportem
essas aplicações, ferramentas para geração
de stubs, ferramentas de teste, etc.
Essa é uma lista preliminar, que precisa ser melhor definida, mas
é a lista sob a qual eu tenho trabalhado já a algum tempo.
É fácil observar que nenhuma "IDE" no mercado traz todas
essas vantagens em uma única ferramenta (se voce conhecer uma, me
avise, pois meu trabalho estará terminado :o). É por isso
que as considero "IDTs" (Integrated Development Tools), pois na verdade,
toda e qualquer "IDE" tem que necessariamente se integrar a outras ferramentas
para formar um verdadeiro IDE, ou um TIDE.
Quer Dizer que Eu Estou Desenvolvendo Tudo Isso?
Não é porque não existe uma única ferramenta
capaz de oferecer tudo isso, que é necessário (ou memso interessante)
criar uma. Na verdade, toda e qualquer ferramenta que se propõe
a tudo isso acaba por não fazer nada direito.
Não, minha idéia não é desenvolver tudo
isso, mas sim buscar ferramentas existentes no mercado, e tentar integrá-las
em um TIDE. Isso por si só é um trabalho de grandes proporções,
mas de uma importância fundamental para que possamos caminhar a passos
largos para um processo maduro de desenvolvimento de aplicações.
Não é Melhor Usar uma Única Ferramenta? A <ferramenta
predileta> Faz Tudo que Preciso...
É interessante como todo desenvolvedor tem uma ferramenta predileta,
e acha aquela a maior maravilha. É natural que você tenha
uma ferramenta de trabalho do dia a dia, mas você precisa também
ser capaz de integrar essa sua ferramenta com outras de uso menos frequente.
Além disso, a maioria dos desenvolvedores são programadores
solitários que passam pelo ciclo cria-codifica-compila-roda praticamente
sozinhos. Quando você junta equipes que tem que passar por ciclos
mais sofisticados de análise-design-codificação-execussão-teste-verificação-métricas-acompanhamento-geração
de intalação-etc, a coisa fica bastante mais complexa, e
você gostaria que vários desses passos fossem automatizados,
e geralmente é nesse ponto que as IDEs deixam de ajudar e começam
muitas vezes a atrapalhar, porque são integradas demais, e não
formam um TIDE.
Outra coisa interessante, é que programadores Windows geralmente
adoram as facilidades visuais de suas ferramentas, e não percebem
as limitações que elas impõe. Por outro lado, quem
já programou em ambiente Unix alguma vez na vida não consegue
entender como alguém consegue desenvolver algo sério no ambiente
limitado dos ícones e botões. Portanto, faz parte da criação
do TIDE a busca de se ter um ambiente funcional dentro das limitações
do ambiente Windows, tentando se utilizar do poder e flexibilidade do ambiente
Unix.
Ok, Parece Interessante. E Dai?
Eu já tenho um ambiente inicial semi-funcional, que atende em parte
os requerimentos delineados. É o meu ambiente de trabalho atual,
mas que ainda precisa de trabalho para algumas integrações,
além de estarem faltando várias das ferramentas propostas.
Esse ambiente será apresentado aqui, como proposta inicial do TIDE.
Além das ferramentas já existentes, existirão lacunas
nesse ambiente, que talvez precisem ser preenchidas com o desenvolvmento
de alguma ferramenta. Isso precisará ainda ser verificado e definido.
As funcionalidades listadas, são tanto incompletas por um lado e
exageradas em outros pontos, e isso precisa ser melhor definido. Além
disso, é fundamental se fazer uma priorização de que
funcionalidades são mais importantes. Isso ainda está muito
rudimentar.
Você pode ajudar. Agora!
A forma mais simples de ajudar, em especial nesse início, é
ajudar na definição das listas de funcionalidades, na busca
de ferramentas já existentes, e na definição de prioridades.
Para isso, simplesmente preencha o formulário abaixo com as suas
opiniões!
|