Podemos dizer, com certeza, que o mundo do desenvolvimento Web evoluiu bastante. Nada precisa ser criado inteiramente do zero, não precisamos reinventar a roda. Temos à nossa disposição uma infinidade de ferramentas, plugins, frameworks, gerenciadores de conteúdo para agilizar o desenvolvimento, mas devemos tomar um certo cuidado.
Calma! Não vou evangelizar sobre a ferramenta que mais gosto nesse post, até mesmo porque gosto de várias. Apenas quero sinalizar o quanto é importante escolher a ferramenta certa para cada tipo de aplicação.
Bom, acho que o primeiro passo é dizer que é preferível escolher uma ferramenta que seja escrita em uma linguagem com a qual você se sinta à vontade, ou melhor ainda: com uma linguagem em que você seja fluente! Não tem sentido escolher desenvolver em Rails se você nunca trabalhou com Ruby por exemplo.
Também pode ser vantajoso (e muito!) analisar o código da ferramenta que escolher trabalhar. Isso pode te dar um norte do que é e o que não é possível fazer com ela, ou seja, saber até que ponto ela é customizável. Um bom exemplo são as bibliotecas JavaScript, pois é preciso saber se elas possuem bons callbacks, bons padrões, bons métodos de inicialização, etc.
Agora vamos para a parte que julgo mais importante: os problemas de cada ferramenta.
É fato que nenhum desenvolvedor pensa da mesma forma que o outro. Talvez pelo modo como aprendeu, talvez pelas necessidades da aplicação que cada um desenvolve. Sendo assim, ferramentas sempre terão problemas. Problemas de performance, customização, padronização etc. Vale a pena conferir na comunidade o que os grupos de discussão falam sobre cada ferramenta, mas cuidado para não tomar tudo aquilo que lê como verdade absoluta.
Por fim, o uso de ferramentas agiliza o desenvolvimento e ajuda na manutenção das aplicações quando houver rodízio de pessoas. Basta sabermos com o que estamos trabalhando e, quando formos escolher entre uma ou outra, estarmos cientes de alguns problemas que poderemos ter que contornar. E escolher as ferramentas com os problemas que acharmos que podem ser contornados mais facilmente e que não atrapalharão de forma crucial o funcionamento de nossas aplicações!