PHP é sem dúvida a linguagem mais usada da Web, por diversos motivos, é uma linguagem fácil, roda em qualquer lugar, tem profissionais em abundância (isso não quer dizer bons) e baratos. Eu mesmo sou desenvolvedor PHP e começei com ele, no entanto buscava mais produtividade e algo mais elegante e organizado, Solução? FRAMEWORKS.
Mas não em PHP, conheçi o Rails, começei a brincar com Rails e Ruby e fui evoluindo, na ferramenta e profissionalmente, passei também pelo .Net em um capitulo isolado que não vem ao caso. No Rails tenho tudo que preciso, é legal, adoro a linguagem, é relativamente fácil e flexivel quando se aprende, no entanto, nos meios em que atuo ainda não é a primeira escolha ao se desenvolver um projeto, com o tempo isso mudará, mas ainda não é a hora.
O caso “Problema”
Eis que tenho um novo desafio, um projeto razoavelmente grande onde fiquei incumbido de definir ambiente e arquitetura do sistema, que tera uma API centralizada e diversos meios interagindo com ela, storage separado e um pesado processamento de imagem em um módulo separado, até ai tudo bem, o “problema”? PHP! só isso? claro que não né, temos pouco tempo e carência de mão de obra, alguns dos profissionais da agência serão disponibilizados, no entanto em datas e horários variados, no esquema do “quando der”, e por cima de tudo não há planos de contratação programada para o projeto.
Então como eu posso tentar implantar uma nova metodologia / linguagem sem contratar gente e com uma enorme curva de aprendizado para os recursos “disponíveis”?
A Solução
Rails é produtivo, divertido, tem muitos dos recursos que necessito pra agilizar o projeto, então o quedevo fazer? Ora … ora, um “Rails em PHP“, eis que estudando e pesquisando chego a conclusão que o CakePHP é o que eu preciso, bastante parecido com o Rails, com os mesmos recursos e ao alcance da equipe, com ele poderemos criar nossa API REST respondendo em JSON, podemos usa-lo nos testes (sim o projeto será TDD), ORM e testes integrando tudo isso.
Escolhi o CakePHP porque é parecido com Rails? também, mas é um framework PHP já consagrado e estável (vide Campus Party – Frameworks PHP do Augusto Pascutti), tem excelente desempenho, roda em qualquer lugar como o PHP e tem uma cartela de desenvolvedores bastante interessante, inclusive na equipe que irá trabalhar no projeto. CakePHP é melhor que Rails? tecnicamente prefiro não comentar, mas no meu contexto CakePHP preenche nossos requisitos com louvor respeitando as restrições.
Então que começe a folia.
Estamos começando a atualizar nossas aplicações para Rails 3 e começamos enfrentando alguns problemas e erros ao instala-lo, coisas simples mas que pode acabar atrapalhando a vida dos mais novos em Rails, decidimos instalar um ambiente Rails 3 do zero (usando o Mint Linux – bastante compativel com Ubuntu e Debian em geral) para podermos identificar estes problemas e tentar ajudar a resolve-los, vamos começar instalando o Ruby (1.8.7, versão estavel até o momento).