2010-04-01 8 views
8

Infine mi sono sentito come lo jQuery sta lentamente diventando lo standard defacto nelle librerie JS (potrei sbagliarmi!), O almeno è più attivo rispetto al resto dei framework.devo passare da prototipo a jquery?

Ad esempio, ho cercato un buon calendario open source come Componente e trovato http://fullcalendar.vinsol.com/ basato su jQuery.

Stiamo usando Prototipo per molto piccole cose, come la sua capacità di selezione ($ funzione come una scorciatoia per document.getElementById, principalmente), l'esecuzione di qualche pezzo di JS quando la pagina viene caricata e di emettere alcuni molto semplici chiamate Ajax.

Quindi immagino che la migrazione dovrebbe essere abbastanza semplice, ma mi piacerebbe conoscere i pro/contro della migrazione da Prototype a jQuery.

D'altro canto, suppongo che averli entrambi insieme non sia una buona scelta, specialmente tenendo conto che la migrazione dovrebbe essere abbastanza semplice. Ho ragione?

Modifica: alcune risorse utili:

risposta

9

Prototype e JQuery coprono campi molto simili. Ho usato Prototype come mio principale JS Framework per molti anni professionalmente, e sto migrando a JQuery. Ecco perché:

  • JQuery è più veloce. Il prototipo arriva per ultimo nel tutti i confronti di prestazioni che ho visto (scelta casuale here). Ho anche un'impressione soggettiva di vecchia data che gli effetti di Prototype sono più lenti in generale, specialmente su macchine più datate.

  • JQuery sembra essere più popolare, non solo, ma anche su Stack Overflow.Il che significa che è molto più facile ottenere supporto, e il numero di plug-in disponibili e codice pronto è molto più grande. Questa non è la ragione principale per me, ma insieme all'impressione generale che jQuery è la piattaforma tecnicamente più solida, la scelta è diventata ovvia.

mia unica antipatia è:

  • codice jQuery tende a guardare orribile. Mi piace JQuery e la sua filosofia molto molto, ma io spesso odio guardando il codice. Se qualcuno ha inventato un dialetto di JQuery che sia bello e strutturato come un semplice vaniglia JavaScript, sarò lieto di essere a bordo. :)

Re commenti: Ulteriori chiarimenti su quello che non mi piace di stile di codifica di jQuery.

In una parola: parentesi. Migliaia e migliaia di loro :)

Seriamente però. Mi rendo conto che gran parte di ciò che è considerato "stile jQuery" sono scorciatoie e abbreviazioni che sono completamente opzionali da usare. Tuttavia, dal punto di vista della leggibilità e della manutenibilità del codice, trovo che pezzi di codice jQuery molto più difficili da leggere e da leggere entrano nel numero. Sì, questo diventerà molto più semplice con la crescente esperienza di jQuery, ma voglio che il mio codice sia leggibile anche da un outsider totale. Riguardo a ciò, jQuery non sta andando nella giusta direzione. Gran parte del codice è semplice brutto. Questa è la mia unica critica principale a questa grande struttura fino ad oggi.

Concatenamento del metodo, però, @noah, e roba come il nuovo .delay() o il suo nome, penso assolutamente rock. Non sto dicendo nulla contro questo.

+0

non discutendo, solo curioso di sapere quali aspetti del codice non ti piacciono? –

+0

Non discutere neanche: Ma sono sorpreso quanto Paul sembra essere :) – Matt

+0

Vuoi dire che non ti piace il codice scritto usando jQuery? ad esempio, metodo di concatenamento e tutto il resto? – noah

6

Per quanto ne so, Prototype e jQuery per lo più si sovrappongono, ad eccezione quella jQuery si concentra principalmente su manipolazione DOM, ajax, eventi, ecc, e in realtà non ha alcune delle funzionalità di Prototype, come le classi, l'ereditarietà, ecc. Tuttavia, se non hai bisogno di queste cose, e vuoi solo un framework per la manipolazione DOM cross browser, ajax, eventi, ecc, quindi penso che jQuery sia la strada da percorrere.

+1

Ma allo stesso tempo, non penso che ci sia qualcosa che puoi fare con Prototype che non puoi fare con jQuery (in pratica). Sì, ci sono alcune specifiche che non si traducono direttamente, ma devo ancora imbattersi in qualsiasi problema che mi ha mandato a Prototype. – dclowd9901

+1

d'accordo, basta dire che se tutto ciò di cui hai bisogno è una js lib per il manipolo del DOM cross-browser e ajax, jquery è (IMHO) la scelta migliore. –

4

È possibile utilizzarli entrambi insieme. Basta chiamare lo jQuery.noConflict(); dopo aver caricato jQuery. Quindi dovrai scrivere jQuery("whatever") anziché $("whatever"). Prototype offre molte funzionalità che jQuery non ha.

Tuttavia, Prototype è in via di uscita. jQuery ora è il re, e per alcune buone ragioni. Se vuoi gli ultimi plugin e widget, jQuery li avrà.

Underscore.js offre la maggior parte delle stesse funzionalità di Prototype senza compromettere i prototipi di oggetti e lo spazio dei nomi globale. Underscore plus jQuery dovrebbe rendere la migrazione da Prototype piuttosto semplice.

+0

che Underscore.js sembra interessante! grazie per il link –

2

Utilizzo Prototype dal 2006 e faccio eco ai sentimenti di Pekka sul brutto codice. Il prototipo è più elegante.

Sono stato un convinto sostenitore della comunità Prototype (+ Scriptaculous) ma, purtroppo, Prototype sta perdendo quote di mercato e quote di mercato. Le carriere possono essere costruite sulla conoscenza di jQuery, non tanto per Prototype.

Sembra jQuery persone sembrano essere più felici usando plug-in, senza sapere come funzionano, mentre Prototype persone sembrano essere più programmatori hard-core e tendono a costruire ciò di cui hanno bisogno loro stessi.

Detto questo, la mia transizione a jQuery non è stata così dolorosa. La funzionalità è più o meno la stessa, solo con nomi diversi. C'è molta più documentazione e codice di esempio disponibile, rendendo più facile la raccolta.

I quadri sono bersagli mobili, a volte si scagliano l'un l'altro in termini di velocità e caratteristiche. Tutti continuano a migliorare. Dire X è meglio di Y cambierà nel tempo

Penso che la grazia di risparmio di Prototype sia Scripty2. Questo è un nuovo straordinario motore di animazione con Prototype. Se ciò accade (e arriva al mercato, non è nemmeno nella versione Beta) potrebbe esserci una ripresa di interesse in Prototype. Oltre a ciò penso che avrà sempre i suoi sostenitori, ma svanirà dal mainstream.

+0

Ho usato il prototipo per un po 'e mi piace molto, ma i widget e i plugin che altri framework hanno (come jquery e dojo) stanno spingendo la mia azienda ad abbandonare il prototipo in favore di uno degli altri framework. – tmeisenh

4

Per rispondere direttamente alle domande: Sì, è necessario passare. E sì, hai ragione.

So che hai detto che non ti piacciono le parentesi ... puoi fornire uno snippet di codice prototipo che consideri bello (ti jQuery-itize per il confronto)?

0

Penso che dovresti. Uso jQuery religiosamente e non sono un Javascript Pro. Penso che la facilità d'uso sia una delle cose più potenti al riguardo.

2

se ti interessa ottenere un altro lavoro, magari spostati su JQuery. Se ti interessa il bastone JavaScript bello e intuitivo con il prototipo, non va via!