Questa mattina su Ajaxian.com è stato pubblicato un interessante articolo che conferma quanto John Resig ci ha detto nell'intervista che ci ha rilasciato riguardo al Selector Engine Sizzle.
Il progetto consiste nel creare un'applicazione standalone per attraversare il DOM tramite i selettori CSS che può essere utilizzata singolarmente o integrata in qualsiasi altro framework, a patto che ovviamente questi ultimi rinuncino al motore che usano correntemente (oppure permettano all'utente di decidere in fase di download).
Le seguenti applicazioni hanno preso parte o stanno pensando di prendere parte al progetto, che verrà rilasciato sotto licenza MIT:
Vediamo di analizzare i punti a favore di questa nuova prospettiva.
- con un unico Selector Engine, il risparmio di codice sarebbe notevole: se ogni framework adottasse lo stesso engine, il problema di codice superfluo non si porrebbe;
- avendo a disposizione un unico motore sarebbe più facile individuare possibili bug e problemi, dato che le community di ogni framework si concentrebbero sulla stessa applicazione, ed eventuali migliorie porterebbero vantaggi a tutti gli sviluppatori, indipendemente dalla scelta effettuata;
- gli sviluppatori si troverebbero ad utilizzare una ed una sola sintassi per attraversare il DOM;
- si avrebbe un contatto più stretto tra i team dei framework, il che potrebbe portare alla condivisione di nuovi progetti ed al miglioramento complessivo dei prodotti attualmente offerti.
Ecco invece punti di osservazione dal rovescio della medaglia:
- ovviamente, è possibile che i Selector Engine attualmente utilzzati nei diversi framework contengano o richiedano costrutti e sintassi specifiche, il che renderebbe molto difficile l'integrazione con Sizzle;
- non è detto che tutti i team vogliano rinunciare ai Selector Engine creati con tanta fatica (è una delle applicazioni più difficili da realizzare in assoluto con Javascript);
- i Selector Engine attuali potrebbero contanere particolarità appositamente studiate per dare Speed Boosts o migliorie in termini di performance se integrati con il resto delle sintassi del framework.
Voi che ne pensate? Quale opinione avete su questo nuovo ed interessante progetto?