Páginas

Showing posts with label framework. Show all posts
Showing posts with label framework. Show all posts

Sunday, March 22, 2009

Web Frameworks

Essa semana eu compilei uma lista de diversos frameworks para desenvolvimento web.
Não me limitei a Python, (quase) todas as linguagens foram consideradas e ainda tentei "separar o joio do trigo" marcando os frameworks mais 'badalados' em cada linguagem.

Eu fiz o original em um mapa mental no MindManager, mas como o formato é proprietário, fica aqui o PNG com o mapa completo exportado.



A lista é a seguinte:

  1. ActionScript
    • Flex
  2. ASP.NET
    • ASP.NET MVC
    • DotNetNuke
    • MonoRail
    • BFC
    • CSLA
    • Umbraco
  3. ColdFusion
    • ColdSpring
    • Fusebox
    • Model-Glue
    • onTap
  4. Groovy
    • Grails
  5. Java
    • Apache Struts 2
    • JavaServer Faces
    • JBoss Seam
    • Spring
    • Stripes
    • Tapestry
    • Apache
      • Click
      • Cocoon
      • Wicket
    • AppFuse
    • Aranea
    • Google Web Toolkit
    • Hamlets
    • ItsNat
    • IT Mill Toolkit
    • OpenLaszlo
    • OpenXava
    • Reasonable Server Faces
    • RIFE
    • Shale
    • SmartClient
    • Sofia
    • ThinWire
    • WebObjects
    • WebWork
    • ztemplates
  6. JavaScript
    • Ajile
    • Axiom Stack
    • WaveMaker
  7. Lua
    • Orbit
    • Kepler
  8. Perl
    • Catalyst
    • Interchange
    • Mason
    • Maypole
  9. PHP
    • CakePHP
    • Prado
    • Symfony
    • Zend
    • CodeIgniter
    • Drupal
    • Akelos
    • eZ Components
    • FUSE
    • Horde
    • Kohana
    • LISA
    • Midgard
    • Nette
    • PEAR
    • Orinoco
    • Qcodo
    • Simplicity
    • SilverStripe (Sapphire)
    • SPIP
    • Tigermouse
    • Zoop
  10. Python
    • Django
    • TurboGears
    • Pylons
    • Zope
    • Grok
    • web2py
    • CherryPy
    • CubicWeb
    • Enamel
    • Gizmo(QP)
    • Glashammer
    • Karrigell
    • notmm
    • Porcupine
    • Pyroxide
    • QP
    • SkunkWeb
    • Spyce
    • web.py
    • Webware
    • Werkzeug
  11. Ruby
    • Ruby on Rails
    • Merb
    • Camping
    • Nitro
  12. Smalltalk
    • Seaside
    • AIDA/Web

Saturday, August 23, 2008

Mais Django!

Definitivamente vou começar a usar Django.
Tudo que vi recentemente tem me empolgado bastante, e acabei reunindo algumas informações úteis:

Django, documentação 100% em sincronia com o código no repositório svn!
http://www.djangoproject.com/documentation/

Um livro, escrito pelos autores do framework, gratuito:
http://www.djangobook.com

Django roda no Jython!
http://code.djangoproject.com/wiki/DjangoAndJython

Várias aplicações prontas (código que se integra ao seu projeto para desempenhar funções corriqueiras)!
http://pinax.hotcluboffrance.com/apps/

Novidades no meu delicious.com:
http://delicious.com/rhcarvalho/django

E tem mais:

Django é muito mais popular que o Turbogears!
turbogears

0.07
django

1.00


http://google.com/trends?q=turbogears%2C+django%2C+&ctab=0&geo=all&date=all&sort=1


Django é tão *hot* quanto J2EE, e em ritmo crescente, enquanto o Java está decadente!
j2ee

7.00
django

1.00


http://google.com/trends?q=j2ee%2C+django%2C+&ctab=0&geo=all&date=all&sort=1


Acredito que dá para juntar templates e aplicações prontas para acelerar o desenvolvimento.
O projeto Pinax é muito interessante nesse sentido.

Até a próxima!

Monday, August 11, 2008

Instalando Django

Finalmente comecei a brincar com o Django. Está sendo uma experiência muito satisfatória até o momento!
A instalação foi extremamente fácil. No ambiente do Ubuntu, tudo que precisei fazer foi:
1) Pegar uma cópia do repositório com a versão mais atual (eu salvei no meu /home por enquanto)
svn co http://code.djangoproject.com/svn/django/trunk/ django
2) Criar alguns symlinks para que o Python acesse os arquivos do Django
sudo ln -s `pwd`/django/django /usr/lib/python2.5/site-packages/django
sudo ln -s `pwd`/django/django/bin/django-admin.py /usr/local/bin


Dependendo do seu sistema, o site-packages pode estar em outro lugar.
Para descobrir onde, rode o seguinte comando no console:
python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"

Pronto! Agora basta seguir para o tutorial em:
http://www.djangoproject.com/documentation/tutorial01/

As instruções oficiais estão em http://www.djangoproject.com/documentation/install/.

Dada a absurda facilidade para instalar, a diversão fica aumentada!
Para ambiente Windows, basta usar algum programa como o RapidSVN ou TortoiseSVN para fazer o checkout do repositório, e colocar o diretório do Django diretamente em C:\Python25\Lib\site-packages\django e copiar o arquivo django-admin.py para C:\Python25\Scripts.

Thursday, August 7, 2008

Primeiras impressões no Django

De alguma forma, eu não tinha bons olhos pro Django. Parece que depois que comecei a usar o Turbogears eu me adaptei ao estilo de trabalho, e quando o Django fazia diferente acabava parecendo algo ruim.

Tirei isso da minha cabeça. Afinal, um bom tempo se passou, tanto o TG quanto o Django mudaram. O TG, aliás, é algo absolutamente diferente com a versão 2.0. Fui no site do Django e tive boas surpresas. Fiquei empolgado com o que vi. Django começou na frente.

Minhas percepções superficiais:
  • Gostei da ferramenta admin, que gera automaticamente uma inferface para classes do Model para seu projeto, e serve como scaffolding do Rails, ou quase isso. O TG não faz nada nesse nível out of the box. Existe o módulo tgcrud que supostamente faria o scaffolding, mas parece ser um projeto pouco ativo. No Turbogears temos uma interface de administração, mas ela não é tão facilmente imbutível no projeto em si. Nela, o CatWalk permite criar, ler, editar e remover itens do banco de dados via interface amigável, porém, para disponibilizar essa ferramenta na sua própria aplicação é preciso fazer algumas magias, e ainda assim não fica apresentável *.
  • Ainda em relação ao admin site, facilidades como: filtro automático em tabelas por determinado valor em uma coluna, busca baseado em uma ou mais colunas, e ordenação automática (basta clicar no título da coluna), são muito interessantes para permitir ações comumente realizadas em planilhas eletrônicas.
  • Enquanto o TG 2.0 não tem previsão de lançamento, o Django 1.0 vem no início de Setembro. É um ótimo momento de começar e já ir usando a versão que está no repositório SVN.
  • A filosofia do Django também me pareceu interessante, embora seja estranho eles quererem se chamar MTV ao invés de MVC. O que é View no MVC é Template no Django, e o que é Controller no MVC é View no Django. Só mesmo o Model se salvou.
  • Outro ponto que me causou desconforto desde o primeiro contato no início do ano passado foram os templates. Eu gosto do Kid Templating usado no TG pela cara de HTML e a limpeza visual do código. Todavia, não parece que o template do Django seja tão ruim assim, é mais questão de costume. O sistema de templating do Django suporta auto-escape, herança, e, hmm... *não* suporta código Python arbitrário! Isso parece ótimo, forçando o programador a não colocar lógica no Template (View do MVC...).

Depois que eu instalar o Django e ter percepções reais, posto o resultado!

* Se alguém se interessar em saber como colocar o CatWalk dentro de um projeto do Turbogears (sem usar o tg-admin toolbox), eu posso publicar a respeito.

Links:
http://www.djangoproject.com/documentation/tutorial02/
http://www.djangoproject.com/documentation/design_philosophies/
http://www.djangoproject.com/documentation/templates/

Python ou Ruby? Turbogears x Django x Rails

Bem, não sou o primeiro a fazer esse questionamento. Comecei a procurar a opinião das pessoas, notadamente em blogs, e a olhar os sites de tutorias de cada opção para formar a minha.

Faz um ano que venho desenvolvendo aplicações web usando o Turbogears, que considero muito legal, comparado a coisas como Java para web, PHP, e qualquer outra coisa mais "burocrática".
O TG me permite trabalhar de forma simples e that just works.

Lembro que antes de usar o TG, depois de algum tempo me divertindo com Python, eu queria experimentar ele ou o Django, que eram os frameworks para Python falados na época. Claro, foi também quando fui ver o que era o tal do Zope (nome que vi no dia que resolvi aprender Python...).

Ultimamente o Ruby on Rails tem cada vez mais "batido à porta", e não falta vontade de cair dentro e desenvolver com ele. Até agora eu só vi screencasts, li bastante, ouvi podcasts e mexi em aplicações prontas.

Mas afinal, porquê todo esse papo furado? Hoje temos mais um projeto de desenvolvimento web. Um projeto que deve durar em torno de dois anos no "rítmo universitário". Para ele, a equipe parou pra pensar no que usaríamos. Essa é uma boa hora para ver algo diferente do Turbogears, conhecer novos mundos... mas, o quão novos? Continuar no Python ou pular pro Ruby?
Eu adoro Python, sim, amo mesmo. Deixamos as outras opções de lado e vamos nos decidir entre TG, Django e RoR.

Nos próximos posts vou relatar minha percepção da relação entre Django x TG e RoR x TG.
Como não tenho experiência prática nos frameworks da esquerda, comentários são muito bem vindos! O que pode parecer bom num primeiro momento, pode esconder fraquezas a longo prazo.