jQuery + IE8--told you so

D

David Mark

First anecdotal report I've spotted:

http://news.cnet.com/microsoft-launches-ie-8-with-a-smile/

"... And today is not Microsoft's day on the Internet, since their
bloated browser can't even display a JQuery page correctly."

Certainly these sorts of complaints will reach a crescendo as the
masses upgrade IE (or have it upgraded for them.)

I'm sure it is Microsoft's fault. :)

I once heard a jQuery maven claim that nobody would be stupid enough
to release a browser that "breaks jQuery." Of course, breaking bad
scripts is job #1 for browser developers (has been since IE3.)

More like nobody would be ignorant enough to use a script that breaks
so many browsers. With the release of IE8, all installations of 1.2x
are now unusable. Some sites may still appear to work in some cases,
but changing them is obviously out of the question as landmines are
now everywhere. The new version(s) aren't much better either (see
recent threads.)

Bad scripts used to be fairly easy to revamp. Now you are forced to
upgrade and re-test a giant mess of collaborative chaos every other
month. It will take them a minimum of six months of patches to fix
one specific problem that was recently reported (assuming they can fix
it all without breaking all of the old sites.) They'll have to
rewrite the documentation and all of the examples, tutorials, etc. as
well. Their large community has been spreading bad information about
the offending method for years.

If a million monkeys typed for a million years, not one would come up
with something this ludicrous. So much for the "large and active
developer community" theory.

Would you be willing to file a ticket on this?
 
D

David Mark

First anecdotal report I've spotted:

http://news.cnet.com/microsoft-launches-ie-8-with-a-smile/

"... And today is not Microsoft's day on the Internet, since their
bloated browser can't even display a JQuery page correctly."

Certainly these sorts of complaints will reach a crescendo as the
masses upgrade IE (or have it upgraded for them.)

[snip]

Well, that didn't take long. Obviously jQuery is a long way from
being cross-IE compatible. (!) One look at the code tells you that,
but for those who favor empirical evidence:

http://groups.google.com/group/jquery-en/browse_thread/thread/5a2419f32c289dee

http://www.cssquirrel.com/2008/11/1...magemaps-and-dynamically-inserting-area-tags/

http://friendfeed.com/e/4a8cfc0d-9d.../IE8-third-impression-it-sucks-jquery-is-not/

http://markmail.org/message/lw5mkka...IE8+page:1+mid:lw5mkkac2evdcerm+state:results

http://twitter.com/darkon_/status/1357237389

http://www.mailinglistarchive.com/[email protected]/msg01627.html

http://forum.notebookreview.com/showthread.php?p=4653070

http://dev.jquery.com/ticket/4440

http://code.google.com/p/simplemodal/issues/detail?id=7

http://damianedwards.wordpress.com/2008/10/03/ie8-bug-i-submitted-has-been-resolved/

http://dev.jqueryui.com/ticket/4371

http://www.mail-archive.com/[email protected]/msg48595.html

http://lutton.net/blog/post/IE-8-Developer-Talk-Microsoft-e28093-Columbus-Office.aspx

http://craigsworks.com/projects/qtip/forum/topic/47/qtip-not-working-in-ie8/

http://174.129.128.200/javascript/26835-jquery-jquery1-3-2-ie8.html

http://www.laikoko.cn/forums/blog.php?bt=34

http://www.collicott.net/jess/2009/03/25/ie8-performance-problems/

http://forums.asp.net/t/1402098.aspx

http://www.microsoft.com/communitie...5C-4477-A380-0F1CF6C102F9&lang=&cr=&sloc=&p=1

http://twitter.com/skfox/status/1389368479

http://www.dynamicdrive.com/forums/showthread.php?t=42200

Questions about how MS and jQuery fit together? Ask Lauren:

http://cooney.typepad.com/lauren_cooneys_blog/2008/09/jquery-and-microsoft-the-qa.html

Cue the shrieking violins for this jarring coda:

http://www.silvesterwebdesigns.com/suggest-upgrading-ie6-to-ie8-with-jquery

Suffering succotash!

So just keep upgrading the whole convoluted mess (plus the assorted
plug-ins), maybe one day you will hit the cross-browser jackpot! As
for your users, it is a shame that day isn't today.

No wonder Resig wants the whole world to volunteer for unit testing.
Dear John, the world has better things to do. Please find a less
destructive hobby.
 
D

David Mark

First anecdotal report I've spotted:

http://news.cnet.com/microsoft-launches-ie-8-with-a-smile/

"... And today is not Microsoft's day on the Internet, since their
bloated browser can't even display a JQuery page correctly."

Certainly these sorts of complaints will reach a crescendo as the
masses upgrade IE (or have it upgraded for them.)

[snip]

http://peter.michaux.ca/articles/javascript-animations-from-scratch

See the recent comment at the end.

http://74.125.93.104/search?q=cache...E8&cd=77&hl=en&ct=clnk&gl=us&client=firefox-a

14 hours ago, at the time of this writing:

"Great, jQuery stuff is broken in IE 8."

http://n2.nabble.com/IE-8-not-working-with-shadowbox-td2504683.html

More programming by collaborative misunderstanding, posted after the
IE8 horse had left the barn. Includes suggestions to use IE8
compatibility mode as a stopgap. Of course, jQuery doesn't support
that mode at all.

http://groups.google.com/group/k2-support/browse_thread/thread/35d62cffee9a9f45?pli=1

Don't work.

http://webforumz.com/javascript-forum/70968-jquery-tabbed-interface-only-working-in.htm

jQuery slide show from Dynamic Drive doesn't work in half of the
tested browsers? No problem, try doing it the "jQuery way." You
can't make this stuff up.

http://groups.google.com/group/jquery-en/browse_thread/thread/a49067881de3b8b7

Their own bloody site is "completely broken" in IE7. And they want to
be your latex salesmen?

http://ejohn.org/blog/javascript-talk-at-northeastern/#postcomment

What idiot at Northeastern decided that John Resig would mix with
computer science? Seems some careful listeners picked up on his
wavering confidence in jQuery. Useful for prototyping, indeed.

(God I hate copying text from his site. How did he break that?)

"Of course jQuery isn't only useful for prototyping, I think the list
of sites using it is a pretty good indicator. However, the fact that
it is so good at prototyping (meaning that it's trivial to get from a
normal HTML page up to something that's fully interactive). The fact
that that's possible is incredibly important - the barrier to entry is
virtually non-existent."

I think the list of people suffering from [insert contagious disease
here] is a pretty good indicator of its communicability. As for his
"non-existent" barrier, he can't even get his own ass over it. Get
the f--- off of my obstacle!

http://ghettocooler.net/2008/03/17/ie6-ie7-ie8/

"There’s nothing to worry about for all of us spoiled with jQuery or
Prototype. When IE8 comes out, so will a new version of those
libraries and suddenly the internet will appear not to have changed
too much at all."

The Internet is an ignorance amplifier. Once again, YMMD.

http://forums.whirlpool.net.au/forum-replies-archive.cfm/1171699.html

The words "suffering" and "pain" are starting to pop up a lot in
jQuery-related posts. These people are just sure they would be
suffering more without jQuery, but what does that tell you?

http://code.google.com/p/google-caja/issues/detail?id=933

One comment from a notorious Prototypian:

"Doesn't the attr method deal with all of this directly ? How is that
currently an issue ?"

Try looking at the code. It hasn't changed much in years. Odd since
it debuted six years *after* IE6.

http://www.pathf.com/blogs/2008/02/jquery-ui-in-ac/

"I do so using progressive enhancement. In JS-disabled browsers, the
tabs turn into a simple navigational menu and the tabbed content turns
into a series of separate HTML pages."

Except when jQuery throws an exception in the middle of your
enhancement. Then what do you do?

/*more progressive enhancement:
last tab gets special handling because it's got its own
ajax component inside: an image carousel using jCarousel
*/
$('ul.nav > li:last > a').attr("href", "#productImages");

That doesn't look like progressive enhancement to me. There's not a
jQuery developer in existence that can explain what that attr call
will do (or even what it is supposed to do.) Seems like a hard way to
go.

/*still more progressive enhancement:
switch the classname on the <ul> we are using to
build our tabs so that the right styles get applied
in JS-enabled and noscript environments
*/
$('ul.nav').attr({"class":"navTabs"});


"That brings up one other slight weakness with jQuery UI Tabs: To pull
tab content in via Ajax, you use a standard link tag's HREF attribute
to store the location of an HTML fragment. Ideally, in the world of
progressive enhancement, you'd want to use the HREF attribute to store
the URL of a full HTML document for non-JavaScript-capable browsers.
The alternative link to an HTML fragment, which would be used for Ajax-
capable browsers, would be stored elsewhere, perhaps in an expando
property of the same link tag."

In comparison, the San Andreas fault is a slight weakness.

"You'll see in my code below that I got around this problem by pre-
parsing the link elements and altering their URLs before turning them
into tabs. jQury UI Tabs certainly doesn't hinder progressive
enhancement; it simply makes you jump through a couple of extra hoops
to accomplish it."

And you jump through them on the back of the attr method? God save
us.

http://groups.google.com/group/jquery-en/browse_thread/thread/739175c128a6f633

That's right. jQuery doesn't work at all on a PS3. (!) Odd as
NetFront has been around for ages. What does Resig have to say about
the "sudden" appearance of his "straw man?"

"If I remember correctly - the NetFront browser was missing some
fairly
fundamental features. I don't remember which, off-hand, but it was
enough to
cause jQuery not even to load."

Told you so six months prior, schleprock. Another added this
suggestion:

"... i think you'd be better off telling Sony about it mate ;)"

http://groups.google.com/group/jquery-en/browse_thread/thread/16837025b3925b62#

"Thickbox gives this error with the latest JQuery version. use version
1.2.6, worked for me that way."

Sure, go back to the browser sniffing version. IE hasn't changed much
in the interim. (!)

"Switching to an older version of jquery fixed the problem right
away. Thank you so much!

Resolved."

What do you say to that?

http://groups.google.com/group/jquery-en/browse_thread/thread/f2cff39db736589a#

"Ricardo" says:

"Even being invalid this is unexpected. Sizzle maps "for" to
"htmlFor",
because in labels the for value is held in the htmlFor property (for
being a reserved word). If you had <span htmlFor="tea"></span> you
could get it with $('span[for=tea]') in example. In your case you have
to resort to

$('span').filter(function(){
return this.attributes['for'].nodeValue == 'lid';

});

You're making two risky things at once: using an invalid attribute,
and giving the attribute name a reserved word in javascript. That's
asking for trouble!"

He's got some 'splaining to do.

http://groups.google.com/group/jquery-en/browse_thread/thread/c54c4fa3e74b00e5#

Anyone?

http://groups.google.com/group/jquery-en/browse_thread/thread/ca893776024e2974#

Oh, for the love of... don't build shopping carts with a script that
can't even get/set the value of checkboxes reliably.

Support quality was typical:

"Just a thought...but perhaps you need to
see if the "checked" attribute has the value of "checked"
instead of true...

if ($("#accept-t-and-c").attr("checked") !== "checked"){

perhaps that will work for you."

It's all guesswork in that group.

http://groups.google.com/group/jquery-dev/browse_thread/thread/1af25ca68efa2c59#

Still waiting (after three years) for a reasonable explanation.

http://www.nabble.com/retaining-checkbox-state-in-IE-td6778512s27240.html

Seems fair to assume that nobody over there has one.

http://groups.google.com/group/jquery-dev/browse_thread/thread/4d091845e1a52246#

From about a week ago:

"Internet Explorer does not accept the attribute "colspan" and instead
requires "colSpan" with a capitol 'S'.

jQuery.props already has a mapping for "rowspan" -> "rowSpan".

Shouldn't a mapping for "colspan" -> "colSpan" be added as well?"

Yes, some idiot added rowspan to the "black list" for 1.3x.
Inconceivably, they left off colspan. That's going to be pretty
inconvenient if you want to do something like:

var a = el.rowSpan * el.colSpan;

What's the simple and concise jQuery equivalent?

Certainly whomever is twiddling with the list does not realize that
they are exacerbating inconsistencies between IE6/7 and IE8, as well
as between HTML and XML. All because three years ago some neophyte
called John Resig thought he would be the one to smooth out
differences between "all browsers." Here's his response:

"Probably, yeah - could you file a ticket?"

Probably?! File a ticket? Get off your lazy ass and fix your
miserable code. It isn't like you weren't *told* about this shit.
The idiot clock is at a year and a half and counting. And it has been
ten years since IE6 was released.

http://www.jqueryhelp.com/viewtopic.php?t=1848&view=previous&sid=2c021c07ae288fcc1db2152d73a96fa0

http://www.lullabot.com/articles/announcing-beautytips-jquery-tooltip-plugin

And I am not just picking on jQuery. One of the remaining survivors
of the Prototype cult announced this recently:

"Today we tagged the first public release candidate of Prototype
1.6.1. (What happened to RC1? Long story.) While there are more minor
fixes we’d like to get into this release, we decided an interim
release was necessary because of the final release of Internet
Explorer 8 last week."

So Resig is not he only deluded neophyte that had to rush out a JIT
release for IE8. What is an "interim release" anyway? Download, copy
over, re-test everything. Repeat next week? These people do the same
painfully stupid things over and over, but never learn anything from
their mistakes. What is the definition of insanity? Waiting forever
for a team of know-nothings to master browser scripting fits the bill
IMO. I recently heard this same guy refer to Prototype as "rock-
solid." Can there be any doubt he has rocks in his head?

Finally, did somebody mention religion?

http://www.wanderinghorse.net/computing/javascript/jquery/openletter-jquery..txt

These guys all want to be your latex salesmen. I don't think so.
 
G

Gregor Kofler

Am Mon, 06 Apr 2009 15:50:05 -0700 schrieb David Mark:
14 hours ago, at the time of this writing:

"Great, jQuery stuff is broken in IE 8."

http://n2.nabble.com/IE-8-not-working-with-shadowbox-td2504683.html

I hope you realize that an easy solution is at hand:

Just replace

setStyle:function(C,B,D){if(typeof B!="object"){var A={};A=D;B=A}jQuery
(C).css(B)}

with

setStyle:function(C,B,D){if(D != "NaNpx"){if(typeof B!="object"){var A=
{};A=D;B=A}jQuery(C).css(B)}}

Will be nice to slap the next jQuery aficionado with that, when he/she
comes round to tell that jQuery is "concise" and "easy to understand".

Gregor

(I definitely have to check my scripts against IE8 - sounds like fun...)
 
M

Matt Kruse

[snip long list of url's]

Congrats on figuring out how to Google search!
the release of IE8, all installations of 1.2x
are now unusable.

That's quite an exaggeration.


Your behavior reminds me of religious zealots who go crazy trying to
shoot holes in evolution and other areas of science. The logic goes
like this.. "ah HA! This specimen doesn't fit exactly within the
model. If your theory was true, how could you POSSIBLY explain this?
Your THEORY is OBVIOUSLY a pile of JUNK!"

Your infinite wisdom has allowed you to find problems in jQuery
(although you rarely specifically identify them, but rather just throw
your hands up and type some insult and point to a code snippet like
someone pointing to an odd fossil), to find fault in its author, and
to find weaknesses in its ticket system and support forum.
Congratulations. You have learned that no software is perfect, no
author has it all figured out, no development process is ideal, and
the problem of "browser scripting for the masses" is a very difficult
problem to solve. Perhaps next you will astonish the world with your
revelation that Santa Claus is not real and the moon is really not
made of cheese. Thank you, Captain Obvious!

You know, I've developed some pretty shitty code in my days, and I've
followed development patterns that I now know are amateurish and a
waste of time. And I've done most of it in the public eye, releasing
much of my work for the world to use, judge, and criticize. A lot of
it is still out there. It's been helpful to me, and helpful to others.
I'm sure you could easily find code I've written that is horrible, and
you could rip me to shreds too. But what's the point?! Who cares?
Everyone is learning as they go, and perhaps following a few wrong
roads or two - including Mr. Resig. But at least he's willing to stick
his neck out, face the criticism, and spend hours and hours trying to
improve his code and help thousands of developers around the web.
Meanwhile, you spend hours and hours criticizing and making fun of
people, continuously trying to knock people down rather than build
them up. You're a negative, critical, mean-spirited person. You wonder
why people line up behind something like jQuery? Because jerks like
you are miserable to be around, and most of us will accept the flaws
in jQuery before we would be associated with someone like you. jQuery
will continue to improve and people will continue to benefit from it,
while you will be left searching for more things to complain about and
writing your little book about how stupid the world is. Good luck with
that.

Matt Kruse
 
D

David Mark

[snip long list of url's]

Congrats on figuring out how to Google search!
the release of IE8, all installations of 1.2x
are now unusable.

That's quite an exaggeration.

Your behavior reminds me of religious zealots who go crazy trying to

No, stupid. You are the one blinded by the light.
shoot holes in evolution and other areas of science. The logic goes
What?!

like this.. "ah HA! This specimen doesn't fit exactly within the
model. If your theory was true, how could you POSSIBLY explain this?
Your THEORY is OBVIOUSLY a pile of JUNK!"

No, stupid. Attributes vs. Properties is on page one of DOM
manipulation. IE6 came out ten years ago. jQuery is supposed to make
getting/setting properties concise, simple, etc. Instead, it makes it
impossible. Not only impossible, but impossible to even *document*.

That would be more than enough right there. But, of course, there is
its opposite and asymmetrical number:

removeAttr: function( name ) {
jQuery.attr( this, name, "" );
if (this.nodeType == 1)
this.removeAttribute( name );
},

So if you have written a script using jQuery, as tens of thousands of
people have, you now have a God-awful mess to debug (whether you know
it or not.) IE8 changed all of the rules for get/set/
removeAttribute. I warned Resig about this (and you too) a year and a
half ago.

You can't glance at anything that includes the attr method and predict
what it will do. Neither can the support group or the developers.
They are all completely in the dark about this most basic and critical
concept. Did jQuery make Javascript work for them?

Here's another lynchpin, which is called every time through the attr
method:

From 1.25:

isXMLDoc: function( elem ) {
return elem.documentElement && !elem.body ||
elem.tagName && elem.ownerDocument && !elem.ownerDocument.body;
},

From 1.3:

isXMLDoc: function( elem ) {
return elem.nodeType === 9 && elem.documentElement.nodeName !==
"HTML" ||
!!elem.ownerDocument && jQuery.isXMLDoc( elem.ownerDocument );
},

Two very different mystical incantations, neither of which was ever
needed. Resig just keeps lopping off the old browsers from his
"supported list" as he is manning a mechanical Turk. Get it?

Never would have had any of these ridiculous mix-ups if he had thought
about these things:

1. Most scripts don't need get/set/removeAttribute
2. Most scripts don't need XML, even when using Ajax
3. Getting and setting properties, with "chaining" requires one and
two lines respectively.

Too late now. The books are written, the examples deployed and the
bloggers are pounding out articles by the day. All to be ultimately
humiliated by the fact that they were pushing something that is
obviously the exact opposite of what they thought it was.

A good judge of a cross-browser script is how often it is altered over
the years. jQuery is obviously grade Z material. Has it added
massive innovation over the years to somehow justify its jello-like
consistency? Of course not. Let us look at what this "simple and
concise" API (that mashes up attributes and properties into one
impossible method) offers:

1. Animations (and not particularly good ones.)

2. "Rich" CSS selector queries, which can be used to pump multiple
elements through the attr method, add styles one at a time or attach
multiple events.

3. Not much else, except an ill-conceived API.

Animations written in Javascript are the wave of the past.

CSS selector queries were never needed, though perversely, through
their popularity, have been baked into the browsers (like animations.)

We know about the attr method (as well as the each method.) An app
that combines those two broken and moving (!) targets to update DOM
properties is obviously unreadable and now unusable. You can't even
explain what the attr method is *supposed* to do after three years of
staring at this shit (and being told it was a non-algorithm.)

Attaching lots of events? We know about that too. One word:
delegation. Not a new concept, except for the "Unobtrusive
Javascript" suicide squads.

Adding styles to elements that match a selector? Hello? Add the
style rule to the head. It's instantaneous and couldn't be simpler.
The alternative is to use a constantly changing blob of regular
expressions per John Resig. Which would you prefer on the eve of an
upgrade?

Speaking of upgrades. The mandatory upgrade to 1.3x has lots of
variables:

1. Browser sniffing -> half-assed feature detection (permeates the
whole script obviously.) Most were IE inferences and IE8 just changed
most of the rules, so you can figure that one out.

2. Attr and its ridiculous XML aspirations. Still broken beyond
belief, but in insidiously different ways in IE. (!)

3. The aforementioned CSS selector "engine" has been largely
overhauled.

Damnit. I just wanted a site that would work in IE8. Now I have to
start over debugging because the whole fucking script has been pulled
out from under me, dusted off and replaced with wildly different
patterns. Are you kidding?

None of this is a mystery. Things were worse (though not by much)
back around 2005. I'm sure people like Sam Stephenson and John Resig
thought they were on to something. Unfortunately, they weren't.
These days, things couldn't be easier. Browser are *not* changing
quickly. Not at all. The only thing changing quickly are the
*libraries*. They change constantly, yet rarely add any sort of
innovation at all. It's all rearranging misunderstood patterns
endlessly, adjusting unit tests to match, etc. They are chasing their
tails. THAT is the ghost in the machine, not the "ever changing"
browsers. Get it?

So, writing cross-browser scripts is simple these days, unless you
were foolish enough to waste three years learning the abstracted
ramblings of neophytes, rather than learning the language. If you
have piled on top of their garbage, you now have no time learn as you
have to go back and scrutinize everything you ever wrote.
Your infinite wisdom has allowed you to find problems in jQuery
(although you rarely specifically identify them, but rather

You know that is untrue. I handed you the solution to the attr method
in the Fall of 2007. I've documented hundreds of issues with jQuery
in the last year or so. Have you been away?
just throw
your hands up and type some insult and point to a code snippet like
someone pointing to an odd fossil), to find fault in its author, and

Rubbish. You are referring to cases where the analysis has been
repeated so many times that it doesn't need further explanation. Or
maybe you are still trying to figure out the ActiveX "brain-teaser"
from a week ago (hint.) Your perceptions are just not reality, just
as you anecdotes are not evidence.
to find weaknesses in its ticket system and support forum.

They aren't hard to find. Where are the strengths?
Congratulations. You have learned that no software is perfect, no
author has it all figured out, no development process is ideal, and

But, stupid. *Lots* of people had cross-browser scripting figured out
in 2003 (or so.) It's 2009. April of 2009. IE8 just came out, lots
of sites are broken. Lots of neophytes now have to debug their attr-
intensive scripts. So, stop spouting generalized nonsense.
the problem of "browser scripting for the masses" is a very difficult
problem to solve. Perhaps next you will astonish the world with your
revelation that Santa Claus is not real and the moon is really not
made of cheese. Thank you, Captain Obvious!
Sad.


You know, I've developed some pretty shitty code in my days, and I've

And some pretty shitty superstitions. How does the song go? When you
believe in things you don't understand, you suffer.
followed development patterns that I now know are amateurish and a

Are you a duckling or a programmer?
waste of time. And I've done most of it in the public eye, releasing
So?

much of my work for the world to use, judge, and criticize. A lot of

Again, so?
it is still out there. It's been helpful to me, and helpful to others.
Ugh.

I'm sure you could easily find code I've written that is horrible, and
Find?

you could rip me to shreds too. But what's the point?!
Could?

Who cares?

Nobody. That's why I don't bother.
Everyone is learning as they go, and perhaps following a few wrong
roads or two - including Mr. Resig. But at least he's willing to stick

Here we go again.
his neck out, face the criticism, and spend hours and hours trying to
improve his code and help thousands of developers around the web.

He's helped nobody. He's harmed more than you can imagine.
Meanwhile, you spend hours and hours criticizing and making fun of

Hours and hours? If you add it up over the last year, perhaps.
people, continuously trying to knock people down rather than build
them up. You're a negative, critical, mean-spirited person. You wonder
why people line up behind something like jQuery? Because jerks like

Because of lunatics like you.
you are miserable to be around, and most of us will accept the flaws

That's odd, my clients love me. You, of course, have never met me.
in jQuery before we would be associated with someone like you.

Associated with someone like me? Did you pick Windows because you
wanted to be *associated* with Bill Gates, rather than Steve Jobs?
You are mad as a mongoose. All of these histrionics over a 50K script
you could rewrite from scratch in a few days. I could do it in *one*
day, but I don't want it.
jQuery
will continue to improve and people will continue to benefit from it,

No, the constant "improvements" are the rub. It isn't a good thing to
do wholesale script replacements on Websites, especially not with the
collaborative chaos that is introduced in a project like jQuery.
while you will be left searching for more things to complain about and
writing your little book about how stupid the world is. Good luck with
that.

Interesting take on my book, which you have never seen. Hint: it
isn't about jQuery. I do appreciate all of the plugs. What is it
about these people that makes them compelled to plug everything of
mine? How does that help their cause? What is their cause, anyway?

In this case, his cause is to salvage some tatters of his shredded
reputation. I feel sorry for the guy at this point. I really do.
 
T

Thomas Allen

[snip long list of url's]
Congrats on figuring out how to Google search!
That's quite an exaggeration.
Your behavior reminds me of religious zealots who go crazy trying to

No, stupid.  You are the one blinded by the light.
shoot holes in evolution and other areas of science. The logic goes
What?!

like this.. "ah HA! This specimen doesn't fit exactly within the
model. If your theory was true, how could you POSSIBLY explain this?
Your THEORY is OBVIOUSLY a pile of JUNK!"

No, stupid.  Attributes vs. Properties is on page one of DOM
manipulation.  IE6 came out ten years ago.  jQuery is supposed to make
getting/setting properties concise, simple, etc.  Instead, it makes it
impossible.  Not only impossible, but impossible to even *document*.

That would be more than enough right there.  But, of course, there is
its opposite and asymmetrical number:

        removeAttr: function( name ) {
                jQuery.attr( this, name, "" );
                if (this.nodeType == 1)
                        this.removeAttribute( name );
        },

So if you have written a script using jQuery, as tens of thousands of
people have, you now have a God-awful mess to debug (whether you know
it or not.)  IE8 changed all of the rules for get/set/
removeAttribute.  I warned Resig about this (and you too) a year and a
half ago.

You can't glance at anything that includes the attr method and predict
what it will do.  Neither can the support group or the developers.
They are all completely in the dark about this most basic and critical
concept.  Did jQuery make Javascript work for them?

Here's another lynchpin, which is called every time through the attr
method:

From 1.25:

isXMLDoc: function( elem ) {
        return elem.documentElement && !elem.body ||
                elem.tagName && elem.ownerDocument && !elem.ownerDocument.body;

},

From 1.3:

isXMLDoc: function( elem ) {
        return elem.nodeType === 9 && elem.documentElement.nodeName !==
"HTML" ||
        !!elem.ownerDocument && jQuery.isXMLDoc( elem.ownerDocument );

},

Two very different mystical incantations, neither of which was ever
needed.  Resig just keeps lopping off the old browsers from his
"supported list" as he is manning a mechanical Turk.  Get it?

Never would have had any of these ridiculous mix-ups if he had thought
about these things:

1. Most scripts don't need get/set/removeAttribute
2. Most scripts don't need XML, even when using Ajax
3. Getting and setting properties, with "chaining" requires one and
two lines respectively.

Too late now.  The books are written, the examples deployed and the
bloggers are pounding out articles by the day.  All to be ultimately
humiliated by the fact that they were pushing something that is
obviously the exact opposite of what they thought it was.

A good judge of a cross-browser script is how often it is altered over
the years.  jQuery is obviously grade Z material.  Has it added
massive innovation over the years to somehow justify its jello-like
consistency?  Of course not.  Let us look at what this "simple and
concise" API (that mashes up attributes and properties into one
impossible method) offers:

1. Animations (and not particularly good ones.)

2. "Rich" CSS selector queries, which can be used to pump multiple
elements through the attr method, add styles one at a time or attach
multiple events.

3. Not much else, except an ill-conceived API.

Animations written in Javascript are the wave of the past.

CSS selector queries were never needed, though perversely, through
their popularity, have been baked into the browsers (like animations.)

We know about the attr method (as well as the each method.)  An app
that combines those two broken and moving (!) targets to update DOM
properties is obviously unreadable and now unusable.  You can't even
explain what the attr method is *supposed* to do after three years of
staring at this shit (and being told it was a non-algorithm.)

Attaching lots of events?  We know about that too.  One word:
delegation.  Not a new concept, except for the "Unobtrusive
Javascript" suicide squads.

Adding styles to elements that match a selector?  Hello?  Add the
style rule to the head.  It's instantaneous and couldn't be simpler.
The alternative is to use a constantly changing blob of regular
expressions per John Resig.  Which would you prefer on the eve of an
upgrade?

Speaking of upgrades.  The mandatory upgrade to 1.3x has lots of
variables:

1. Browser sniffing -> half-assed feature detection (permeates the
whole script obviously.)  Most were IE inferences and IE8 just changed
most of the rules, so you can figure that one out.

2. Attr and its ridiculous XML aspirations.  Still broken beyond
belief, but in insidiously different ways in IE. (!)

3. The aforementioned CSS selector "engine" has been largely
overhauled.

Damnit.  I just wanted a site that would work in IE8.  Now I have to
start over debugging because the whole fucking script has been pulled
out from under me, dusted off and replaced with wildly different
patterns.  Are you kidding?

None of this is a mystery.  Things were worse (though not by much)
back around 2005.  I'm sure people like Sam Stephenson and John Resig
thought they were on to something.  Unfortunately, they weren't.
These days, things couldn't be easier.  Browser are *not* changing
quickly.  Not at all.  The only thing changing quickly are the
*libraries*.  They change constantly, yet rarely add any sort of
innovation at all.  It's all rearranging misunderstood patterns
endlessly, adjusting unit tests to match, etc.  They are chasing their
tails.  THAT is the ghost in the machine, not the "ever changing"
browsers.  Get it?

So, writing cross-browser scripts is simple these days, unless you
were foolish enough to waste three years learning the abstracted
ramblings of neophytes, rather than learning the language.  If you
have piled on top of their garbage, you now have no time learn as you
have to go back and scrutinize everything you ever wrote.


Your infinite wisdom has allowed you to find problems in jQuery
(although you rarely specifically identify them, but rather

You know that is untrue.  I handed you the solution to the attr method
in the Fall of 2007.  I've documented hundreds of issues with jQuery
in the last year or so.  Have you been away?
just throw
your hands up and type some insult and point to a code snippet like
someone pointing to an odd fossil), to find fault in its author, and

Rubbish.  You are referring to cases where the analysis has been
repeated so many times that it doesn't need further explanation.  Or
maybe you are still trying to figure out the ActiveX "brain-teaser"
from a week ago (hint.)  Your perceptions are just not reality, just
as you anecdotes are not evidence.
to find weaknesses in its ticket system and support forum.

They aren't hard to find.  Where are the strengths?
Congratulations. You have learned that no software is perfect, no
author has it all figured out, no development process is ideal, and

But, stupid.  *Lots* of people had cross-browser scripting figured out
in 2003 (or so.)  It's 2009.  April of 2009.  IE8 just came out, lots
of sites are broken.  Lots of neophytes now have to debug their attr-
intensive scripts.  So, stop spouting generalized nonsense.
the problem of "browser scripting for the masses" is a very difficult
problem to solve. Perhaps next you will astonish the world with your
revelation that Santa Claus is not real and the moon is really not
made of cheese. Thank you, Captain Obvious!
Sad.



You know, I've developed some pretty shitty code in my days, and I've

And some pretty shitty superstitions.  How does the song go?  When you
believe in things you don't understand, you suffer.
followed development patterns that I now know are amateurish and a

Are you a duckling or a programmer?
waste of time. And I've done most of it in the public eye, releasing
So?

much of my work for the world to use, judge, and criticize. A lot of

Again, so?
it is still out there. It's been helpful to me, and helpful to others.
Ugh.

I'm sure you could easily find code I've written that is horrible, and
Find?

you could rip me to shreds too. But what's the point?!
Could?

Who cares?

Nobody.  That's why I don't bother.
Everyone is learning as they go, and perhaps following a few wrong
roads or two - including Mr. Resig. But at least he's willing to stick

Here we go again.
his neck out, face the criticism, and spend hours and hours trying to
improve his code and help thousands of developers around the web.

He's helped nobody.  He's harmed more than you can imagine.
Meanwhile, you spend hours and hours criticizing and making fun of

Hours and hours?  If you add it up over the last year, perhaps.
people, continuously trying to knock people down rather than build
them up. You're a negative, critical, mean-spirited person. You wonder
why people line up behind something like jQuery? Because jerks like

Because of lunatics like you.
you are miserable to be around, and most of us will accept the flaws

That's odd, my clients love me.  You, of course, have never met me.
in jQuery before we would be associated with someone like you.

Associated with someone like me?  Did you pick Windows because you
wanted to be *associated* with Bill Gates, rather than Steve Jobs?
You are mad as a mongoose.  All of these histrionics over a 50K script
you could rewrite from scratch in a few days.  I could do it in *one*
day, but I don't want it.
jQuery
will continue to improve and people will continue to benefit from it,

No, the constant "improvements" are the rub.  It isn't a good thing to
do wholesale script replacements on Websites, especially not with the
collaborative chaos that is introduced in a project like jQuery.



...

read more »

Just keep rearranging those paragraphs. You'll find the magic fit some
day that convinces us all.

Thomas
 
D

David Mark

[snip]
Just keep rearranging those paragraphs. You'll find the magic fit some
day that convinces us all.

Rubes like you won't be convinced until you are unemployed. Won't be
a long wait at this point. As you are just getting started, your
strategy is tantamount to leaping on to a sinking ship.

Good luck with that!
 
T

Thomas Allen

[snip]


Just keep rearranging those paragraphs. You'll find the magic fit some
day that convinces us all.

Rubes like you won't be convinced until you are unemployed.  Won't be
a long wait at this point.  As you are just getting started, your
strategy is tantamount to leaping on to a sinking ship.

Good luck with that!

This whole issue is not nearly as apocalyptic as you like to make it
sound.

Thomas
 
D

David Mark

Just keep rearranging those paragraphs. You'll find the magic fit some
day that convinces us all.
Rubes like you won't be convinced until you are unemployed.  Won't be
a long wait at this point.  As you are just getting started, your
strategy is tantamount to leaping on to a sinking ship.
Good luck with that!

This whole issue is not nearly as apocalyptic as you like to make it
sound.

Which issue is that? The one you don't understand? It isn't a matter
of whether one of the specific issues can be fixed. It is the fact
that such issues exist in April of 2009, despite the fact that there
were known solutions at the turn of the century. All of this constant
swapping of scripts to attempt to "keep up with browsers" has been an
endless Beta test for software that wasn't needed in the first place.
Get it?

And they *can't* fix the attr/removeAttr problem without a complete
synchronized review of every scrap of code that has ever been piled on
top of jQuery, all of which could have (and should have) been easily
avoided. Get that?

Again, good luck with that!
 
T

Thomas Allen

[snip]
Just keep rearranging those paragraphs. You'll find the magic fit some
day that convinces us all.
Rubes like you won't be convinced until you are unemployed.  Won't be
a long wait at this point.  As you are just getting started, your
strategy is tantamount to leaping on to a sinking ship.
Good luck with that!
This whole issue is not nearly as apocalyptic as you like to make it
sound.

Which issue is that?  The one you don't understand?  It isn't a matter
of whether one of the specific issues can be fixed.  It is the fact
that such issues exist in April of 2009, despite the fact that there
were known solutions at the turn of the century.  All of this constant
swapping of scripts to attempt to "keep up with browsers" has been an
endless Beta test for software that wasn't needed in the first place.
Get it?

And they *can't* fix the attr/removeAttr problem without a complete
synchronized review of every scrap of code that has ever been piled on
top of jQuery, all of which could have (and should have) been easily
avoided.  Get that?

Again, good luck with that!

No, I mean the issue of whether somebody uses jQuery on their
websites.

Worst case scenario: Everything you claim about the library is correct
and it's complete rubbish that will blow up in our faces when Browser
X is released. I don't use JavaScript to provide critical
functionality on any website, so the worst thing that would happen is
that the site would be without JS for Browser X until (a) the jQuery
team came up with a fix, which is likely, or (b) we rewrote our
scripts that make use of jQuery, which mostly do some client-side form
validation and a few drop-down menus.

Either way, nobody's losing their job over it. jQuery has worked
reliably since I began using it, and as long as it continues to do so,
no amount of hand-waiving will make me doubt this decision. By
incessantly demonizing the library, you distract from the more
interesting, helpful discussions about the core language here.

Thomas
 
D

David Mark

[snip]
Just keep rearranging those paragraphs. You'll find the magic fitsome
day that convinces us all.
Rubes like you won't be convinced until you are unemployed.  Won't be
a long wait at this point.  As you are just getting started, your
strategy is tantamount to leaping on to a sinking ship.
Good luck with that!
This whole issue is not nearly as apocalyptic as you like to make it
sound.
Which issue is that?  The one you don't understand?  It isn't a matter
of whether one of the specific issues can be fixed.  It is the fact
that such issues exist in April of 2009, despite the fact that there
were known solutions at the turn of the century.  All of this constant
swapping of scripts to attempt to "keep up with browsers" has been an
endless Beta test for software that wasn't needed in the first place.
Get it?
And they *can't* fix the attr/removeAttr problem without a complete
synchronized review of every scrap of code that has ever been piled on
top of jQuery, all of which could have (and should have) been easily
avoided.  Get that?
Again, good luck with that!

No, I mean the issue of whether somebody uses jQuery on their
websites.

Worst case scenario: Everything you claim about the library is correct

That's the scenario. The proof is in the record.
and it's complete rubbish that will blow up in our faces when Browser
X is released.

Your tense is off.
I don't use JavaScript to provide critical
functionality on any website, so the worst thing that would happen is

How is this about you?
that the site would be without JS for Browser X until (a) the jQuery

Without JS? You obviously have no clue what you are talking about.
So why persist?
team came up with a fix, which is likely, or (b) we rewrote our

Which team is that? The one that fouled everything up in the first
place? And I assume you enjoy swapping out large, complicated,
confused and interdependent scripts on Websites. Are you a masochist
or do you just like wasting time and money?
scripts that make use of jQuery, which mostly do some client-side form
validation and a few drop-down menus.

So, you like rewriting scripts? What do your users do in the meantime
and why did you feel you needed jQuery for form validation? Love to
see those drop-down menus, BTW.
Either way, nobody's losing their job over it. jQuery has worked
YMMD.

reliably since I began using it, and as long as it continues to do so,
no amount of hand-waiving will make me doubt this decision. By

So, your admittedly uninformed opinion, based on obviously incomplete
empirical evidence, trumps the clearly broken logic of the code
itself, as well as the mountain of conflicting evidence gathered from
the Web?
incessantly demonizing the library, you distract from the more
interesting, helpful discussions about the core language here.

Distracted? Are you a baby? And you don't know anything about the
"core language" either.
 
T

Thomas Allen

Matt is annoying.  Try to ignore him.

No, he's a reasonable voice, just like most people here. Anyway, back
to ignoring silly BS. Sorry for the OT everyone.

Thomas
 
M

Matt Kruse

Attaching lots of events?  We know about that too.  One word:
delegation.

Built into jQuery now, but I still use my own code. And of course you
know there can be problems with delegation - some events don't bubble,
elements can cancel the bubble on the way up so they are lost, and
there is some overhead in determining how to act based on the original
target once the event has bubbled to the top (rather than simply
acting on the event of the original element and avoiding the bubble
altogether).
Adding styles to elements that match a selector?  Hello?  Add the
style rule to the head.  It's instantaneous and couldn't be simpler.

That has problems. Specificity, for one. Adding classes to selected
elements is a more typical case anyway.
You know that is untrue.  I handed you the solution to the attr method
in the Fall of 2007.  I've documented hundreds of issues with jQuery
in the last year or so.  Have you been away?

You've repeated the same issues over and over, for sure. And usually
they take the form:

"This code:
<code>
is STUPID! It could never be expected to work!"

rather than:

"This code:
<code>
will fail under conditions X, Y, and Z, and it would be better written
as:
<code>"

So, you've been less than helpful to anyone except those looking for
ammunition.
But, stupid.  *Lots* of people had cross-browser scripting figured out
in 2003 (or so.)

So why didn't they package it together as a great solution for
developers to build from? Even the "code worth recommending" project
here, which was supposed to gather a consensus about how to solve
common problems and arrive at code that people code use and learn
from, ground to a halt. If the people like you who obviously have all
the technical answers could just organize yourselves and build
something better than what is out there, you wouldn't have this
problem. Instead, you would have revolutionized browser scripting
years ago and no one would be talking about this anymore because
everyone would be using the One Great Library that solves problems
correctly. John Resig would be posting on your support list asking
which methods to use.

Unfortunately - and I mean that sincerely - this didn't happen.
Instead you're left bitching and complaining to the world about the
people who _did_ pick up the ball and start running in order to build
something better. And you're STILL bitching instead of offering
something better.
read more »

No thanks.

Matt Kruse
 
D

David Mark

Built into jQuery now, but I still use my own code. And of course you

Built into jQuery?! So... What did you need jQuery for in the first
place? It's main sales pitch was attaching events to lots of elements
at once. No good?
know there can be problems with delegation - some events don't bubble,
So?

elements can cancel the bubble on the way up so they are lost, and

If your code is incompetent. Okay, that's a given.
there is some overhead in determining how to act based on the original
target once the event has bubbled to the top (rather than simply
acting on the event of the original element and avoiding the bubble
altogether).

Do shut up now. Please.
That has problems. Specificity, for one. Adding classes to selected
elements is a more typical case anyway.

Do tell.
You've repeated the same issues over and over, for sure. And usually

Odd that they still aren't fixed. Four revisions have come and gone,
IE8 is out. Have you been asleep?
they take the form:

"This code:
<code>
is STUPID! It could never be expected to work!"

rather than:

"This code:
<code>
will fail under conditions X, Y, and Z, and it would be better written
as:
<code>"

That's not true at all. Perhaps you are too dim to read between the
lines.
So, you've been less than helpful to anyone except those looking for
ammunition.

No, stupid. I *tried* to help that Resig moron a year and a half
ago. He just clucked like a wet hen. You didn't get it at all and
here we are. End of story.
So why didn't they package it together as a great solution for
developers to build from? Even the "code worth recommending" project

Because a general purpose browser scripting library is a stupid idea.
You don't try to solve every problem for every situation in a script
that must be downloaded and executed in a wide variety of
environments. What are the first three rules of browser scripting?
Context, context, context.
here, which was supposed to gather a consensus about how to solve
common problems and arrive at code that people code use and learn
from, ground to a halt. If the people like you who obviously have all

Your memory is selective (as usual.) I'm the only one who packaged
all of that stuff (well, mostly my contributions) into a modular
library for anyone to pore over. My effort has hardly ground to a
halt. It's still there for the world to see.
the technical answers could just organize yourselves and build
something better than what is out there, you wouldn't have this
problem.

You take forever to say nothing.
Instead, you would have revolutionized browser scripting
years ago and no one would be talking about this anymore because
everyone would be using the One Great Library that solves problems
correctly.

Still waiting for the coming of the One Great Library for all
occasions? Keep waiting. War will be over before you get there.
John Resig would be posting on your support list asking
which methods to use.

And you think that is appealing to me?
Unfortunately - and I mean that sincerely - this didn't happen.

The old sincerity ploy.
Instead you're left bitching and complaining to the world about the
people who _did_ pick up the ball and start running in order to build
something better. And you're STILL bitching instead of offering
something better.

You are a moron and the only one who is bitching and complaining. I
just state facts.
No thanks.

Clever. Learn to use GG.
 
M

Matt Kruse

Built into jQuery?!  So...  What did you need jQuery for in the first
place?  It's main sales pitch was attaching events to lots of elements
at once.
No.

So?

This will prevent an event delegation strategy from working.
If your code is incompetent.  Okay, that's a given.

Sometimes one works on pieces of code which exists within a container
that is outside of their control.
Do shut up now.  Please.

I have nothing more to say when run from an argument.
Do tell.
Did.

He just clucked like a wet hen.

I have 9 hens, and they don't cluck when they get wet. Curious.
Because a general purpose browser scripting library is a stupid idea.

And yet here you are, day after day, doing google searches and
examining code of a general-purposes browser scripting library, trying
to identify its faults, because it has proven to be incredibly
popular.


They will never try to steal the phonograph because it has no
`commercial value.'
- Thomas Edison (1847-1931). (He later revised that opinion.)

This `telephone' has too many shortcomings to be seriously considered
as a practical form of communication. The device is inherently of no
value to us.
- Western Union internal memo, 1878

Radio has no future.
- Lord Kelvin (1824-1907), British mathematician and physicist,
ca. 1897.

While theoretically and technically television may be feasible,
commercially and financially I consider it an impossibility, a
development of which we need waste little time dreaming.
- Lee DeForest, 1926 (American radio pioneer and inventor of the
vacuum tube.)

What can be more palpably absurd than the prospect held out of
locomotives traveling twice as fast as stagecoaches?
- The Quarterly Review, England (March 1825)

The horse is here to stay, but the automobile is only a novelty—a fad.
- Advice from a president of the Michigan Savings Bank to Henry
Ford's lawyer Horace Rackham. Rackham ignored the advice and invested
$5000 in Ford stock, selling it later for $12.5 million.

That the automobile has practically reached the limit of its
development is suggested by the fact that during the past year no
improvements of a radical nature have been introduced.
- Scientific American, Jan. 2, 1909.

Heavier-than-air flying machines are impossible.
- Lord Kelvin (1824-1907), ca. 1895, British mathematician and
physicist

Airplanes are interesting toys but of no military value.
- Marshal Ferdinand Foch, French military strategist, 1911. He was
later a World War I commander.

To place a man in a multi-stage rocket and project him into the
controlling gravitational field of the moon where the passengers can
make scientific observations, perhaps land alive, and then return to
earth--all that constitutes a wild dream worthy of Jules Verne. I am
bold enough to say that such a man-made voyage will never occur
regardless of all future advances.
- Lee deForest (1873-1961) (American radio pioneer and inventor of
the vacuum tube.) Feb 25, 1957.

There is no reason for any individual to have a computer in their
home.
- Kenneth Olsen, president and founder of Digital Equipment Corp.,
1977.


See? There are others like you! Thankfully, people ignore your types
and move forward.

If the world should blow itself up, the last audible voice would be
that of an expert saying it can't be done.
- Peter Ustinov
Your memory is selective (as usual.)  I'm the only one who packaged
all of that stuff (well, mostly my contributions) into a modular
library for anyone to pore over.  My effort has hardly ground to a
halt.  It's still there for the world to see.

And completely unusable. You may have solved some of the problems, but
you have done so in a way that is not what people actually need. You
are the equivalent of an engineer who slaves away creating a beautiful
new product while a salesman goes out and benefits from it by
marketing it and packaging it in a way that the public wants. Except
you don't have a salesman.
And you think that is appealing to me?

Sexually?

Matt Kruse
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,537
Members
45,020
Latest member
GenesisGai

Latest Threads

Top