2009-05-26 6 views
6

Estoy confundido acerca de jQuery.Pidiendo opiniones sobre la crítica moring jQuery

Por un lado se envía con la biblioteca Microsoft MVC, que respeto como una biblioteca bien pensada que me gusta usar.

Por otro lado, recientemente me apuntaron en la dirección de this publicar en comp.lang.javascript en el que el autor tiene muy pocas palabras amables para decir de jQuery (y, al parecer, varias otras bibliotecas similares), y es amable/valiente para proporcionar his own library.

¿Cuál es su opinión sobre el estado actual de jQuery y otras bibliotecas JS similares?

+3

¿Quién es él? No estoy diciendo que tenga razón o que esté equivocado (no lo sabría, durante los últimos años he tenido la suerte de evitar la programación web), pero ¿cuáles son sus credenciales? ¿Ha hecho algo notable en/con JS? Aparte de eso, es posible que la implementación de jquery apesta tanto como él dice, y sin embargo, la biblioteca es * lo suficientemente buena * y la mejor que hay. Si la historia de la informática es algo por lo que pasar, las peores tecnologías casi siempre saldrán ganando. – jalf

+0

Ha, negatividad :) Creo firmemente que puedo escribir una mejor biblioteca que jQuery, pero también creo firmemente que eso es irrelevante porque lo que importa es un estándar, y además creo que sea quien sea "ese tipo", si fue tan inteligente Sabía que esto era cierto. – annakata

Respuesta

3

Bueno, en mi opinión, jQuery es una biblioteca muy buena y bien pensada, que tiene muy pocas colisiones de espacios de nombres y generalmente está dentro del espíritu de JavaScript como lenguaje.

18

No soy un desarrollador JS, pero lo puso de esta manera:

Alguien es crítico de una biblioteca ampliamente utilizado y al mismo tiempo la promoción de su propia biblioteca?

Llámame cínico, pero dado el conflicto de intereses inherente buscaría otra opinión o 2 antes de tomar su palabra como la respuesta definitiva.

+2

* especialmente * cuando dicha opinión es un grupo de sutilezas de estilo de codificación intercaladas con "tal y cual es el estúpido más estúpido que alguna vez hizo estupideces". – ceejayoz

+2

* especialmente * cuando el hilo rápidamente se convierte en "aprender a hablar en inglés" y otros insultos – annakata

1

jQuery ahorra mucho tiempo y tiene algunas características excelentes. No dejaría que este tipo te desanime demasiado. Pruébalo y saca tus propias conclusiones.

+0

Bueno, estoy bastante completamente "teniendo una oportunidad". jQuery nos sirve muy bien, pero nos hemos topado con problemas con Konqueror que me hacen preocuparme por el agraciado tema de la degradación. – spender

+1

/smack, 'progressive enhancement' – garrow

+1

Sí. Konqueror no es un navegador compatible, y he visto que jQuery falla en ese navegador. Eso es realmente algo en lo que debes pensar con jQuery: ¿puedes vivir con la lista de navegadores compatibles? También he notado problemas con varios navegadores móviles. IIRC, el evento de hacer clic no ocurre hasta que haga clic (cuando ambos se activan) en Mobile Safari en el iPhone. Esa puede ser la "falla" de Safari móvil, pero jQuery no está limpiando después de ninguno, sino de los navegadores compatibles. Tengo que usar eventos táctiles en lugar de hacer clic en eventos en un caso en el iPhone. – Nosredna

13

Mi $ .02:

jQuery ha ganado las guerras de la biblioteca. Simplemente tiene: la inclusión en MVC lo sella.

Y no es lo peor que podría pasar. Personalmente, considero que su conjunto de características y su implementación son superiores a las de cualquiera de sus competidores, la serie de animación MooTools es resistente, pero lo más importante es que se ha convertido en la lengua franca. Necesitábamos un estándar para emerger.

No tengo mucho tiempo para quienes se quejan de la calidad de una biblioteca de código abierto. ¿No les gusta? Involucrarse y arreglarlo.

Donde tengo un problema con jQuery es que waaaaay demasiados desarrolladores para mi gusto no están aprendiendo JavaScript como deberían. Supongo que este es un argumento similar para aquellos que insisten en que todos deberían aprender C++, y tal vez empiece a ver el sentido de ese argumento. JavaScript por sí mismo es un lenguaje enormemente poderoso, que durante años ha sido capaz de resolver problemas sin agregar una biblioteca multi-K. En mi experiencia hay un efecto jQuery definido (sello distintivo: "¿Por qué no usar jQuery?") De invocar un mazo para romper una nuez.

+2

'MVC' es solo un concepto que no incluye jquery. El pienso al que te refieres es 'ASP.Net MVC'. Por favor, no los confunda. – alamar

+11

@alamar - Él no los está mezclando. El contexto de este hilo claramente dicta que se está refiriendo a la encarnación de MVC de Microsoft. Comentario sin sentido – alex

+3

sí, soy muy consciente de eso, es solo taquigrafía dado el OP - no es necesario ser tan literal – annakata

8

Hmm, prefiero confiar en mis años de uso de jQuery y de los miles de campistas felices que lo usan sobre un idiota que piensa que lo sabe mejor. Por lo que pude ver, muchas de sus críticas son bastante específicas (como el uso de match, por ejemplo, que es totalmente cojo) sobre la eficacia y la optimización del código, pero carece por completo de la cantidad de magia necesaria para soportar la cantidad de navegador peculiaridades e insectos para incluso hacer una fracción de lo que ofrece jQuery. Ah, y jQuery tiene años de equipaje, así que sí, habrá algunas verrugas.

Veamos esta biblioteca alternativa de JavaScript. La página inicial dice, literaria, "Odio las bibliotecas, así que creé una biblioteca."Además, zumba sobre el rastreo de los navegadores, y se autodenomina a sí mismo solo para inhalar las características. Compañero, así es como muchos de ellos hacen el rastreo del navegador. Continúa diciendo que enredarse en las API es estúpido, y continúa hasta el presente. es, eh, API. Sí, es un poco tonto, pero estoy seguro de que todo es por una buena causa

Indagando en la API real Me sorprende un conjunto de semántica algo deficiente que va con un marco enfoque a la jungla del navegador, y le falta la parte crucial que hizo jQuery tanto éxito, buenos selectores en el DOM. Puede hacer el trabajo (del que no hay documentación, ¿con qué me ayuda realmente? acceso DOM de navegador, ¿qué? ¿Qué más?), pero necesito consistencia y elegancia (aunque esto último es algo subjetivo, por supuesto). Es evidente que carece de ejemplos, demos o cualquier otra cosa, y no tiene una arquitectura obvia de complementos.

Puede ser una biblioteca de puristas, pero desafortunadamente el mundo real me está llamando fuera de la nube élite. Tomaría todo con un poquito de sal (¿qué versión hizo? ¿Se acercó primero a los desarrolladores para preguntar por qué algunas cosas eran como eran?), Y estoy recordando some wise words (cerca de " dos páginas de largo ") por nada menos que Stac Overflow firestarter Joel Spolsky, que todas esas pequeñas piezas de código aparentemente loco u obsoleto de hecho es lo que su sistema ha ganado de conocimiento sobre navegadores, plataformas, sistemas operativos, compiladores, versiones, códigos, etc. Lo que puede parecer la peor pesadilla de un purista podría ser, de hecho, código de trabajo.

Oh, y leyendo los comentarios a su publicación inicial, revela que es un pinchazo arrogante que le dice a cualquiera que no esté de acuerdo con él que son inútiles, no saben nada, incompetentes y con muchas otras cosas más. De buen tono.

De todos modos, de vuelta a la piratería mi propio motor de Mapas en lugar de utilizar de otra persona. :)

+0

No entiendo qué complementos desea crear con MyLibrary de David Mark. Supongo que está comparando esta biblioteca con el encadenamiento de objetos y funciones de JQuery, y la capacidad de agregar nuevas funciones que pueden tomar el conjunto actual de elementos operados por $ object como argumento. MyLibrary tiene "Object Wrappers". Además, API.areFeatures le permite verificar qué "complementos" están instalados. – user429921

3

comp.lang.javascript está lleno de fanáticos incondicionales.

Eso no es del todo malo. Creo que las bibliotecas han mejorado como resultado de todos los ataques. Por ejemplo, esto es de las notas de la versión de jQuery 1.3: "No más detección de navegador. La principal característica final de esta versión es una que probablemente nunca verá o no tratará directamente, pero es un cambio importante que ayudará a hacer jQuery dura más tiempo y con menos errores: a partir de 1.3, jQuery ya no usa ninguna forma de navegador/userAgent sniffing internamente, y es la primera biblioteca de JavaScript importante que lo hace ".

Argumentaría que las principales bibliotecas, y especialmente jQuery, están ahora tan arraigadas que los desarrolladores de navegadores en realidad tienen que adaptarse a jQuery, y no al revés. Si lanza un navegador que falla en las operaciones comunes de jQuery, la gente pensará que su navegador está dañado.

1

Esa discusión había estado haciendo rondas hace un tiempo y la gente en CLJ tener opiniones fuertes.

La mayoría de esas críticas se refieren a los enfoques adoptados por jQuery, pero resulta que no tienen en cuenta las razones por las cuales jQuery hace lo que hace. Por ejemplo Matt Kruse respondió en la lista

> Five seconds in, this line sticks out like a sore thumb: 
> if (typeof text !== "object" && text != null) 

I mentioned this line in a recent thread on a jquery group... 

> The first comparison does not need to be strict. 

The argument is that in some browsers, making it strict is actually 
faster, and doesn't hurt anything. Supposing this is true, then it 
makes sense to leave it as-is. 

> The second comparison is obviously a waste of time. 

Not true. The intent is to also catch cases where text is undefined, 
and would then ==null. 

y luego de nuevo muy acertadamente en su blog:

Todas las bibliotecas disponen de una solución de compromiso. Solo he usado jQuery extensamente, pero Tengo un poco de conocimiento y experiencia con otros.

YUI es robusto, si no detallado.Tiene algunas personas muy inteligentes, pero no parece captar tanto como jQuery. Cuando lo miré, me pareció "pesado" . Y hay algunas prácticas de codificación dudosas en como . El prototipo es una bestia que tiene estado por mucho tiempo y no uno que recomendaría. Pero tiene tiene una gran cantidad de soporte OO, si eso es lo que estás buscando. IMO, javascript no es OO, entonces nunca me ha gustado tratar de forzarlo a . ExtJS es muy elegante y sofisticado, pero es ENORME hinchazón. No sé cómo es el código . Sé que iba a ser portado para usar jQuery, pero no sé si eso sucedió. MooTools es una biblioteca de hackers , e IMO solo no ofrece nada que jQuery no ofrece. Dojo está muerto, AFAIK. Nunca me gusto .

Por lo tanto, mi favorito es jQuery. Tiene problemas, y está lejos de ser perfecto. Los complementos pueden ser imprecisos. El marco de UI parece estar comenzando a venir fuera de su infancia, pero todavía es un poco hinchado para mi uso. Yo uso partes de jQuery y evito algunas otras partes . Escribo la mayoría de mis propios complementos, y todavía escribo una gran cantidad de "puro" no-jQuery javascript. Encuentro que como estoy optimizando una porción del código de jQuery para el rendimiento y para generalizarlo , el proceso comienza lentamente a filtrar el jQuery! Así que utilizo jQuery para hacer las cosas rápidas hecho y para conveniencia cuando sé que funcionará como se esperaba, y por las cosas complejas que termino de escribir js puros (y guardarlo para su reutilización). En las situaciones más difíciles , ningún marco funcionará correctamente , IMO.

Cuestiones relacionadas