Só que com uma proposta diferente, pois ele herda conceitos do Ruby on Rails e do Django. Ele tenta obter o melhor dos 2 mundos e também faz opções particulares.
Ou seja, ele procura ser produtivo, rápido e seguro.
E por que eu escolhi esse framework que não é tão conhecido ainda?
Por alguns motivos. Alguns de ordem técnica, outros de ordem administrativa e outros ainda de ordem funcional.
Motivos administrativos
- Ele é auto-contido e não precisa de configurações especiais. Ou seja, roda em qualquer hospedagem compartilhada.
- Há compromisso com compatiblidade reversa. Em 2 anos de projeto, nunca a compatibilidade foi quebrada e o plano é continuar assim.
- Eu consigo tirar dúvidas direto com o criador dele e com desenvolvedores brasileiros (sim, nós também contribuímos).
- Tem suporte simples para internacionalização.
- Funciona sem complicação em Windows, Linux, Mac OS e até no Nokia N810!
- A comunidade responde rápido suas dúvidas.
Motivos funcionais
- Ele já tem embutida a geração automática de tickets para apontar erros em ambiente de produção. Nunca uma linha de código é mostrada ao usuário!
- A interface de administração da aplicação gerada é via web, mas você também pode trabalhar na linha de comando, se preferir. Bem melhor do que no rails, que tudo acontece só na linha de comando.
- Essa inteface web já conta com editor no próprio browser.
- Ele conversa com vários bancos de dados. Além dos batidos MySQL e PostgreSQL, tem também bancos "sérios" como IBM DB2, ORACLE, MS SQL Server e Informix. E para desenvolvimento, o prático SQLite.
- Proteje automaticamente sua aplicação contra cross-site scripting, injections, etc.
- Trata upload de arquivos grandes automaticamente.
- Trata formulários de forma simples e objetiva, inclusive com validações complexas junto ao BD.
Motivos técnicos
- Ao invés de ORM (Object-Relational Mapping) ele usa DAL (Database Abstraction Layer), o que proporciona maior poder e controle na manipulação dos acessos ao BD. Por exemplo, fica fácil fazer INNER JOIN e OUTER JOIN e os operadores ==, <=, >=, <> podem ser usados naturalmente.
- Ele roda no Google App Engine sem precisar de modificação em sua aplicação: http://googleappengine.blogspot.com/2009/05/web2py-support-new-datastore-backend.html
- Roda no Jython.
- Já vem com sistema de caching.
- Sua aplicação pode ser distribuída em byte-code (closed source).
- Tem MVC real, com os nomes corretos, ao contrário do Django.
- Eu consigo entrar no ambiente de produção usando o shell dele e gerar relatórios ad-hoc, sem necessidade de implantar rotinas. Isso ajuda MUITO, principalmente na fase de implantação do aplicativo.
- Eu posso programar em Python.
- Ao contrário do Django, não preciso ficar inserindo imports para usar as funcionalidades do framework.
Claro que o web2py não é perfeito.
Um ponto que ainda deixa a desejar é a documentação.
E esse é o principal objetivo desse blog: ajudar quem está começando a desenvolver com web2py.
[update em 20/outubro/2010]: A documentação melhorou muito desde que esse artigo foi escrito. O livro oficial do web2py está na 3a edição e disponível gratuitamente online.
cara muito legal sua iniciativa, estava estudando python e comecei a me interessar por web2py, esse blog será uma verdadeira mão na roda, parabens!!
ResponderExcluirVinicius,
ResponderExcluirParabéns pela iniciativa e conte comigo no que for preciso. Já estamos começando a usar o Web2Py em alguns sistemas aqui na empresa e posso te dizer que realmente vale a pena.
Um grande abraço pra ti e sucesso nesta nova empreitada do blog.
@matias, para mim também será uma mão na roda. rsrs
ResponderExcluir@Leandro, ajuda é do que vou precisar! Tenho muitas dúvidas e creio que outras pessoas também têm. Obrigado pela disposição.
--
Vinicius Assef.
Muito legal sua iniciativa, também estou aprendendo web2py e estou adicionando seu blog nos meus feeds.
ResponderExcluirTambém me ofereço para ajudar, é interessante ter material em português.
@Leandro e @MoRiArTy, me mandem em pvt seus emails, ok? O meu tá na minha assinatura lá em cima, no início do blog.
ResponderExcluir--
Vinicius Assef.
Só não gostei do comentário sobre "não-seriedade" em relação ao postgre :)
ResponderExcluirMas parabéns pelo post e pelo blog, despertou um interesse no web2py aqui! ;)
Francisco, note que "sérios" está entre aspas ;-)
ResponderExcluirJá que despertou o interesse, que tal experimentá-lo mesmo?
Depois conte-nos o que achou.
Pode crer, Vinicius.
ResponderExcluirEstou no meio de um concurso (inserido num período entre as fases do mesmo ^^), assim que isso passar, eu dou uma estudada no web2py e rola um feedback. :D
Abraços e parabéns pelo blog! ;)
Vou dar uma olhada nele, agora que voltei a estudar Python.
ResponderExcluir