No decurso do desenvolvimento da minha framework MVC tenho-me questionado onde e como encaixar os widgets necessários para que seja Ajax ready.
Há muito que uso a framework Prototype para as artes mágicas do javascript e estava decidido a usá-lo como base para todo o desenvolvimento no V do MVC, mas tinha já programado uma pequena investigação para não me precipitar, até porque o facto de tanto o JQuery como o Prototype usarem o $ torna-os, à partida, ligeiramente incompatíveis.
Depois de ler uns quantos artigos e as suas acesas discussões acabo por ficar mais virado para o JQuery. Como é óbvio (a posteriori é fácil dizer que é óbvio) tudo o que seja possível numa das frameworks acaba por o ser também (mais linha menos linha) na outra. A grande diferença entre os dois poderá estar na utilização que lhes queremos dar.
O Prototype extende o Javascript tornando-o mais OOP e assim permite escrever código mais reutilizável e mais natural para programadores que sejam demasiado OO para aceitar uma linguagem instance oriented como o Javascript. Não é o meu caso, por mais que gosto do meu terreno natural, fascina-me sempre a diferença, que neste caso reside na estrenha beleza do javascript tal como ele é; não luto para o modificar, antes prefiro compreender os seus mecanismos “prototipados” de herança e instanciação.
Quanto ao JQuery parece ser mais directo na forma como ataca as questões que comunmente necessitamos de resolver neste tempo de ajaxização da web. Mais, o source é mais leve e está organizado num sistema de plugins, bem, documentado e acessível no site. Cool, é mesmo o que eu precisava. Goodbye Prototype + script.aculo.us + mootools, hello JQuery.
Bons e maus artigos, excelentes exemplos e discussões:
- Why I moved from Prototype to JQuery
- Your Momma’s So Fat… Prototype vs JQuery
- Prototype and jQuery: A code comparison
Update: Como acabo de perceber que afinal o JQuery permite ser “configurado” para funcionar em compatibilidade com o prototype, vou tomar a opção de manter a possibilidade de usar os dois na minha framework:
// prototype select one and bind
$('someid').observe('click', function(event) { alert(this); event.stop(); });
// prototype select collection and iterate
$$('.someclass').each(function(link) {
link.observe('click', function(event) { alert(link); event.stop(); });
});
// JQuery (in compatibiliy mode, with alias $j) always selects zero or more
$j('.someclass').click(function(event) { alert(this); event.stop(); } );



Latest Comments
RSSAndré Torgal, J Leandro, Joana Torgal, vanessa, Carlos Martins, btt starbiker, Pedro Cardoso
vanessa
StreetGuy, ASP World Tour 2008 Indonesia Tiago Pires - Kelly Slater | Andrezero
vanessa, Joana Torgal, André Torgal, bizuka
Alf
André Torgal, vanessa