O documento apresenta um comparativo entre frameworks ágeis open-source, discutindo Ruby on Rails, Python Django, PHP Symfony e Groovy on Rails. Inclui características, prós e contras de cada framework, além de uma tabela comparativa com critérios como desempenho, popularidade e facilidade de uso.
1. agileframeworks
Comparativo entre frameworks ágeis open-source
domingo, 21 de setembro de 2008 1
2. Agenda
• Apresentação
• Entendendo Desenvolvimento Ágil
• Apresentando os Frameworks
• Ruby on Rails
• Python Django
• PHP Symfony
• Groovy on Rails
• Tabela Comparativa
• Conclusões
domingo, 21 de setembro de 2008 2
3. Apresentação
• Saulo Arruda (sauloarruda.eti.br)
• Quase especialista em MPS
• Gerente de Produção da Agence
• Desenvolvedor há 10 anos
• Instrutor do SENAC/MS
• Membro do JUG-MS (jugms.com.br)
domingo, 21 de setembro de 2008 3
14. Desenvolvimento Ágil
Como desenvolver com sucesso?
domingo, 21 de setembro de 2008 13
15. Desenvolvimento Ágil
Como desenvolver com sucesso?
Manifesto para o Desenvolvimento Ágil de Software
“Estamos descobrindo maneiras melhores de desenvolver software fazendo-o
nós mesmos e ajudando outros a fazê-lo. Através desse trabalho, passamos a
valorizar:
* Indivíduos e interação entre eles mais que processos e
ferramentas;
* Software em funcionamento mais que documentação
abrangente;
* Colaboração com o cliente mais que negociação de contratos;
* Responder a mudanças mais que seguir um plano.
Ou seja, mesmo havendo valor nos itens à direita, valorizamos mais os
itens à esquerda.”
agilemanifesto.org
domingo, 21 de setembro de 2008 13
17. Agile Frameworks
• Ruby On Rails
• Python Django
• PHP Symfony
• Groovy On Rails (Java)
domingo, 21 de setembro de 2008 15
18. Características
• Padrão M-V-C
• Produtividade
• Fácil de Aprender ;)
• DRY & CoC
• Prazer e Satisfação!
domingo, 21 de setembro de 2008 16
19. Ruby On Rails
• 2004 - David Heinemeier Hansson
• Linguagem Ruby (The Ruby Way)
• Rápida popularização
• Versão 2.1
domingo, 21 de setembro de 2008 17
20. Ruby On Rails
• 2007 - Agence
• Websites (CMS)
• Sistemas de médio porte: Gestão
Operacional e de Treinamentos,
Campanhas de Incentivo, Sistema de
Pedidos e Exportação.
domingo, 21 de setembro de 2008 18
21. Ruby On Rails
• Prós
• Excelente ferramental
• Boa documentação
• Boa adesão do mercado
• Fácil de Aprender
domingo, 21 de setembro de 2008 19
22. Ruby On Rails
• Contras
• Performance e escalabilidade
• Compatibilidade de versões
• Código ou banco de dados legado
• Problemas com Threads
domingo, 21 de setembro de 2008 20
23. Python Django
• 2003 - CMS de um agitado Jornal
Lawrence.com
• Framework Web para perfeccionistas
com prazo
• Mais qualidade e menos código
domingo, 21 de setembro de 2008 21
24. Python Django
• 2007 - Agence
• Sistemas com prazo muito curto
• Controle de Qualidade (TIM),Vendas
Diretas (Toyota), Indexação e Pesquisa
(IGuinho).
domingo, 21 de setembro de 2008 22
25. Python Django
• Prós
• Performance e Escalabilidade
• Interface de administração
automática
• Menos linhas de código
domingo, 21 de setembro de 2008 23
26. Python Django
• Contras
• Maior dificuldade de aprendizado
• Pouca documentação em PT_BR
• Baixa adesão do mercado
domingo, 21 de setembro de 2008 24
27. PHP Symfony
• 2005 - Sensio
• PHP realmente OO
• Alta disponibilidade de profissionais
PHP no mercado
domingo, 21 de setembro de 2008 25
28. PHP Symfony
• Prós
• Excelente Portabilidade
• Aproveita conhecimento em PHP
• Uso das bibliotecas PEAR
• Boa geração de código
domingo, 21 de setembro de 2008 26
29. PHP Symfony
• Contras
• Performance e escalabilidade
• Pouca maturidade
• Limitações da linguagem PHP
• Pouca adoção e documentação
domingo, 21 de setembro de 2008 27
30. Groovy On Rails
• 2006 - G2One
• Performance e escalabilidade para
Rails
• Groovy é uma linguagem dinâmica
para Java
• Disponibilidade de Profissionais Java
no mercado
domingo, 21 de setembro de 2008 28
31. Groovy On Rails
• Prós
• Java JVM
• Ferramental Java
• Facilidade de Uso
• Aproveita conhecimento em Java
domingo, 21 de setembro de 2008 29
32. Groovy On Rails
• Contras
• Carência de Documentação
• Dificuldade para hospedagem
• Pouca maturidade
• Baixa adoção pelo mercado
domingo, 21 de setembro de 2008 30
33. Comparações
• Critérios:
• Com base na experiência na Agence
• Benchmarks disponíveis na Internet
• Consulta à Bola de Cristal
• ATENÇÃO: A tabela a seguir não
deve ser usada como referência em
trabalhos científicos
domingo, 21 de setembro de 2008 31
34. Linguagem
Perfor- Popularida-
Verbosidade Recursos
mance de
Rails
Django
Symfony
Grails
domingo, 21 de setembro de 2008 32
35. Desenvolvimento
Aprendiza- Manutenibi- Produtivi-
Testabilidade
do lidade dade
Rails
Django
Symfony
Grails
domingo, 21 de setembro de 2008 33
36. Performance
Escalabilida- Tempo de Portabilida-
Estabilidade
de Resposta de
Rails
Django
Symfony
Grails
domingo, 21 de setembro de 2008 34
37. Mercado
Documen- Comunida- Hospeda-
Adoção
tação de gem
Rails
Django
Symfony
Grails
domingo, 21 de setembro de 2008 35
40. Contatos
• Saulo Arruda
• E-mail: sauloarruda@gmail.com
• Blog: www.sauloarruda.eti.br
• Agence (www.agence.com.br)
• JUG-MS (www.jugms.com.br)
• SENAC/MS (www.ms.senac.br)
domingo, 21 de setembro de 2008 38
41. Licença
Você pode:
copiar, distribuir, exibir e executar a obra
criar obras derivadas
Sob as seguintes condições:
Atribuição.Você deve dar crédito ao
autor original, da forma especificada
pelo autor ou licenciante.
domingo, 21 de setembro de 2008 39
42. Referências
HUNT, Andy; e SUBRAMANIAN, Venkat; Pratices of an Agile Developer – Work in
the Real World, 1a. Edição, 2006: The Pragmatic Bookshelf.
THOMAS, Dave; Programming Ruby – The Pragmatic Programmer’s Guide, 2a.
Edição, 2006: The Pragmatic Bookshelf.
SUBRAMANIAN, Venkat; Programming Groovy: Dynamic Productivity for the
Java Developer, 1a. Edição; 2008: The Pragmatic Bookshelf.
HOLOVATY, Adrian; KAPLAN-MOSS , Jacob; The Django Book; Versão 1.0.
Disponível em http://www.djangobook.com/en/1.0/
POTENCIER, Fabien; ZANINOTTO, Fraçois; The Definitive Guide to symfony; 2007:
Apress; Disponível em http://www.symfony-project.org/book/1_2/.
MADHAV; Framework Performance, Disponível em: http://wiki.rubyonrails.org/rails/
pages/Framework+Performance.
ASTER, Alex; The Performance test of 6 leading frameworks, Disponível em http://
www.alrond.com/en/2007/jan/25/performance-test-of-6-leading-frameworks/.
NENE, Dhananjay; Performance Comparison - C++ / Java / Python / Ruby/ Jython /
JRuby / Groovy, Disponível em http://blog.dhananjaynene.com/2008/07/performance-
comparison-c-java-python-ruby-jython-jruby-groovy/
Gentoo: Intel Pentium 4; Computer Language Benchmarks Game, Disponível em
http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=all
domingo, 21 de setembro de 2008 40
43. Fotos
Todas as fotos são distribuídas sob licença
CreativeCommons. Atribuições por ordem de aparição:
Nerd big por borgmarc
Lego house por Paty Leahy
Old picture por coleydude
College fight por Carlos Villela
Kill Fuck por eNix
Documentation por Doberdad
Jedi, Norwescon 30 por djwudi
Parker Brand Project Pad Full Shot por oranparker
Scary Tiger por jerkylicker
Playing Computer por scottpartee
Monkey Shines por Stuck in Customs
Pizza - hot from oven - vegan garlic sauce por sean drellinger
domingo, 21 de setembro de 2008 41