D
David Mark
Having just read a post about jQuery vs. My Library, I think I need to
dispel some misunderstandings.
First off, there's no rationalizing or apologizing for jQuery. Twist it
around any way you like, but there's no justification for such a failure
(or series of failures to accurate). Second, it doesn't make the
slightest difference how many rubes got caught up in it over the past
few years (the operative word is "past"). Third, don't believe
_anything_ you read on that miserable Ajaxian site. One of their
editors is an "evangelist" for jQuery.
The main point of the post seemed to be that jQuery was "concise"
because it was somehow designed to be that way (rather than full of
random goofs). Of course, its tangled up, interdependent mess of an API
is not any more concise than the optional layer offered with My Library.
Some random samples from a test page:-
E().loadHtml('<div><strong>This is a
test</strong></div>').appendTo(document.body);
Q('div:first-child').show().setOpacity(0.5);
myEl = E('#myid');
myEl.onHelp(function() { alert('test1') }).onContextClick(function() {
alert('test2') });
html = myEl.htmlOuter();
Personally, I don't care for such "chained" gobbledygook, but there it
is. No more or less concise than jQuery (or the like), detachable,
readable (under the hood too) and easily extensible. The various
globals (e.g. E, Q, D, W) are actually constructors, which allows for
leveraging all of the wonderful OO features included in all ES
implementations (see F and I for examples). jQuery has a $ function
that returns a new jQuery object.
So more "concise" code and a more "elegant" API is complete bullshit.
(and that's usually the main argument).
Then there is the question of why jQuery fucks up so much on basic
operations. For instance, if you want to measure the height of an
element, it is likely because you want to adjust that height and put it
back. Do I even need to say any more about that at this point? The
"designers" of jQuery didn't make some conscious decision to **** that
up. They just fucked it up (and gained nothing in the process). End of
story on the "it's flawed but there's a reason and it really helps"
theory. JFTR, when it comes to sizing and positioning elements, there's
nothing close to My Library, which doesn't care what box model you use
at all (you can even mix them in one document). So night and day there.
Then there is the fact that the sorts of mistakes made by the jQuery
authors (that sit uncorrected for years) indicate gross incompetence.
How do you **** up reading/writing/removing attributes? Isn't that the
most basic low-level operation and shouldn't there be all sorts of tests
to prevent regressions? Well, it is and they don't have tests because
they don't understand what they are testing.
All the more laughable given Resig's infamous "you don't understand
test-driven development" retort to a review from two years back. He
doesn't understand... anything at all it seems. Years later, his
attribute-handling is still all fucked up and after wasting days arguing
about it, they decided not to fix it at all (nobody really understood
what was wrong). They didn't fix the height/width stuff either. If you
can't read and write documents (not to mention measure elements), you
can't create widgets on top of them (at least not good widgets) and you
sure as hell can't _query_ them with any degree of consistency.
Obviously, as I invented the feature test for broken attributes, My
Library has a much better handle on attributes.
So, jQuery is just a boondoggle. It's not that they designed it to deal
with "certain cases" instead of "all cases". They just fucked up
randomly and are consistently surprised by what it does (not a good sign).
On the other hand, after spending a week testing, I am pleased to
announce that Cinsoft supports My Library in the following browsers:
All of them.
But seriously, we've tested successfully in:-
IE 5-8
FF 1-3.5
Safari 2-4
Opera 5-10
Netscape 3-9
All modes and virtually all platforms with few issues to report (and
most of those fixed immediately).
And yes, there's a growing community of people who are tired of using
lousy browser scripts and putting up with authors who can't fix
anything. They are helping to test in ancient browsers because it helps
to illuminate problems that could show up in other lesser browsers (e.g.
mobile devices). It's not so that people can use NN4.7 (though they
certainly can if they want).
As for size, AIUI, the "new" jQuery is 70K minified. Well, the full
build of My Libary, which is equivelent to jQuery plus dozens of
plug-ins is (and always has been) 139K minified. Yes, it is the same
size with "support" for all of those ancient browsers (quotes indicate
there's nothing in there specific to any of them) as before those were
even attempted. So much for the "trying to do everything" bloating theory.
And take a guess which is faster. Rather, don't guess but try the the
Speed Test. The "do everything" cross-browser script that doesn't need
dozens of dubious plug-ins is much faster than the "optimized" (more
like lobotomized) script. And not just at queries either; it's much
faster at everything, which is crucial for support handheld devices, old
PC's, etc. Of course, everything out there is faster than jQuery. This
latest release claims something about a 3X increase in something. It's
likely still behind everyone else, but I see brain-washed rubes cheering
about the "breakthrough" anyway. And speaking of the rest (e.g. YUI,
Dojo, Prototype), they are relatively slow as well. They all made the
same mistake (too much over-engineered and inappropriate bullshit
bogging them down).
Must come as quite a shock to those who spent years compiling browser
sniffs, explaining all the while that to be truly cross-browser would
result in really slow, bloated code.
And, of course, the whole thing is modular to a fault, whereas jQuery is
just an inorganic lump that must always be replaced wholesale.
Questions?
dispel some misunderstandings.
First off, there's no rationalizing or apologizing for jQuery. Twist it
around any way you like, but there's no justification for such a failure
(or series of failures to accurate). Second, it doesn't make the
slightest difference how many rubes got caught up in it over the past
few years (the operative word is "past"). Third, don't believe
_anything_ you read on that miserable Ajaxian site. One of their
editors is an "evangelist" for jQuery.
The main point of the post seemed to be that jQuery was "concise"
because it was somehow designed to be that way (rather than full of
random goofs). Of course, its tangled up, interdependent mess of an API
is not any more concise than the optional layer offered with My Library.
Some random samples from a test page:-
E().loadHtml('<div><strong>This is a
test</strong></div>').appendTo(document.body);
Q('div:first-child').show().setOpacity(0.5);
myEl = E('#myid');
myEl.onHelp(function() { alert('test1') }).onContextClick(function() {
alert('test2') });
html = myEl.htmlOuter();
Personally, I don't care for such "chained" gobbledygook, but there it
is. No more or less concise than jQuery (or the like), detachable,
readable (under the hood too) and easily extensible. The various
globals (e.g. E, Q, D, W) are actually constructors, which allows for
leveraging all of the wonderful OO features included in all ES
implementations (see F and I for examples). jQuery has a $ function
that returns a new jQuery object.
So more "concise" code and a more "elegant" API is complete bullshit.
(and that's usually the main argument).
Then there is the question of why jQuery fucks up so much on basic
operations. For instance, if you want to measure the height of an
element, it is likely because you want to adjust that height and put it
back. Do I even need to say any more about that at this point? The
"designers" of jQuery didn't make some conscious decision to **** that
up. They just fucked it up (and gained nothing in the process). End of
story on the "it's flawed but there's a reason and it really helps"
theory. JFTR, when it comes to sizing and positioning elements, there's
nothing close to My Library, which doesn't care what box model you use
at all (you can even mix them in one document). So night and day there.
Then there is the fact that the sorts of mistakes made by the jQuery
authors (that sit uncorrected for years) indicate gross incompetence.
How do you **** up reading/writing/removing attributes? Isn't that the
most basic low-level operation and shouldn't there be all sorts of tests
to prevent regressions? Well, it is and they don't have tests because
they don't understand what they are testing.
All the more laughable given Resig's infamous "you don't understand
test-driven development" retort to a review from two years back. He
doesn't understand... anything at all it seems. Years later, his
attribute-handling is still all fucked up and after wasting days arguing
about it, they decided not to fix it at all (nobody really understood
what was wrong). They didn't fix the height/width stuff either. If you
can't read and write documents (not to mention measure elements), you
can't create widgets on top of them (at least not good widgets) and you
sure as hell can't _query_ them with any degree of consistency.
Obviously, as I invented the feature test for broken attributes, My
Library has a much better handle on attributes.
So, jQuery is just a boondoggle. It's not that they designed it to deal
with "certain cases" instead of "all cases". They just fucked up
randomly and are consistently surprised by what it does (not a good sign).
On the other hand, after spending a week testing, I am pleased to
announce that Cinsoft supports My Library in the following browsers:
All of them.
But seriously, we've tested successfully in:-
IE 5-8
FF 1-3.5
Safari 2-4
Opera 5-10
Netscape 3-9
All modes and virtually all platforms with few issues to report (and
most of those fixed immediately).
And yes, there's a growing community of people who are tired of using
lousy browser scripts and putting up with authors who can't fix
anything. They are helping to test in ancient browsers because it helps
to illuminate problems that could show up in other lesser browsers (e.g.
mobile devices). It's not so that people can use NN4.7 (though they
certainly can if they want).
As for size, AIUI, the "new" jQuery is 70K minified. Well, the full
build of My Libary, which is equivelent to jQuery plus dozens of
plug-ins is (and always has been) 139K minified. Yes, it is the same
size with "support" for all of those ancient browsers (quotes indicate
there's nothing in there specific to any of them) as before those were
even attempted. So much for the "trying to do everything" bloating theory.
And take a guess which is faster. Rather, don't guess but try the the
Speed Test. The "do everything" cross-browser script that doesn't need
dozens of dubious plug-ins is much faster than the "optimized" (more
like lobotomized) script. And not just at queries either; it's much
faster at everything, which is crucial for support handheld devices, old
PC's, etc. Of course, everything out there is faster than jQuery. This
latest release claims something about a 3X increase in something. It's
likely still behind everyone else, but I see brain-washed rubes cheering
about the "breakthrough" anyway. And speaking of the rest (e.g. YUI,
Dojo, Prototype), they are relatively slow as well. They all made the
same mistake (too much over-engineered and inappropriate bullshit
bogging them down).
Must come as quite a shock to those who spent years compiling browser
sniffs, explaining all the while that to be truly cross-browser would
result in really slow, bloated code.
And, of course, the whole thing is modular to a fault, whereas jQuery is
just an inorganic lump that must always be replaced wholesale.
Questions?