Deixa eu te falar porque o Laravel é melhor que o Codeigniter

Olá senhores, tudo bom? Esse post de hoje pode ser considerado polemico para alguns e para outros é chover no molhado. Mas decidi fazer ele por dois motivos: o primeiro é o fato de perceber as pessoas às vezes tem um certo medo de falar o que realmente pensa e acabar ofendendo ou diminuir uma comidade, a segunda e que não vi nenhum artigo aqui no Brasil fazendo um comparativo entre o Codeigniter e o Laravel.

Gostaria de deixar bem claro para os senhores que a minha intenção não é fazer pouco do CI, e tão pouco dizer que o Laravel é a solução para todos os seus problemas, porque isso também não é verdade.

Mas vamos deixar de enrolação e vamos ao fatos na minha opinião de merda.

Caso você já tenha dado uma espiadinha nos dois já deve ter percebido os dois tem muito em comum. Ambos tem uma documentação excelente, com exemplos de código, com o conteúdo fácil de achar, você pode ler elas do início ao fim e acredite não vai ser entediante. pois a linguagem de ambas é clara e objetiva. Muitos frameworks com muito mais tempo de estrada perderam feio para esses dois novatos.

Outra caraterista em comum que os dois possuem é a pequena curva de aprendizado. Acredite, dependendo da sua experiência, você pode criar coisas incríveis em apenas algumas horas.

E por fim ambos são extremamente populares, eu acredito que essa popularidade é resultado dessas características acima citadas. Mas as semelhanças param por ai, o que vem depois muda todo o quadro.

Laravel é PHP na crista da onda

O Laravel é um framwork que abraçou as novas features do PHP, como funções anôminas e namespaces

O Codeigniter tem até uma justificativa que tem fundamento ele se diz um framework para “projetos reais com prazos reais”. Esse lance de prafrentex é coisa de maluco, vamos ficar aqui mesmo, é mais estável, amplamente utilizado e difundido nos servidores web, e empresas de web hosting.

“You need broad compatibility with standard hosting accounts that run a variety of PHP versions and configurations.”
Codeigniter Web Site

Mas de lá pra cá a coisa mudou muito, hoje o desenvolvedor tem muito mais controle sobre seu ambiente de produção. A popularização e o número de serviços na modalidade PaaS deu aos desenvolvedores domínio total. Escolhemos a versão do PHP que queremos usar, instalamos as extensões que quisermos. Esse argumento do Codeigniter fez sentido no passado.

Laravel usa Composer nativamente.

Fica muito fácil utilizar componentes de terceiros no Laravel através do Composer. Mais ai você pode falar: “mas no Codeigniter também dá pra utilizar o Composer” eu sei disso, mas para funcionar temos que fazer um pequeno workaround, no Laravel é nativo.

Laravel e a linha de comando se dão muto bem obrigado.

O Laravel possui uma interface com a linha de comando que é simplesmente incrível. O Artisan como é chamado te permite realizar migração de banco de dados, usando o comando “serve” você disponibiliza seu projeto utilizando o servidor web embutido do PHP. Existe até um warper que possibilita você interagir com os objetos do seu sistema em linha de comando basta digitar “php artisan tinker”. Abaixo a lista de comandos disponivel:


No Codeignigter não temos nada parecido com isso. Você ate pode executar códigos em linha de comando mas você não dispõe de nem um terço dos recursos que o Laravel te oferece. Mas isso tem explicação: esse nunca foi o foco do Codeingiter ele nunca quis ter essas funcionalidades. Abaixo print do site:

“CodeIgniter is right for you if… You want a framework that does not require you to use the command line”

Laravel tem uma base solida.

O uso do Composer possibilitou a utilização de componentes criados por terceiros e isso é muito bom. Na minha opinião esse é o grande trunfo do Laravel isso permite que um número maior de pessoas melhorem o framework indiretamente. Digo isso pois quando uma versão nova do Http Foundation é lançada o Laravel é diretamente  beneficiado. Alias fica aqui o destaque para os componentes do Symfony que que são muito utilizados no core do Laravel.

Alem do beneficio acima citado, isso também tira das costas do core team do Laravel a “resposabilidade do escopo infinito”. É impossível criar um excelente framework que simplesmente não possui um escopo definido.

Já o nosso amigo CI ficou parado em 2010.

Laravel tem um ORM que conversa com você.

Nunca vi um ORM tão bom com uma curva de aprendizado tão pequena. Nele você vai encontrar tudo que você precisa. A unica coisa que até o dia desse post que eu notei é que ainda não existe suporte oficial ao Oracle. Existe ate um pacote que resolve isso.

O Codeigniter não tem ORM.

Testes Unitários na sua cara

O Codeingiter até tem uma classe para realizar testes unitários, mas ela é bem fraquinha. E não existe jeito fácil de integrar o CI com o PHPUNIT, é uma parto de mamute. Se você tiver paciência segue esse link e boa sorte.

Já no Laravel você não precisa fazer nada! basta ir na pasta app/tests e criar seus testes unitários utilizando o PHPUNIT, e de quebra você ainda pode fazer seus testes funcionais.

Conclusão

Apesar de ser um excelente framework, possuir inúmeras qualidades ele se recusou a dar um passo a frente enquanto os outros ao seu redor perceberam a mudança no paradigma e simplesmente abraçaram a mudança. A verdade meus amigos é que o Codeigniter parou no tempo.

Em verdade, não é a toa que o Laravel tem tantas semelhanças com o CI o que aconteceu é que parte da comunidade, inclusive membros importantes, do CI migraram para o Laravel. Acredito que a comunidade queria um framework com uma documentação tão boa quanto a do Codeigniter, com a curva de aprendizado do Codeigniter mas com uma arquiterura que respeite a orientação a objetos e com bases solidas.

E ai qual é a sua opinião? Você defende do Codeigniter? Ou você gosta mesmo é do Symfony?

Anúncios

21 comentários

  1. Realmente, o Laravel é incrível e apesar de muitos falarem mal da estrutura do CI ele já me ajudou muito. Vendo que o CI “parou” em 2010 muitas pessoas ficaram na dúvida: CAKE, FUEL, Yii, Zend aí em 2011 nasce o Laravel para artesões da WEB, muitos apostaram pra ver, e deu certo. Outra coisa que vale ser citado é o sistema de templates do Laravel “o quebrador de galhos” [blade] que no CI também não tinha. Quem curte um Smarty vai se amarrar no blade é muito semelhante.

  2. CodeIgniter é muito mais rápido para aplicações PHP que exigem bastante.
    Lavarel está muito a frente no desenvolvimento e pode ser muito veloz programar com ele, por conta de bibliotecas de terceiros, etc., porém não é tão veloz quanto o CodeIgniter quando executado em um servidor.

    Se o projeto é grande e precisa de um time de desenvolvimento Laravel é mais indicado, porque possui novas ferramentas das quais um time necessita.

    Para desenvolvedores solo o CodeIgniter se encaixa melhor e o “novo lar” do CodeIgniter prometeu uma nova versão.

    Um dos benchmarks CodeIgniter vs Laravel: Troque e veja mais testes em Test Types:
    http://www.techempower.com/benchmarks/#section=data-r9&hw=peak&test=fortune&f=0-w0-0-0

    Um controle com mais afinco do código propõe que se use o menos possível de códigos de terceiros, uma vez que se não bem estudados podem trazer bugs e falta de segurança para seu projeto. Hoje em dia os prazos são tão apertados que o “Lego” funciona muito melhor para se cumprir prazos.

    Abraços

  3. Acho que por ser da velha guarda, prefiro continuar com meu ponto de vista de que o php foi feito para ser simples ao ponto de extrair um pacote e sair programando… sem muito desses mimimi de linha de comandos, AAAA e mais um detalhe! se você estiver em um mundo corporativo em que você precise de query performática, pode jogar fora o seu ORM e voltar a escrever SQL nativo onde irá possibilitar ter a visão dos planos das querys. Mas se fazer sisteminha de padaria e portais você considerar projetos corporativos, pode continuar com o uso de ORM. Vivo dizendo isso na empresa em que trabalho, os SGBDs de hoje em dia são tão poderosos para se jogar fora com o uso de ORM. (Apenas um ponto de vista de m.. também.)

  4. Se o próprio articulista reconhece que a opinião dele é “de merda”, nem vou perder meu tempo de ler isso, porem tenho um conselho ao articulista!

    Amigão estude mais e pegue um framework modifique-o ou crie seu próprio framework, CodeIgniter também por tratar-se de um framework de código aberto pode ser melhorado de “N” maneiras tanto em usabilidade quanto em performance.

    Não estou aqui para defender framework mas de certa forma me aborrece por um articulista que talvez nem saiba fazer um benchmark para comparar dois frameworks tenha uma opinião superficial assim, acredito que quem criar um sistema com alta escalabilidade é o programador não o framework, mas fica meu conselho e fico muito grato por ter reconhecido que sua opinião é “de merda”.

    Grande abraço a todos!

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s