Framework Akelos - Primeiras impressões
Posted on October 27, 2007, under Desenvolvimento.
Através do site PHP Frameworks, reencontrei um framework PHP, que já tinha visto em outro momento mas não tinha dado muita atenção, o Akelos. O Akelos é o segundo framework mais parecido com Rails na minha opinião, o primeiro é PHP on Trax (até no nome).
Depois de alguns testes rápidos, vamos a uma analise ainda mais rápida sobre o framework.
Pontos fortes:
Views: O engine das views é muito parecido com o do Rails, tanto em termos de syntax como de funcionalidades, inclusive pelo que eu pude perceber não é difícil utilizar as views desenvolvidas para um framework no outro.
Console: Essa com certeza foi a sacada que mais chamou a minha atenção. Os desenvolvedores que só trabalham com PHP não estão acostumado com consoles de interpretação da linguagem, mas quem desenvolve em linguagens como Python, Ruby e Lua sabe o quanto o interpretador pode ajudar em testes rápidos.
Migration ou Installer: Outro porto forte do Akelos é um sistema parecido com o do Rails, para deploy de banco de dados, o migration. Para que não sabe o que é, o migration funciona como um controle de versão do DB, feito pelo programador através de scripts, criados na própria linguagem, no caso do Akelos em PHP e no caso do Rails em Ruby. Os scripts de migration permitem adicionar tabelas e campos, e mesmo remove-los, utilizando o próprio PHP, no screencast disponível no site do Akelos por exemplo, é feita a demonstração de como desenvolver um Blog usando o Akelos (aonde eu já vi isso em?), neste screencast, o desenvolvedor quase não executa nenhuma tarefa diretamente no banco de dados (e os DBAS se reviram nas tubas), é tudo feito através do migration. A única coisa que me confundiu um pouco é que os scripts ficam em uma pasta chamada installers, mas o comando de execução é migration mesmo.
Arquivos de Configuração: Diferente de muitos frameworks disponíveis por ai, diferente inclusive do Symfony, o Akelos utiliza arquivos de configuração com base em PHP mesmo, ou seja arquivos com variáveis e código PHP. O Symfony que me perdoe, mas neste ponto eu fico com o Rails e com o Akelos, arquivos de configuração na linguagem nativa do sistema, são bem mais fáceis de se configurar, sem falar na questão principal: bem mais eficientes e rápidos. No Symfony por exemplo, mesmo fazendo cache dos arquivos de configuração, o framework gasta muito tempo analisando os arquivos Yaml, tempo que poderia ser gasto executando o código principal do script, isso tem uma diferença muito grande na execução final do sistema. O uso de arquivos de configuração na linguagem nativa do sistema prove ainda uma funcionalidade impagável: lógica. Conhecendo a linguagem e o ambiente é fácil fazer arranjos nos arquivos de configuração do Akelos ou do Rails, testes lógicos e chamada a variáveis de ambiente são bons exemplo, mas o céu é o limite.
Pontos fracos:
PHP4 e PHP5: Eu sei que muita gente ainda tem PHP4 em seus servidores, e que é um fato, o Akelos pode abocanhar um número bem maior de desenvolvedores, por manter compatibilidade com as duas versões da linguagem, mas poxa! Tem coisas que só o PHP5 pode fazer por você, duas delas? Tratamento de exceções e objetos dinâmicos com uso de __get(), __set() e __call. O console por exemplo, teria ficado bem melhor com isto, poderíamos ter um tratamento eficiente das exceções, o que evitaria que o usuário fosse “jogado” para fora do console em caso de erros, o que em testes iniciais se mostrou um verdadeiro saco.
Depuração: Com certeza vai ser difícil encontrar um framework que seja tão eficiente neste quesito como Symfony, acho que um dos motivos seja justamente o uso do PHP5 e de não ser amarrado aos conceitos do Rails, mas a barra do Symfony e de fato insuperável. Para quem não conhece, ela trás informações sobre: variáveis de ambiente, configurações do framework, tempo gasto com execução do script (está parte é bem granulada), memória utilizada pelo servidor para executar o script e por fim número de queries e o código das mesma. Tudo bem que podemos utilzar um depurador para fazer isto, mais quem ja instalou e usou um depurador em PHP sabe o quanto e difícil essa tarefa, quando você tem um bom depurador você não tem um bom editor compatível, quando tem o editor, ele não é compatível com o depurador que você tem.
No balanço geral, eu considero o framework muito bom, com muito por evoluir ainda, mas muito bom, a equipe de desenvolvimento parece comprometida a torna-lo bem funcional. Um ponto fraco neste sentido, é o apego ao padrão do Rails, sabemos que o Rails é muito bom e que seu padrão de desenvolvimento revolucionou este mercado, mas precisamos fazer frameworks que superem isso, afinal sempre precisamos esta atrás de algo ainda melhor.
Uma das vantagens mais claras do Rails é o Ruby, principalmente se comparado ao PHP4. O Akelos poderia desbancar muito bem o Rails e em pouco tempo, se tivesse se utilizados dos maravilhosos recursos do PHP5, mais como não utilizou, é torce pela eficiência da equipe de desenvolvimento em superar as limitações impostas pelas linguagem.
3 Replies to "Framework Akelos - Primeiras impressões"
nuxlli on April 21, 2008
Thales,
Não tenho uma opinião fechada sobre quais as características um bom framework deve ter, pois isso pode variar de projeto para projeto. O mais importante e que o framework tenha pelo menos:
- Documentação: principalmente sobre como estender suas funcionalidades;
- Comunidade: disposta a colaborar em todos os níveis do projeto, de documentacao a reporte de bug;
- Plugins: por mais que a framework seja um primor de funcionalidades e qualidade, se ela não for bem aceita e não construir uma base de contribuições desse tipo, as chances de que ela de errado são muito grandes.
O caso dos generators é um caso complicado, tem muito framework por ai que gera tudo, do banco as template, mas esquece que precisamos customizar isso. É importante gerar coisas prontas, mas mais importante que isso é permitir que essas coisas seja customizadas.
Eu diria que não existe o ápice de flexibilidade, a palavra framework vem de algo parecido com o gabarito, o que por si só já que dizer que é uma forma pré construída, com uma serie de características pré definidas. O que torna os frameworks ferramentes direcionadas a resolver certos tipo de problema e não todos.
Espero ter respondido o que você queria saber, de qualquer forma isso é apenas minha opinião, posso estar errado ![]()
Framework Akelos - Primeiras impressões « Eu vou pra NASA on May 14, 2008
[...] post info Por nuxlli Categorias: Desenvolvimento Tags: akelos, console php, framework php, migration, mvc, php, rails Este post mudou de casa: http://www.nuxlli.com.br/2007/10/27/framework-akelos-primeiras-impressoes/ [...]

Thales Oliveira on April 20, 2008
Na sua opinião pessoal o que um bom framework tem que ter como base?
Até aonde um framework deve gerar ferramentar prontas?
Qual o ápice de flexibilidade que um framework pode alcançar na sua opinião?