Vale a pena investir em Ruby on Rails? Django?
Vejo muita gente que já desenvolve pra web ficar seduzida com as facilidades de alguns frameworks que estão na moda, que estão no topo da mídia especializada. Não é a toa que Ruby on Rails e Django realmente estão neste círculo de modinha, pois eles realmente facilitam a vida do programador.
Existem inúmeros artigos malhando o pau no PHP – vamos falar a verdade, todo programador web que se preze ao menos já programou algo em PHP, a não ser que você só viva no mundinho do Mac – por ele não ser produtivo quando comparado a Django ou ROR. Porém muitos esquecem que Django e ROR não são linguagens de programação, a maioria quando lê estes artigos simplesmente ignora que temos Pyton e Ruby por trás desta brincadeira.
Ora, como assim Bial?
Então o correto é comparar frameworks PHP com ROR e Django?
Sim, porque estamos falando de frameworks e não de linguagens de programação.
Neste quesito quem inovou muito foi o Ruby on Rails, tanto que frameworks PHP vieram a implementar e até copiar seu comportamento e algumas funcionalidades, como por exemplo o CakePHP.
Tá, mas eu preciso aprender uma nova linguagem?
Não necessariamente, há frameworks PHP que podem atender perfeitamente muitas funcionalidades bem bacanas do ROR e Django sem que você precise ter um tempo dedicado a uma nova linguagem e o seu tempo de maturação e experiência nesta nova empreitada. Um dos frameworks que utilizamos com boa frequencia e que nos dá agilidade no código com uma fácil escalabilidade e boa manutenção, é o Kohana PHP. Um framework totalmente strict PHP5, com suporte MVC e ORM, URL limpas e de uma pequena curva de aprendizado (eu diria que você trabalha efetivamente nele em questão de 1 ou 2 dias, é muito rápido até pra quem nunca viu MVC).
Não vou postar aqui um tutorial de “como criar um blog em 5 minutos”, porque isto já existe. Mas vou mostrar da mesma forma que a galera do Rails gosta de mostrar que são produtivos e vou mostrar como podemos trabalhar com uma tabela de produtos de forma muito fácil no Kohana. Para isto, precisamos criar nosso model:
[php]class Produto extends ORM {}[/php]
Não, eu não esqueci código!
É só isto mesmo e tudo já funciona, legal não?
Para quem já conhece MVC, veja como é moleza trabalhar com os controllers
[php]
class Produto_Controller extends Controller {
// Listando todos os produtos
public function todos(){
$objProduto = new Produto();
print_r $objProduto->find_all();
}
}
[/php]
E nem precisei escrever uma linha de SQL! E você pode acessar isto em http://seusite.com/produto/todos. Note que o sistema de URL’s é limpo e bem prático. Veja outro exemplo onde acessamos algum produto pelo código
[php]
class Produto_Controller extends Controller {
// Listando todos os produtos
public function todos(){
$objProduto = new Produto();
print_r $objProduto->find_all();
}
// Procurando um produto pelo ID
public function procurar($id){
$objProduto = new Produto($id);
print_r $objProduto;
}
}
[/php]
Se acessarmos http://seusite.com/produto/procurar/2 o sistema irá localizar o produto com o ID=2 sem que você precise escrever uma única linha de código SQL para isto. Muitos frameworks trabalham com recursos fantásticos que novatos adoram, como por exemplo a automágica para gerar telas administrativas e facilidades como gerar o banco a partir dos models, e fazer deploy por linhas de comando.
Porém quando você trabalha profissionalmente, geradores de código não são boas soluções para seus problemas, e felizmente em frameworks como o Kohana não precisamos de geradores de código automágicos para ter produtividade, pois temos controle real da aplicação sem comprometer agilidade e manutenção do código, sem contar que não são necessários escrever arquivos de deploy e executar tarefas em linha de comando. Você simplesmente ativa a aplicação no modo produção, e tudo está pronto no servidor.
Enfim, este não é um post para ensinar Kohana a fundo, pois há tutoriais disponíveis para isto. Nem muito menos para falar mal do Rails ou do Django, que estão na sua fase de vitrine. Porém, é pra mostrar a você que não é preciso aprender uma nova linguagem para ter produtividade no desenvolvimento para web, se você já programa em PHP.
Este artigo teve seus links propositalmente apontados para versões nacionais dos portais de linguagens/frameworks.