询问有关严厉jQuery批评的意见

时间:2009-05-26 11:56:09

标签: javascript jquery

我对jQuery感到困惑。

一方面,它随Microsoft MVC库一起提供,我认为这是一个我喜欢使用的经过深思熟虑的库。

另一方面,我最近指向comp.lang.javascript中的this帖子的方向,其中作者对jQuery(以及显然其他几个类似的库)说的话很少。 ,并且善于/勇敢地提供his own library

您对jQuery和其他此类JS库的当前状态有何看法?

7 个答案:

答案 0 :(得分:18)

我不是JS开发人员,但是这样说:

有人批评了一个广泛使用的图书馆,同时推广他们自己的图书馆吗?

称我为愤世嫉俗,但考虑到固有的利益冲突,我会先寻求另一种意见或2,然后才能将他们的话作为明确的答案。

答案 1 :(得分:13)

我的$ .02:

jQuery赢得了图书馆大战。它只是包含在MVC密封中。

这不是可能发生的最糟糕的事情。我个人认为它的功能集和实现优于任何竞争对手,MooTools的动画套件可以承受,但最重要的是它已成为通用语言。我们需要出现一个标准。

对于抱怨开源库质量的人,我没有太多时间 - 不喜欢它吗?参与并修复它。

我确实遇到jQuery的问题是 waaaaay 我想的太多开发人员并没有像他们那样深入学习JavaScript。我想对于那些坚持每个人都应该学习C ++的人来说,这是一个类似的论点,也许我开始明白这个论点。 JavaScript 本身是一种非常强大的语言,多年来它一直能够在不添加多K库的情况下解决问题。根据我的经验,有一个明确的jQuery效果(标志:“为什么不使用jQuery?”)调用大锤来破解坚果。

答案 2 :(得分:8)

嗯,我宁愿相信我多年来使用jQuery和成千上万的快乐露营者使用它而不是一些认为他知道更好的挑剔的人。从我可以看到的很多他的批评是非常具体的(例如使用match,例如完全蹩脚)关于有效性和优化代码,但完全缺乏支持所需的大量魔法浏览器怪癖和错误的数量甚至可以做到jQuery提供的一小部分。哦,jQuery有多年的包袱,所以是的,会有一些瑕疵。

让我们看看这个替代的JavaScript库。最初的页面说,文学,“我讨厌图书馆,所以我创建了一个图书馆。”此外,它还涉及浏览器嗅探,并声称自己只进行功能嗅探。 Mate,这就是他们中的很多人实际上在浏览器中嗅探的方式。它继续说,在API中纠结是愚蠢的,并继续呈现它的,嗯,API。是的,这有点傻,但我确定这是一个很好的理由吗?

深入研究实际的API我对浏览器丛林的框架方法缺乏一系列语义感到震惊,而且缺少使jQuery成功的关键部分;成为DOM的好选择者。它可以完成这项工作(其中没有文档;它实际上对我有什么帮助?只是跨浏览器DOM访问,什么?还有什么?)但我需要一致性和优雅(虽然后者有点主观,当然)。它显然缺乏示例,演示或任何东西,并且没有明显的插件架构。

它可能是纯粹主义者的图书馆,但不幸的是现实世界正在召唤我脱离精英云。我会用一小撮盐(他测试的是什么版本?他是否先向开发人员询问为什么有些事情就像他们那样?),并且我记得{{3}除了Stack Overflow firestarter Joel Spolsky之外,所有那些看似疯狂或深奥的代码实际上都是你的系统获得的有关浏览器,平台,操作系统,编译器,版本的知识事实上,看起来像纯粹主义者最糟糕的噩梦可能只是工作代码。

哦,阅读他最初发表的评论后发现,他是一个傲慢的刺,告诉任何人不同意他,他们没用,什么都不知道,无能和更多的细节。优等的。

无论如何,回到黑客攻击我自己的Topic Maps引擎而不是使用别人的。 :)

答案 3 :(得分:3)

嗯,在我看来,jQuery是一个非常好的经过深思熟虑的库,它只有很少的命名空间冲突,并且通常都是JavaScript作为一种语言的精神。

答案 4 :(得分:3)

comp.lang.javascript充满了铁杆狂热者。

这并不全是坏事。我认为由于所有的狙击,图书馆已经变得更好了。例如,这是来自jQuery 1.3发行说明:“没有更多的浏览器嗅探。这个版本的最后一个主要特征是你可能永远不会看到或直接处理的那个,但它是一个重要的改变,将有助于使jQuery持续时间更长,错误更少:从1.3开始,jQuery不再在内部使用任何形式的browser / userAgent嗅探 - 并且是第一个这样做的主要JavaScript库。“

我认为主要的库,特别是jQuery,现在已经根深蒂固,浏览器的开发者实际上必须适应jQuery,而不是相反。如果您发布的浏览器在常见的jQuery操作中失败,人们会认为您的浏览器已损坏。

答案 5 :(得分:1)

jQuery是一个真正的节省时间,并具有一些很棒的功能。我不会让这个家伙太过分了。快去吧,得出自己的结论。

答案 6 :(得分:1)

这段讨论已经有一段时间了,clj的人们有很强的意见。

大多数批评都是关于jQuery采取的方法,但事实证明他们没有注意到jQuery执行它所做的事情的原因。例如Matt Kruse在列表中回复

> 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. 

然后再次恰当地对他的blog

  

所有图书馆都需要权衡。   我只是广泛使用jQuery,但是   我有一些知识和经验   和其他人一起。

     

YUI很强大,如果不是冗长的话。它有   一些非常聪明的人,但它   似乎并没有那么多   jQuery的。当我看着它时,感觉到了   对我来说“沉重”。还有一些   可疑的编码实践   好。原型是一种拥有的野兽   已经存在了很长时间而不是   一个我会推荐。但确实如此   有很多OO支持,如果那样的话   你在寻找什么。 IMO,   javascript不是OO,所以我从来没有   喜欢试图强迫它。 ExtJS的   非常光滑和华丽,但它是巨大的   膨胀。我不知道代码是什么   好像。我知道它会发生   被移植到使用jQuery,但我没有   知道是不是发生了。 MooTools是一个   黑客的图书馆,它只是IMO   没有提供任何jQuery   没有。道场死了,AFAIK。我从不   喜欢它。

     

所以,我最喜欢的是jQuery。它有   问题,这远非完美。   插件可能会被击中或错过。用户界面   框架似乎即将开始   在它的婴儿期,但它仍然是一个   对我来说有点太臃肿了。我用   jQuery的一部分,并避免其他一些   部分。我写了大部分自己的插件,   而且我还写了很多“纯粹的”   非jQuery javascript。我觉得那样   我正在优化一大块jQuery   性能代码和概括   它,这个过程慢慢开始   过滤掉jQuery!所以我使用jQuery   快速完成任务并为此做好准备   我知道它会起作用的便利性   正如所料,对于复杂的事情我   最终编写纯js(并保存它   重用)。在最困难的   情况,没有框架可行   好的,IMO。