Saltar para: Posts [1], Pesquisa [2]

Simplice

A vida é simples

Simplice

A vida é simples

Frameworks, CMS, e afins: bom ou mau?

Já lá vai mais de um ano que comecei a mexer em frameworks, CMS, e outras coisas semelhantes (SugarCRM, OrangeHRM, etc). Na altura comecei por razões mistas. Primeiro porque queria educar-me sobre ambas as coisas, e depois porque comecei a trabalhar numa empresa que as usa bastante.

Experimentei várias frameworks (django, Symfony, Ruby on Rails) e vários CMS (Drupal, Joomla, ezPublish, Bricolage), e gostei de algumas, outras nem por isso, e algumas detestei. Mas no fim das contas, todas elas fazem mais ou menos a coisa, umas com umas vantagens, outras com outras. Tenho as minhas preferências (django e Drupal), mas isso acaba por ser uma escolha pessoal.

O que me interessa falar aqui, agora que já trabalho regularmente com elas há um ano, é fazer um balanço de como a sua utilização mudou a minha vida.

Quanto às frameworks, não tenho nada de negativo a apontar. Apesar de haver sempre uma pequena desvantagem de performance em relação a programar tudo de base (que no meu caso era usando Perl/Mason ou PHP/Smarty), são diferenças que no fim das contas não dizem muito, a não ser que estejamos a tentar fazer algo como o Sapo. A verdade é que nos permitem fazer uma aplicação com muito menos trabalho, e que fica obrigatoriamente com o código mais organizado. E depois, já tenho 10 anos em cima a fazer sites, já estou bem fartinho de reinventar a roda cada vez que faço um site. Com uma framework, já tenho a base feita, só tenho de preocupar com a aplicação em si mesma.

Já em relação aos CMS (e afins), já estou bastante mais descontente. Estou cada vez mais convencido de que os CMS são uma perda de tempo a não ser que o site seja verdadeiramente simples. Se é um site normal, com um menu clássico, artigos clássicos, fóruns, blogs, imagens, etc, então sim, vale mesmo a pena (por exemplo, estou a pensar portar este blog para Drupal, porque agora é baseado num CMS feito por mim, o Apoidea). O problema é que os clientes querem sempre uma porcaria qualquer que não vem de base. Ou é uma página com uma lista de artigos em ajax em que só aparece o título de cada um, ou é um login que querem que vá automaticamente para uma página X, ou um flash que muda conforme o item do menu em que estamos. Essas pequenas tretas, às vezes, levam mais tempo a montar num CMS que o resto do site todo. E se no fim do projecto podemos dizer que ainda ganhamos alguns dias por usar um CMS, passado um ano de novos pedidos do cliente, começamos a ver que afinal para fazer cenas que levavam minutos se tivesse sido feito à medida, com o CMS levamos um ou dois dias.

Acresce a isso o facto de que trabalhar com CMS é chato. Eu gosto de programar. De fazer linhas de código. Não gosto de levar o dia todo a clickar em links e botões, e a arrastar itens AJAX (a não ser que tenha o mínimo de interesse lúdico). E não gosto de ter de andar a fazer var_dumps o dia todo para perceber onde é que consigo ir buscar aquele valor que o cliente teima em ter ali. E se com plataformas tipo o SugarCRM as coisas estão tão bem feitas que se torna fácil, a maioria dos CMS e afins não estão feitos para serem muito modificados. Isso para já não falar de projectos que a empresa teima a vender usando um CMS, que se vê claramente que pela complexidade envolvida, uma framework é muito mais adequada.

Por isso, se eu pudesse escolher sempre, usava frameworks. A razão é simples: Causam menos stress.

Primeiras experiências com Django

Tenho estado a brincar com o Django, e posso dizer que estou a adorar, é a minha preferida. É uma framework praticamente perfeita, pelo menos por enquanto. Em relação às outras em que tenho mexido, destaco a versatilidade, a simplicidade, a não necessidade de mexer na parte de Control do MVC, e a liberdade de organizar as directorias como quiser.

Isto ainda é só uma análise superficial, mais tarde hei-de comparar as outras frameworks num artigo. Ainda vou mexer mais no Symfony, e ainda vou dar uma oportunidade ao Ruby on Rails.

No que diz respeito a outro tipo de frameworks, as de AJAX, também ando a dar uma olhada na Ext JS, que me está a parecer muito boa. Permite uma utilização do AJAX na forma que acredito ser correcta: Adicionar elementos específicos dentro de um site, quando melhoram a experiência do utilizador. Dêem uma olhada, vale a pena.

Frameworks

Ultimamente tenho pensado em frameworks. Coisas como o Symfony, ou o Django, ou o Ruby on Rails. Sendo que as linguagens que domino melhor são o PHP e o Python, e visto que não gosto de Ruby (já tentei gostar), acho que o Ruby on Rails tem poucas hipóteses. Quanto às outras duas, por um lado o Django é melhor (mais rápido, melhor linguagem de template, melhor comunidade, é Python), por outro lado o PHP é muito mais usado nos dias de hoje.

Mas existem mais dúvidas. Por um lado, a maioria das empresas por aqui estão a usar frameworks (e não ter nenhuma no CV é olhado de forma estranha), e supostamente poupam muito trabalho. Por outro lado, para uma pessoa que tem a experiência que eu tenho, e com tanto código que posso reutilizar, será que ganho tempo a usar uma framework?

Digam de vossa justiça.