quinta-feira, outubro 04, 2007

Estação de trabalho

Muitas são as ferramentas que nós programadores precisamos usar. Seja a trabalho, a estudo ou por pura miséria, bons editores e suporte nunca vêm mal.

Nos últimos tempos andei experimentando muita coisa. Linguagens, editores, kits, suits, ferramentas diversas... E cheguei numa lista muito boa que pode dar a quem quer uma excelente plataforma de desenvolvimento. Comecei com meu desejo de ter uma estação LAMP (Linux/Apache/MySQL/PHP), e até publiquei um post aqui sobre isso, e hoje cheguei em algo que considero ideal. Por motivos óbvios não me prenderei a explicar o passo-a-passo da instalação de cada ferramenta - documentação, faq's, fóruns, google, guias e tutoriais servem para isso.

Em primeiro lugar, você irá precisar de uma distribuição Linux. O sabor fica por conta do freguês. Se não quiser dor de cabeça vá com o famigerado Ubuntu. Meu gosto é Debian-based, mas nada te impede de usar outro.

Vou começar com os editores, afinal, neles é onde passamos a maior parte do desenvolvimento. Eis minhas sugestões:
- Eclipse + Aptana + PDT + RadRails + RDT
Excelente plataforma para desenvolvimento em Java. Oferece uma ótima interface para edição, gerenciamento de projetos, navegação de classes, depuração... Os plugins dão um tune-up no danado, tornando apto a desenvolvimento para web (PHP, SQL, XML, Javascript, Ruby, Python...).

- Quanta Plus
Baseado no KDE, também é uma ótima ferramenta para desenvolvimento e gerenciamento de projetos. Destaque para a navegação de classes, pelo suporte a zilhões de linguagens (abrange desde HTML, Javascript e PHP até Assembly, C e VHDL) e por ser extremamente leve e rápido quando comparado a outros editores do mesmo calibre como o Eclipse e o Zend Studio. Se você usar o KDE, também pode optar por instalar o resto das ferramentas de desenvolvimento.

- Bluefish
Muito amigável e cheio de funçõezinhas marotas, também permite gerenciar projetos (não tão bem quanto os anteriores) e é bem leve. Não tem navegação de classes, mas é muito bom para desenvolvimento de soluções rápidas e projetos curtos.

- VIM
Um clássico. Um must have dos editores. Passam-se as décadas e ele continua firme, forte e poderoso - vai cada vez mais além. Exige conhecimento prévio de seu funcionamento, opera em modo texto (nem preciso falar que é muuuuuito leve) e tem recursos ótimos para edição. Não tem gerenciamento de projetos, muito menos navegação de classes, mas cai como uma luva nos momentos críticos e em projetos pessoais. Vale a pena ter esse às na manga. Já vem disponível em quase todas as distros.

- EMACS
Outro clássico. Porém este está disponível em versão gráfica também. Tem muitos recursos similares ao VIM, e conta com uma série de extensões e funcionalidades extra. Já vem disponível em muitas distros Linux.

De editores está bom. Esta "pequena" lista dá conta de meses de diversão, aprendizado, produtividade e horas agradáveis bebendo café. Vamos agora às ferramentas para se trabalhar com gráficos.

- The GIMP
Não poderia deixar de começar a falar de softwares para tratamento e edição de imagens sem ser pelo GIMP. Já vem instalado em quase todas as distros. Permite a criação e edição de imagens em diversos formatos, tem plugins a dar com pau, é programável (em LISP!) e tem muitos poderosos recursos nativos. Creio que não sou mais apto a falar sobre gráficos, mas seu uso vai desde criação de layouts e imagens, até o tratamento de fotos.

- Inkscape
Ilustrador vetorial, trabalha basicamente com o formato SVG. Muito leve e intuitivo. Ideal para criar "aquele" botãozinho, ou "aquela" barrinha, ou ainda alguma figura não muito complexa.

- Blender
Modelador 3D. Não adianta eu ficar falando que é poderoso e coisa e tal, vamos aos fatos: a Pixar e a DreamWorks usam ele. Shrek Terceiro e Spider-Man 3 figuram entre as obras que têm uma mãozinha dele. Sua curva de aprendizado é ligeiramente maior. A curva de produtividade é exponencial.

- Scribus
Programa de editoração. Para criar documentos e diagramas com altíssima qualidade. Que uma coisa fique bem clara neste ponto: documentos Office (seja lá de qual pacote estejamos falando) são bons para troca de informações e tal; para apresentações a qualidade deve ser superior e o Scribus entra exatamente aí.

- FontForge
Serve para criar fontes, como o próprio nome sugere. Às vezes não encontramos uma fonte adequada (e, acredite, elas fazem diferença, e muita) para um layout, apresentação, etc... O FontForge permite a criação de uma fonte desde o zero, ou a edição de alguma fonte já existente.

Falemos agora dos navegadores. Isso é especialmente interessante a quem desenvolve conteúdo para web, ou para quem quer experiências novas ao navegar.

- Firefox 2.0 + Web Developer + Firebug
O kit perfeito para desenvolvedores de aplicações web. Essas duas extensões fazem o diabo. Este é um outro must have, um kit de sobrevivência.

- Opera 9
Tá bom, não chega aos pés do Mozilla Firefox e seus plugins no que diz respeito a desenvolvimento, mas o Speed Dial e a organização automática de janelas são recursos interessantes e úteis. Ele também tem os mouse gestures como diferencial.

- w3m
Navegador em modo texto, com suporte a abas!

- lynx
Clássico navegador em modo texto. Talvez vocês estejam se perguntando "- Mas por que navegadores em modo texto?". Se você é desenvolvedor web e se preocupa um mínimo com acessibilidade, navegabilidade e principalmente com o desempenho em sites de busca, precisa ver como os spiders enxergam seu site. Se você não desenvolve para web, mas sempre teve vontade de obter informações mais rápido, sem se preocupar com banners, imagens, etc... experimente.

- MS Internet Explorer
Uma triste realidade é que uns 70% de usuários de internet usam esse navegador. Criar um layout bonitão no Firefox, validado pela W3C, e tudo mais não significa que ele vai renderizar bonito do IE. A recíproca também é verdadeira - nem todo site bem visível no IE é exibido corretamente em outros navegadores. Isso é uma das coisas que ainda atormentam muitos webdesigners. Ter o Internet Explorer instalado - não para navegar, mas para conferir a renderização do layout - é uma necessidade; deixar o Windows numa partição da sua máquina SÓ para isso também é desperdício de recursos. Mas nem tudo é o fim. Existe um pacote chamado ies4linux, criado por um brasileiro, que facilita a vida de quem vive disso. Você pode instalar os IE5, IE5.5 e IE6 (a instalação do IE7 ainda está em fase experimental e altamente instável) de forma rápida e fácil.

Ainda não há formas eficazes de se ter uma instalação funcional e estável do Safari (navegador padrão da Apple) no Linux. Isso sim é uma pena. Se for pra deixar uma instalação do Windows na sua máquina, então faça o favor de instalá-lo. O Safari é um dos navegadores mais bacanas e bonitões que existem.

Vamos aos servidores que fazem muito do trabalho também.

- Apache 2
Assim como não pude iniciar a falar de gráficos sem começar pelo GIMP, também não posso começar a falar de servidores senão pelo Apache 2. O servidor mais famoso do mundo, estima-se que quase 75% dos sites do mundo inteiro estejam hospedados em servidores rodando Apache. Cheio de recursos, estável e poderoso, é um dos must have.

- MySQL 5
O mais famoso dos servidores de bancos de dados OpenSource. Na versão 5 e superiores conta com muitos recursos poderosos que faltavam antes como Stored Procedures, Views, Triggers...

- PostgreSQL 8
Nem tão famoso, mas com recursos muito legais como a herança em tabelas e a fama de ser o tal nas missões críticas. Bate de frente sem fazer feio com outros servidores parrudões como Oracle e DB2.

- Tomcat 5
Servidor de servlets Java e páginas JSP. Também é da Apache Foundation. Recomendo instalá-lo sobre o Apache 2.

- Mongrel
Servidor HTTP para aplicações Ruby. É interessante usar o mod_proxy_balancer no Apache 2 e acessar as páginas nativamente hospedadas no Mongrel pelo Apache.

- Sendmail
Clássico servidor de e-mails do mundo Linux. Tê-lo vai ajudar a criar um ambiente de testes mais real para aplicações e processos web que se valham do envio de e-mails.

E para finalizar a lista das linguagens, que são o coração de tudo isso.

- PHP 5
Precisa dizer mais?

- Ruby + Rubygems + Rails + Goldberg
Ruby é a linguagem propriamente dita. O Rubygems é um gerenciador de pacotes para Ruby. O Rails é o framework mais famoso do momento. E o Goldberg é um generator para Rails. Com esse kit dá pra fazer um site, com tudo o que um site tem direito, muuuuito rápido.

- Perl
Isso já vem na maior parte das distros. Consta aqui só pra você não esquecer que ela existe - e faz muitas coisas do seu Linux funcionar. Além disso ela também é bem flexível e poderosa.

- Java (JDK)
Precisa dizer mais?[2]

- Scheme e CLISP
Implementações LISP. Dá pra fazer um servidor de bancos de dados com umas 40 linhas desse troço, acredite. Também pode ser usado para escrever plugins do GIMP :D.

- Python
Corre por fora. Poderosa. Simples e eficaz para se fazer e desenvolver muita coisa.

- Pacote build-essentials da GNU
Já vem instalada na maioria das distros. Com ele você pode usar o make, o gcc (para linguagem C), gpp (para C++), o gcj (o Java da GNU), o as/gas (GNU Assembler) e mais uma porrada de linguagens. Tem compiladores, interpretadores, linkers, bibliotecas... enfim, realmente muita coisa para cair de cabeça na programação.

Posso citar ainda por fora tcl/tk, AWK, mas aí já fica a critério de cada um e não as considero indispensáveis. É isso aí pessoal.

Té+