2010-04-01 12 views
8

Por último he estado sintiendo como jQuery se está convirtiendo lentamente en el estándar de facto en las bibliotecas JS (podría estar equivocado!), O al menos eso es más activo que el resto de los marcos.¿Debo pasar de prototipo a jquery?

Por ejemplo, he estado buscando un buen calendario de fuente abierta como Componente y encontré http://fullcalendar.vinsol.com/ que se basa en jQuery.

Hemos estado utilizando Prototipo para cosas muy pequeñas, al igual que sus capacidades selector ($ funcionan como un acceso directo para document.getElementById, principalmente), la ejecución de alguna pieza de JS cuando se carga la página y para emitir algunas muy simples llamadas Ajax.

Así que supongo que la migración debería ser bastante directa, pero me gustaría saber las ventajas y desventajas de migrar de Prototype a jQuery.

Por otro lado, supongo que tenerlos a ambos juntos no es una buena opción, especialmente teniendo en cuenta que la migración debería ser bastante simple. ¿Estoy en lo cierto?

Editar: algunos recursos útiles:

Respuesta

9

Prototype y JQuery cubren campos muy similares. He utilizado Prototype como mi principal JS Framework durante muchos años profesionalmente, y estoy migrando a JQuery. He aquí por qué:

  • jQuery es más rápido . El prototipo viene en último lugar en todas las comparaciones de rendimiento que he visto (selección aleatoria here). También tengo una impresión subjetiva de larga data de que los efectos de Prototype son más lentos en general, especialmente en máquinas más antiguas.

  • JQuery parece ser más popular, no solo, sino también, en Stack Overflow.Lo que significa que es mucho más fácil obtener soporte, y la cantidad de plug-ins disponibles y el código listo es mucho mayor. Esa no es la razón principal para mí, pero junto con la impresión general de que jQuery es la plataforma más sólida técnicamente, la elección se hizo obvia.

Mi gustan sólo es:

  • código jQuery tiende a verse horrible. Me gusta JQuery y su filosofía muy mucho, pero a menudo odio mirando el código. Si a alguien se le ocurrió un dialecto de JQuery que se ve tan hermoso y estructurado como el simple JavaScript, estaré encantado de estar a bordo. :)

los comentarios Re: aclaración adicional sobre lo que no me gusta de estilo de código de jQuery.

En una palabra: Corchetes. Miles y miles de ellos :)

En serio. Me doy cuenta de que mucho de lo que se considera "estilo jQuery" son accesos directos y abreviaturas que son completamente opcionales de usar. Sin embargo, desde una perspectiva de legibilidad de código y mantenimiento, encuentro grandes fragmentos de código jQuery mucho más difíciles de leer y entrar. Sí, eso será mucho más fácil con el crecimiento de la experiencia de jQuery, pero quiero que mi código sea legible incluso para un forastero total. Con respecto a eso, jQuery no va en la dirección correcta IMO. Gran parte del código es simple feo. Es mi única gran crítica a este gran marco hasta la fecha.

Método de encadenamiento, @noah, y cosas como el nuevo .delay() o cómo se llamaba, creo que totalmente rockero. No digo nada en contra de eso.

+0

no discuten, solo curiosidad qué aspectos del código no le gustan? –

+0

No discuto tampoco: pero estoy tan sorprendido como Paul aparentemente :) – Matt

+0

¿Quieres decir que no te gusta el código escrito usando jQuery? por ejemplo, encadenamiento de métodos y todo eso? – noah

6

Por lo que yo sé, Prototype y jQuery su mayoría se superponen, excepto ese jQuery se centra principalmente en la manipulación DOM, ajax, eventos, etc., y realmente no tiene algunas de las capacidades que tiene Prototype, como clases, herencia, etc. Sin embargo, si no necesita estas cosas, y solo quiere un marco para navegador transversal DOM manip, ajax, eventos, etc., entonces creo que jQuery es el camino a seguir.

+1

Pero, al mismo tiempo, no creo que haya nada que puedas hacer con Prototype que no puedas hacer con jQuery (en la práctica). Sí, hay algunos detalles que no se traducen directamente, pero todavía tengo que encontrarme con algún problema que me haya enviado a Prototype. – dclowd9901

+1

estuvo de acuerdo, solo diciendo que si todo lo que necesita es una js lib para el navegador DOM manip y ajax, jquery es (en mi humilde opinión) la mejor opción. –

4

Puede usarlos juntos. Simplemente llame al jQuery.noConflict(); después de que se carga jQuery. Luego deberá escribir jQuery("whatever") en lugar de $("whatever"). Prototype ofrece una gran cantidad de funcionalidades que jQuery no ofrece.

Sin embargo, Prototype está a punto de desaparecer. jQuery es el rey ahora, y por algunas buenas razones. Si desea los últimos complementos y widgets, jQuery los tendrá.

Underscore.js ofrece la mayoría de las mismas funciones que Prototype sin molestarse con los prototipos de objetos y el espacio de nombres global. Underscore plus jQuery debería hacer que la migración desde Prototype sea bastante sencilla.

+0

que Underscore.js parece interesante! Gracias por el enlace. –

2

He estado utilizando Prototype desde 2006 y me hago eco de los sentimientos de Pekka sobre el código feo. El prototipo es más elegante.

He sido un fiel seguidor de la comunidad Prototype (+ Scriptaculous) pero, por desgracia, Prototype está perdiendo su cuota de mercado y su cuota de mercado. Las carreras se pueden construir conociendo jQuery, no tanto para Prototype.

Parece que la gente de jQuery parece estar más feliz usando complementos, sin saber cómo funcionan, mientras que las personas con prototipos parecen ser más programadores y tienden a construir lo que necesitan ellos mismos.

Habiendo dicho eso, mi transición a jQuery no fue tan dolorosa. La funcionalidad es muy similar, solo que con diferentes nombres. Hay mucha más documentación y código de muestra disponible, por lo que es más fácil de recoger.

Los marcos son objetivos móviles, a veces saltándose entre sí en términos de velocidad y características. Todos continúan mejorando. Decir que X es mejor que Y cambiará con el tiempo

Creo que la tolerancia de ahorro de Prototype puede ser Scripty2. Este es un nuevo y sorprendente motor de animación que usa Prototype. Si eso se da cuenta (y llega al mercado, ni siquiera está en Beta) puede haber un resurgimiento en el interés por el Prototipo. Más allá de eso, creo que siempre tendrá sus seguidores, pero se desvanecerá de la corriente principal.

+0

He usado prototipos por un tiempo y realmente me gusta, pero los widgets y complementos que tienen otros frameworks (como jquery y dojo) están empujando a mi empresa a abandonar el prototipo en favor de uno de los otros frameworks. – tmeisenh

4

Para responder a sus preguntas directamente: Sí, debe cambiar. Y si, tienes razón.

Sé que dijiste que no te gustan los corchetes ... ¿puedes proporcionar un fragmento de código de prototipo que consideres hermoso (lo compararé para compararlo)?

0

Creo que deberías. Uso jquery religiosamente, y no soy un Javascript Pro. Creo que es fácil de usar, es una de las cosas más poderosas al respecto.

2

si te importa conseguir otro trabajo, muévete a JQuery. Si te preocupa el código JavaScript atractivo e intuitivo con prototipo, ¡no va a desaparecer!

Cuestiones relacionadas