Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

jQuery's latest stab at competence

1,671 views
Skip to first unread message

David Mark

unread,
Feb 6, 2009, 11:56:40 PM2/6/09
to
Some things never change. I see lots of blog posts with statements
like "jQuery was always super fast, but just look at these graphs!"
Never mind that the graphs have no units.

John Resig has been fumbling, bumbling and stumbling around browser
scripting for three years now (according to his Website, the release
was on jQuery's 3rd anniversary.) Why are so many people willing to
wait out his painfully slow learning process?

I saw one post by a developer who had to downgrade due to
incompatibility with some worthless plug-in. He stated that he would
*love* to use the new (super super fast?) jQuery, but he can't because
he is married to the "great" plug-in.

And what is "Sizzle?" John Resig suddenly discovered
document.evaluate? He's years behind on an unattainable goal (writing
the perfect JS library that satisfies the needs of every project and
every user.) Near as I can tell, he has never written a competent
script in his life (or written anything useful on the subject.)

So what do we have here?

Five seconds in, this line sticks out like a sore thumb:

if ( typeof text !== "object" && text != null )

The first comparison does not need to be strict. The second
comparison is obviously a waste of time. Who knows what the
intentions are as there are no comments for the containing method
(also called "text.") Looks like a symptom of jQuery's botched
design, which relies on all sorts of ill-advised method "overloading."

for ( var name in options )
elem.style[ name ] = old[ name ];

Wouldn't you hate to be a jQuery developer? Good luck debugging apps
that use other scripts.

Now here's a low-level function that needs to be as efficient as
possible:

css: function( elem, name, force ) {
if ( name == "width" || name == "height" ) {
var val, props = { position: "absolute", visibility: "hidden",
display:"block" }, which = name == "width" ? [ "Left", "Right" ] :
[ "Top", "Bottom" ];


Sure, why not create these objects every time through? Super fast
that.

function getWH() {
val = name == "width" ? elem.offsetWidth : elem.offsetHeight;
var padding = 0, border = 0;
jQuery.each( which, function() {

So much for efficiency. This guy has learned nothing.

padding += parseFloat(jQuery.curCSS( elem, "padding" + this,
true)) || 0;
border += parseFloat(jQuery.curCSS( elem, "border" + this +
"Width", true)) || 0;
});
val -= Math.round(padding + border);

Rounding?! Box model differences?

}

if ( jQuery(elem).is(":visible") )

So much for common sense. Even the MooTools team figured out that
this is a stupid idea.

getWH();
else
jQuery.swap( elem, props, getWH );

That's the method with the unfiltered for-in loop.

return Math.max(0, val);

Whatever.

}

return jQuery.curCSS( elem, name, force );

So if it is not height or width, call some other function.

},

Here it is:

curCSS: function( elem, name, force ) {
var ret, style = elem.style;

// We need to handle opacity special in IE
if ( name == "opacity" && !jQuery.support.opacity ) {
ret = jQuery.attr( style, "opacity" );

As I mentioned a year earlier, the "attr" method is a God-awful mess.
Resig actually agreed IIRC (his only concession in the face of dozens
of obvious mistakes.) Yet, here we are a year later calling it to get
the opacity style.


return ret == "" ?
"1" :
ret;

return ret || '1';


}

// Make sure we're using the right name for getting the float value
if ( name.match( /float/i ) )

Match?!

name = styleFloat;

if ( !force && style && style[ name ] )
ret = style[ name ];

else if ( defaultView.getComputedStyle ) {


If that looks odd (did to me), "defaultView" is created earlier:

defaultView = document.defaultView || {},

Yes, he is actually storing a reference to the mother of all host
objects. Do this in FF or the like:

window.alert(document.defaultView == window)

Granted, IE doesn't have this property (at least not in the released
versions.) Maybe newer versions of IE won't leak memory at all, but
then again, they might have document.defaultView pointing to the
window object, which would cause any element with an ID to leak
listeners attached through jQuery (not to mention the document object,
images, links, child nodes of the document, their child nodes, etc.)

For example, if you attach a listener to the first image in the
document, you would create this circular reference:

[image]->[wrapped listener]->[variable object]->[window]->[document]->
[images]->[image]

What a nightmare. Never preserve a reference to the window object (or
global object) in a closure (certainly not in code that attaches
listeners!)

// Only "float" is needed here
if ( name.match( /float/i ) )

Apparently he hasn't gotten to the "T" section of the manual yet
(test.)

name = "float";

name = name.replace( /([A-Z])/g, "-$1" ).toLowerCase();

var computedStyle = defaultView.getComputedStyle( elem, null );

if ( computedStyle )
ret = computedStyle.getPropertyValue( name );

The getPropertyValue method is broken in some older browsers. I
wouldn't expect the jQuery team to be aware of the need to test for
this as they seem to have their hands full with the latest versions of
IE, FF and Safari (do they even claim to support anything else?)

// We should always get a number back from opacity

A string actually.

if ( name == "opacity" && ret == "" )
ret = "1";

} else if ( elem.currentStyle ) {

Slow. How many years until the authors learn to use efficient
patterns?

var camelCase = name.replace(/\-(\w)/g, function(all, letter){
return letter.toUpperCase();
});

Another function created and discarded to be created again next time.
I get the feeling that no significant time or thought was put into any
of this.

ret = elem.currentStyle[ name ] || elem.currentStyle[ camelCase ];

That's just stupid. The "camel-ized" version is what works.


// From the awesome hack by Dean Edwards
// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291

Actually, I know this sucks. I admit I have used it when writing
general-purpose scripts, but it required some modification. Of
course, it would be better if application developers avoided
situations that required such hacks (but that would be less than
"awesome" wouldn't it?) Another reason why scripts without context
are generally a bad idea.

// If we're not dealing with a regular pixel number
// but a number that has a weird ending, we need to convert it to
pixels
if ( !/^\d+(px)?$/i.test( ret ) && /^\d/.test( ret ) ) {
// Remember the original values
var left = style.left, rsLeft = elem.runtimeStyle.left;

// Put in the new values to get a computed value out
elem.runtimeStyle.left = elem.currentStyle.left;
style.left = ret || 0;
ret = style.pixelLeft + "px";

// Revert the changed values
style.left = left;
elem.runtimeStyle.left = rsLeft;
}
}

return ret;
},

jQuery.offset = {
initialize: function() {
if ( this.initialized ) return;

Ugh.

var body = document.body, container = document.createElement('div'),
innerDiv, checkDiv, table, td, rules, prop, bodyMarginTop =
body.style.marginTop,
html = '<div style="position:absolute;top:0;left:0;margin:0;border:
5px solid #000;padding:0;width:1px;height:1px;"><div></div></
div><table style="position:absolute;top:0;left:0;margin:0;border:5px
solid #000;padding:0;width:1px;height:1px;" cellpadding="0"
cellspacing="0"><tr><td></td></tr></table>';

rules = { position: 'absolute', top: 0, left: 0, margin: 0, border:
0, width: '1px', height: '1px', visibility: 'hidden' };
for ( prop in rules ) container.style[prop] = rules[prop];

container.innerHTML = html;
body.insertBefore(container, body.firstChild);
innerDiv = container.firstChild, checkDiv = innerDiv.firstChild, td
= innerDiv.nextSibling.firstChild.firstChild;

this.doesNotAddBorder = (checkDiv.offsetTop !== 5);
this.doesAddBorderForTableAndCells = (td.offsetTop === 5);

innerDiv.style.overflow = 'hidden', innerDiv.style.position =
'relative';
this.subtractsBorderForOverflowNotVisible = (checkDiv.offsetTop ===
-5);

body.style.marginTop = '1px';
this.doesNotIncludeMarginInBodyOffset = (body.offsetTop === 0);
body.style.marginTop = bodyMarginTop;

body.removeChild(container);
this.initialized = true;

Well, I suppose imitation is a form of flattery. Still, it's a pretty
poor imitation.

},

bodyOffset: function(body) {
jQuery.offset.initialized || jQuery.offset.initialize();

Arrrrrghhhhhhhhh! (See above and don't write code like this.)

var top = body.offsetTop, left = body.offsetLeft;
if ( jQuery.offset.doesNotIncludeMarginInBodyOffset )
top += parseInt( jQuery.curCSS(body, 'marginTop', true), 10 ) ||
0,
left += parseInt( jQuery.curCSS(body, 'marginLeft', true), 10 ) ||
0;

parseInt?

return { top: top, left: left };
}

The rest of the offset code is more of the same (confused and
inefficient.) This is the hardest function to write and one that
virtually nobody needs. At least this version isn't infested with
browser sniffing like the previous attempts. If they keep at it, they
may one day come up with a solution to a problem that doesn't need to
be solved in the first place.

if ( document.documentElement["getBoundingClientRect"] )

Why bracket notation? Is it sloppiness or ignorance? And as we all
know by now, this is a terrible way to detect a host method.
Apparently John Resig does not read this group, except when jQuery is
panned periodically (even then, he doesn't seem to grasp what he is
reading.)

From the FX code, which has always been awful:

// Simple function for setting a style value
update: function(){
if ( this.options.step )
this.options.step.call( this.elem, this.now, this );

(jQuery.fx.step[this.prop] || jQuery.fx.step._default)( this );

// Set display property to block for height/width animations
if ( ( this.prop == "height" || this.prop == "width" ) &&
this.elem.style )
this.elem.style.display = "block";
},

This is the function that is called on each "step" of the animation.
Look at that last bit. Not the logic (which is disturbing enough),
but the placement. I've got animation code from before the turn of
the century that is light years ahead of this. Well, he's learning.
It's a process. Wait a few more years and this will really be the
ultimate script for everything.

// Either scroll[Width/Height] or offset[Width/Height], whichever is
greater
Math.max(
document.documentElement["client" + name],
document.body["scroll" + name], document.documentElement["scroll"
+ name],
document.body["offset" + name], document.documentElement["offset"
+ name]
) :

Comment seems confused. Logic is ludicrous.

// elem is actually elem.style ... set the style

I really hate that.

// IE uses filters for opacity
if ( !jQuery.support.opacity && name == "opacity" ) {
if ( set ) {
// IE has trouble with opacity if it does not have layout
// Force it by setting the zoom level
elem.zoom = 1;

// Set the alpha filter to set the opacity
elem.filter = (elem.filter || "").replace( /alpha\([^)]*\)/, "" )
+
(parseInt( value ) + '' == "NaN" ? "" : "alpha(opacity=" + value
* 100 + ")");
}

return elem.filter && elem.filter.indexOf("opacity=") >= 0 ?
(parseFloat( elem.filter.match(/opacity=([^)]*)/)[1] ) / 100) +
'':
"";
}

I think it is quite clear at this point that they can't do *anything*
right. This is the worst thing I have seen since MooTools. So the
answer to the "jQuery vs. MooTools" question is obviously neither.
Either will allow neophytes to delude themselves (and their clients)
into thinking they can write cross-browser widgets and applications.
The prevailing opinion seems to be that what follows is a maintenance-
free utopia with armies of eager support representatives waiting to
solve any problems that may arise. This opinion has been formed
because the authors of these scripts repeatedly make such assertions
in their blogs, leading lots of clueless people to parrot them as
facts (see the Ajaxian site for lots of examples.)

These people are marketers, not programmers. They aren't doing this
to be good samaritans either (never mind that their scripts are
free.) This is all about selling their books, which aren't worth a
plugged nickel. Save your time, money and aggravation and forget that
jQuery exists.

RoLo

unread,
Feb 7, 2009, 12:58:51 AM2/7/09
to
My jealous sense is tingling!

"Save your time, money and aggravation and forget that
jQuery exists."

<sarcasm>
Yeah... I have to study the code and write a long bashing post before
doing so.
</sarcasm>

Write whatever you want, jQuery still is the easiest lib out there and
thats what people like.

Rolo

Andrew Poulos

unread,
Feb 7, 2009, 2:00:02 AM2/7/09
to

I don't understand your post. David Mark took the time to "understand" a
library and then made a number of objective comments about it and this
upsets you???

I, for one, don't use jquery.

Andrew Poulos

David Mark

unread,
Feb 7, 2009, 2:19:21 AM2/7/09
to
On Feb 7, 12:58 am, RoLo <roloswo...@gmail.com> wrote:
> My jealous sense is tingling!

Jealous of what? If anything, I am tired of tripping over bad scripts
every time I try to find something on the Internet. Turning off
scripting doesn't often help, which is another indicator of widespread
incompetence.

>
> "Save your time, money and aggravation and forget that
> jQuery exists."
>
> <sarcasm>
> Yeah... I have to study the code and write a long bashing post before
> doing so.
> </sarcasm>

What does that mean?

>
> Write whatever you want, jQuery still is the easiest lib out there and
> thats what people like.

The easiest lib out there? Sorry to be repetitious, but what does
*that* mean?

David Mark

unread,
Feb 7, 2009, 2:20:38 AM2/7/09
to

Thanks for the vote of confidence. I don't get his post either. I
think he just wanted to see his name in "print."

>
> I, for one, don't use jquery.

Well, that's a start. :)

RoLo

unread,
Feb 7, 2009, 9:40:12 AM2/7/09
to
> I don't understand your post. David Mark took the time to "understand" a
> library and then made a number of objective comments about it and this
> upsets you???
Im not upset, Im been realist...
http://stackoverflow.com/questions/176324/why-does-everyone-like-jquery-more-than-prototype-script-aclo-us-or-mootools-or-w

David did made good points, but I don't believe he was objective at
all.

Rolo

RoLo

unread,
Feb 7, 2009, 9:59:57 AM2/7/09
to
> Jealous of what?  If anything, I am tired of tripping over bad scripts
> every time I try to find something on the Internet.  Turning off
> scripting doesn't often help, which is another indicator of widespread
> incompetence.
Don't know what sites you enter... but most sites I enter work OK. I
wouldn't say widespread incompetence, maybe your too perfectionist for
them.

Maybe you should create a patch with your recommendations and send
them to Resig that would help a couple of those sites. Or maybe create
your own super super fast and stable lib so someone else can bash you
out.

> > <sarcasm>
> > Yeah... I have to study the code and write a long bashing post before
> > doing so.
> > </sarcasm>
>
> What does that mean?

Sarcasm: A form of humor that is marked by mocking with irony,
sometimes conveyed in speech with vocal over-emphasis.

Basically you spent some time reading the jQuery source.. then went
bashing it.. then you say "forget that jQuery exists."
I haven't read an jQuery post like yours for quite some time, so I
sense you can't forget about jQuery.

> The easiest lib out there?  Sorry to be repetitious, but what does
> *that* mean?

http://stackoverflow.com/questions/176324/why-does-everyone-like-jquery-more-than-prototype-script-aclo-us-or-mootools-or-w

This reminds me of Basic vs C arguments. You can say whatever you want
about Basic, that will not make it less popular because its easier.

On a side note, next time you will bash some code, stay focused on the
code! Saying it has bugs because someone else wrote it will not make
you a better programmer. Maybe your right, but who are you to judge?

Rolo

SAM

unread,
Feb 7, 2009, 10:03:42 AM2/7/09
to
Le 2/7/09 5:56 AM, David Mark a écrit :

>
> return ret == "" ?
> "1" :
> ret;
>
> return ret || '1';

I have a question here :
Except the shorter and little more comprehensive code,
does that really run faster ?

> For example, if you attach a listener to the first image in the
> document, you would create this circular reference:
>
> [image]->[wrapped listener]->[variable object]->[window]->[document]->
> [images]->[image]

It is what what kills me with all these libraries, we forget to use the
shorter functions of the JS or directly the trees of the window already
built by the parser and continue to use a heavy mechanism to call a
simple object known besides.

> What a nightmare. Never preserve a reference to the window object (or
> global object) in a closure (certainly not in code that attaches
> listeners!)

Way to do ?

> if ( name == "opacity" && ret == "" )
> ret = "1";
>
> } else if ( elem.currentStyle ) {
>
> Slow.

What is slow ?
How to do ?

> How many years until the authors learn to use efficient patterns?

Where is the lesson ?

> Save your time, money and aggravation and forget that jQuery exists.

Eh ben ! Y a du boulot là !
When we see all these sites (with some ones we would never have believed
that they would allow themselves) using such libraries...


--
sm

RoLo

unread,
Feb 7, 2009, 10:03:48 AM2/7/09
to
> Jealous of what?  If anything, I am tired of tripping over bad scripts
> every time I try to find something on the Internet.  Turning off
> scripting doesn't often help, which is another indicator of widespread
> incompetence.
Maybe Im browsing the wrong web then. Are you using IE?

> What does that mean?
sarcasm:


A form of humor that is marked by mocking with irony, sometimes
conveyed in speech with vocal over-emphasis.

> The easiest lib out there?  Sorry to be repetitious, but what does
> *that* mean?
I didn't speak for myself.. I was referring for this type of posts:
http://stackoverflow.com/questions/176324/why-does-everyone-like-jquery-more-than-prototype-script-aclo-us-or-mootools-or-w

Rolo

RoLo

unread,
Feb 7, 2009, 10:04:48 AM2/7/09
to
bah... double reply because the first one wasn't appearing :-S sorry.

Rolo

Thomas 'PointedEars' Lahn

unread,
Feb 7, 2009, 10:26:09 AM2/7/09
to
RoLo wrote:
>> I don't understand your post. David Mark took the time to "understand" a
>> library and then made a number of objective comments about it and this
>> upsets you???
> Im not upset, Im been realist...

You are a wannabe.

> http://stackoverflow.com/questions/176324/why-does-everyone-like-jquery-more-than-prototype-script-aclo-us-or-mootools-or-w

Look, this is a newsgroup, a place for *discussion*. For discussion *here*.
What matters here is *your* opinion. If you are unable to tell about what
*you* are thinking, and make an argument (preferably a good one) about *why*
you think so, if you can only parrot the nonsense of others out of your
cluelessness, your posting here is entirely expendable, as we have seen it
all before.

> David did made good points,

Obviously you would not recognize them if they jumped right into your face.

> but I don't believe he was objective at all.

And *you* are?


PointedEars

RoLo

unread,
Feb 7, 2009, 1:02:52 PM2/7/09
to
> You are a wannabe.
wannabe what?

Look ears, I understand you agree with david.. you think your way is
the only correct way.

> Look, this is a newsgroup, a place for *discussion*.  For discussion *here*.
>  What matters here is *your* opinion.  If you are unable to tell about what
> *you* are thinking, and make an argument (preferably a good one) about *why*
> you think so, if you can only parrot the nonsense of others out of your
> cluelessness, your posting here is entirely expendable, as we have seen it
> all before.

I agree with that.

> Obviously you would not recognize them if they jumped right into your face.

I'm starting to believe you love me.

> And *you* are?
how I'm not been?

Rolo

Thomas 'PointedEars' Lahn

unread,
Feb 7, 2009, 1:07:45 PM2/7/09
to
RoLo wrote:
>> You are a wannabe.
> wannabe what?

Use a dictionary. A wannabe Web developer, if you need to know.

> Look ears, I understand you agree with david.. you think your way is
> the only correct way.

You don't understand anything.

>> And *you* are?
> how I'm not been?

Pardon?


PointedEars

RoLo

unread,
Feb 7, 2009, 2:11:12 PM2/7/09
to
> >> And *you* are?
> > how I'm not been?
>
> Pardon?

Let me help you with the logic.
"And *you* are 'objective'?"
"how I'm not been 'objective'?"

Rolo

Thomas 'PointedEars' Lahn

unread,
Feb 7, 2009, 2:23:40 PM2/7/09
to
RoLo <rolos...@gmail.com> wrote:
> > >> And *you* are?
> > > how I'm not been?
> >
> > Pardon?
>
> Let me help you with the logic.

There is no logic in gibberish.

> "And *you* are 'objective'?"
> "how I'm not been 'objective'?"

Maybe you should get a grasp of English first.


PointedEars

David Mark

unread,
Feb 7, 2009, 5:15:29 PM2/7/09
to
On Feb 7, 9:59 am, RoLo <roloswo...@gmail.com> wrote:
> > Jealous of what?  If anything, I am tired of tripping over bad scripts
> > every time I try to find something on the Internet.  Turning off
> > scripting doesn't often help, which is another indicator of widespread
> > incompetence.
>
> Don't know what sites you enter... but most sites I enter work OK. I

Start with Google (or iGoogle.) That latter one I set up just to
monitor some Google-provided data. Every time I open the page it
throws a script error for each of the little Google "windows."
Navigating from there to another Google site breaks the back button,
etc. I find that most sites throw at least one error on load.
Personally, I don't trust a site after that as the developers clearly
don't know what is going on after their code leaves the server. I
don't want such code getting in the way of my browsing, filling out
forms, etc. As for the latter, Google Code has a form with a textarea
where the backspace button eats up *two* characters.

> wouldn't say widespread incompetence, maybe your too perfectionist for
> them.

Web developers? Not incompetent? Maybe you don't know what to look
for?

>
> Maybe you should create a patch with your recommendations and send
> them to Resig that would help a couple of those sites. Or maybe create

Maybe the developers of those sites should help themselves and learn
browser scripting. I've given them all of the clues they should need
at this point (this isn't a new discussion.) And besides, just who do
you think instigated this latest jQuery makeover? It would be a good
idea to search the archive. A year ago, John Resig was in here
defending his use of browser sniffing.

> your own super super fast and stable lib so someone else can bash you
> out.

LOL. That was his other "argument." Try Googling and you'll find
that I have written a similar library and that portions of the code
have been aped in the new jQuery. I've been waiting for somebody to
"bash me out" as you say. In the year since I posted it, I haven't
received anything but compliments (and imitation.) Certainly there
are mistakes to be found. I'm far less interested at this point as I
think the whole idea of a general-purpose library is a bad one and I
took it to a whole new level of pointlessness. It is virtually
impossible to write tight, efficient scripts without a context. For
example, I spent a lot of time making sure that IE quirks mode was
supported. Would have been a much better idea to document that
standards mode is a must.

>
> > > <sarcasm>
> > > Yeah... I have to study the code and write a long bashing post before
> > > doing so.
> > > </sarcasm>
>
> > What does that mean?
>
> Sarcasm: A form of humor that is marked by mocking with irony,
> sometimes conveyed in speech with vocal over-emphasis.

Idiot.

>
> Basically you spent some time reading the jQuery source.. then went
> bashing it.. then you say "forget that jQuery exists."

Yes. You're welcome.

> I haven't read an jQuery post like yours for quite some time, so I
> sense you can't forget about jQuery.

You aren't reading this group then and you must have missed the fact
that jQuery just started promoting their latest version as a "major
innovation", faster than "super fast", etc. If they would just stop
posting things like that, I wouldn't have to rebut them.

>
> > The easiest lib out there?  Sorry to be repetitious, but what does
> > *that* mean?
>

> http://stackoverflow.com/questions/176324/why-does-everyone-like-jque...

jQuery vs. Prototripe/Craptaculous? I didn't notice the date, but it
can't be recent (does anyone really think Prototype is viable at this
point?)

An excerpt from the top post:

"Having used Prototype, Scriptaculous and jQuery. I find jQuery to be
far more powerful, in that I tend to write far fewer lines of code
than with Prototype"

Of course, the widespread use of "minifiers" renders the "fewer lines"
argument useless. And "chaining" everything together in as few lines
as possible does not result in readable code (makes debugging a
nightmare as well.)

The poster goes on to say:

"I think what makes it particularly useful/powerful is:

1. The chaining of queries (each jQuery returns itself so you can
chain them together)"

Oh joy!

" 2. Working with arrays/collections of results as a single unit eg:
$('.tab').hide() could hide all elements of class tab"

Yes, every line of code in these apps creates and discards at least
one jQuery object (which is no small object.) When they start
chaining, it is more like half a dozen objects. The problem is that
neophytes see that "$" as representing a variable and use it as such.
It's a function. Even worse, it is a function that calls itself
repeatedly (always at least once if the - new - operator is omitted.)
Every time you call a function, you give the browsers a chance to re-
flow the document (and they will take you up on it.) Try to explain
this to a jQuery advocate and their eyes roll back in their heads,
followed by chants of "write less code", "save more money", "everyone
likes jQuery", blah, blah, blah. Don't join that club.

" 3. I find the API extremely 'discoverable' and common sense in
that in having a little knowledge I can achieve the results I am after
eg: $(':input').parents(':not(:first)').show() would show all the
parents of every input element except the first parent."

Yeah, that's readable. As for efficiency, I'm sure that results in
hundreds of function calls.

" 4. and probably most of all is the extensibility and plugin
architecture of jQuery is incredible and has created an awesome
community of plugins, where I can find practically anything I should
ever need."

All bullshit. Sounds like a commercial.

"Do yourself a favour and definitely use jQuery... and donate some
money while you're at it :)"

What did I tell you?

>
> This reminds me of Basic vs C arguments. You can say whatever you want
> about Basic, that will not make it less popular because its easier.

How about nobody writes software in Basic? Thanks to the infinite
"wisdom" of Bill Gates, there was a dark period where non-programmers
churned out Windows apps in Basic (with horrifying results.)

>
> On a side note, next time you will bash some code, stay focused on the
> code! Saying it has bugs because someone else wrote it will not make
> you a better programmer. Maybe your right, but who are you to judge?

Did I say it had bugs because someone else wrote it? I don't remember
that. The last thing you should do is assume the quality of code
based on the person's name at the top. That goes for anyone.

David Mark

unread,
Feb 7, 2009, 5:37:27 PM2/7/09
to
On Feb 7, 10:03 am, SAM <stephanemoriaux.NoAd...@wanadoo.fr.invalid>
wrote:

> Le 2/7/09 5:56 AM, David Mark a écrit :
>
>
>
> >                    return ret == "" ?
> >                            "1" :
> >                            ret;
>
> > return ret || '1';
>
> I have a question here :
>    Except the shorter and little more comprehensive code,
>    does that really run faster ?

No idea, but that is not the point. The latter is more concise and
readable. This wasn't a major complaint.

>
> > For example, if you attach a listener to the first image in the
> > document, you would create this circular reference:
>
> > [image]->[wrapped listener]->[variable object]->[window]->[document]->
> > [images]->[image]
>
> It is what what kills me with all these libraries, we forget to use the
> shorter functions of the JS or directly the trees of the window already
> built by the parser and continue to use a heavy mechanism to call a
> simple object known besides.

I agree (I think.)

>
> > What a nightmare.  Never preserve a reference to the window object (or
> > global object) in a closure (certainly not in code that attaches
> > listeners!)
>
> Way to do ?

Don't do it.

>
> >                    if ( name == "opacity" && ret == "" )
> >                            ret = "1";
>
> >            } else if ( elem.currentStyle ) {
>
> > Slow.
>
> What is slow ?
> How to do ?

It is slow because it does its (poor) feature detection on every call.

>
> > How many years until the authors learn to use efficient patterns?
>
> Where is the lesson ?

About efficient coding patterns? Peter Michaux's blog has lots of
articles on the subject. They are discussed here from time to time as
well.

>
> > Save your time, money and aggravation and forget that jQuery exists.
>
> Eh ben ! Y a du boulot là !

?

> When we see all these sites (with some ones we would never have believed
> that they would allow themselves) using such libraries...

Yes, it is beyond belief. The trouble is that site owners don't know
anything but what their programmers tell them. The programmers tell
them it is impossible to write cross-browser scripts (and probably
believe that) and enumerate "arguments" like:

1. A library "just gets the job done" (where I can not as I am not
qualified to do the job.)

2. Things change so fast on the Internet. We need a team of anonymous
hobbyists to support our efforts.

3. We don't want to re-invent the wheel (write any real code at all.)

4. jQuery is "super fast." Just look at all of the bloggers and
graphs that say so!

5. "These things have widgets!" That's a quote from some Ajaxian
airhead.

6. If we don't use a library, we'll be left behind!

7. People use PHP right? Why not write everything in C or assembler?

8. We heard that one project increased their productivity by 500% on
switching to jQuery (never mind that they increased their headaches by
1000%.)

On that last one, the problem is that most developers ignore bug
reports, writing them off as "edge cases" or delusions, passing the
headaches on to the users.

RoLo

unread,
Feb 7, 2009, 7:25:20 PM2/7/09
to
> Start with Google (or iGoogle.)  That latter one I set up just to
> monitor some Google-provided data.  Every time I open the page it
> throws a script error for each of the little Google "windows."
> Navigating from there to another Google site breaks the back button,
> etc.  I find that most sites throw at least one error on load.
> Personally, I don't trust a site after that as the developers clearly
> don't know what is going on after their code leaves the server.  I
> don't want such code getting in the way of my browsing, filling out
> forms, etc.  As for the latter, Google Code has a form with a textarea
> where the backspace button eats up *two* characters.
As for my self, I have not noticed this. Your talking about
javascripts errors or warnings? Because I do notice a lot of
warnings... but not much errors.

> > Sarcasm: A form of humor that is marked by mocking with irony,
> > sometimes conveyed in speech with vocal over-emphasis.
>
> Idiot.

:-D

> > Basically you spent some time reading the jQuery source.. then went
> > bashing it.. then you say "forget that jQuery exists."
>
> Yes.  You're welcome.

well... actually yes, thanks for the analysis.. I just don't like too
much bashing.

> Yes, every line of code in these apps creates and discards at least
> one jQuery object (which is no small object.)  When they start
> chaining, it is more like half a dozen objects.  The problem is that
> neophytes see that "$" as representing a variable and use it as such.
> It's a function.  Even worse, it is a function that calls itself
> repeatedly (always at least once if the - new - operator is omitted.)
> Every time you call a function, you give the browsers a chance to re-
> flow the document (and they will take you up on it.)  Try to explain
> this to a jQuery advocate and their eyes roll back in their heads,
> followed by chants of "write less code", "save more money", "everyone
> likes jQuery", blah, blah, blah.  Don't join that club.

I have read portions of the code and I'm sure it works as described,
something that I don't like and thats why I use my own stuff.

> How about nobody writes software in Basic?  Thanks to the infinite
> "wisdom" of Bill Gates, there was a dark period where non-programmers
> churned out Windows apps in Basic (with horrifying results.)

Agree :-S but.. the language was successful.

> Did I say it had bugs because someone else wrote it?  I don't remember
> that.  The last thing you should do is assume the quality of code
> based on the person's name at the top.  That goes for anyone.

You would be a great lawyer hehehe.

Rolo

Garrett Smith

unread,
Feb 7, 2009, 8:28:46 PM2/7/09
to
David Mark wrote:
> On Feb 7, 9:59 am, RoLo <roloswo...@gmail.com> wrote:

> took it to a whole new level of pointlessness. It is virtually
> impossible to write tight, efficient scripts without a context. For
> example, I spent a lot of time making sure that IE quirks mode was
> supported. Would have been a much better idea to document that
> standards mode is a must.
>

Writing code for standards mode, not quirks, makes things easier.

--
comp.lang.javascript FAQ <URL: http://jibbering.com/faq/ >

David Mark

unread,
Feb 7, 2009, 9:52:41 PM2/7/09
to
On Feb 7, 8:28 pm, Garrett Smith <dhtmlkitc...@gmail.com> wrote:
> David Mark wrote:
> > On Feb 7, 9:59 am, RoLo <roloswo...@gmail.com> wrote:
> > took it to a whole new level of pointlessness.  It is virtually
> > impossible to write tight, efficient scripts without a context.  For
> > example, I spent a lot of time making sure that IE quirks mode was
> > supported.  Would have been a much better idea to document that
> > standards mode is a must.
>
> Writing code for standards mode, not quirks, makes things easier.

No question. Same for HTML as opposed to (X)HTML. Of course, none of
the popular libraries work with XHTML, but they do try to please
everyone on every front they can, which has led us to where we are
today.

I saw a comment recently that described the search for the "best
framework" to validate forms. Yes, they settled on jQuery (50K of
unmitigated junk code to validate forms!) I would have told them to
skip the client side scripting entirely, at least until they learn
some basics (like form validation.) Such discussions don't lead
anywhere though (at least not with developers.) Typically they retort
that it is only 15K (patently untrue and meaningless if it was true)
and they have to use it or they will be "left behind." They don't
realize they are running hard and fast in the wrong direction. When
they hit a wall, they'll find out the all-knowing army of jQuery hacks
is just as lost as they are.

On a related note, I see there is much rejoicing in jQuery-land that
MS will soon be "supporting" jQuery (as if MS knows the first thing
about browser scripting.) Very clever on the part of MS though as I
know they don't support anything for free. Maybe if you buy a $500
development package, you might get to talk to some clueless nimrod in
a phone room for a few minutes, but the idea that a telemarketer can
do anything more than "open a ticket" and ask you to write down a
20-30 digit number for future reference is laughable.

slebetman

unread,
Feb 7, 2009, 11:09:35 PM2/7/09
to
On Feb 7, 11:03 pm, SAM <stephanemoriaux.NoAd...@wanadoo.fr.invalid>
wrote:

> Le 2/7/09 5:56 AM, David Mark a écrit :
<snip>

> > What a nightmare.  Never preserve a reference to the window object (or
> > global object) in a closure (certainly not in code that attaches
> > listeners!)
>
> Way to do ?
>

Don't do it. It's stupid. The object is already global. Global! get
it? Why would you EVER need to store a closure to a global variable?
Apprently whoever wrote that thought hey, I'll need a reference to
this object later and added the closure while completely forgetting
that it is already a global variable in the first place.

Thomas 'PointedEars' Lahn

unread,
Feb 8, 2009, 7:28:42 AM2/8/09
to
slebetman wrote:
> SAM wrote:
>> David Mark a écrit :

>>> What a nightmare. Never preserve a reference to the window object (or
>>> global object) in a closure (certainly not in code that attaches
>>> listeners!)
>> Way to do ?
>
> Don't do it. It's stupid.

Is it?

> The object is already global.

An object's location, if there is such a thing, is _not_ in the source code
(but in heap memory), so it cannot be global. As for the proprietary
host-defined `window' property of the ECMAScript Global Object or the
user-defined global variable that stores a reference to the ECMAScript
Global Object, the object that has it as a property is (probably) on the
"upper" end of the execution context's scope chain. Nothing more, nothing less.

> Global! get it? Why would you EVER need to store a closure to a global
> variable?

There are cases when this appears to be necessary. Feature-testing is a
good example.

> Apprently whoever wrote that thought hey, I'll need a reference to
> this object later and added the closure while completely forgetting
> that it is already a global variable in the first place.

Apparently you don't know how easy (unwanted) closures are created in these
languages.

<http://www.jibbering.com/faq/faq_notes/closures.html>


PointedEars

drj...@gmail.com

unread,
Feb 8, 2009, 6:55:43 PM2/8/09
to
On Feb 8, 11:37 am, David Mark <dmark.cins...@gmail.com> wrote:
>
> Yes, it is beyond belief.  The trouble is that site owners don't know
> anything but what their programmers tell them.  The programmers tell
> them it is impossible to write cross-browser scripts (and probably
> believe that) and enumerate "arguments" like:
>
> 1. A library "just gets the job done" (where I can not as I am not
> qualified to do the job.)
>

There is such a thing as cost/benefit analysis. In particular - the
cost of developing a library such as jquery is generally significant,
and so it is a reasonable thing to look for libraries available to
lessen the effort required to develop a product in-house or not.

While you make some good points on the code itself, your personal
attacks at John Resig are unnecessary and do not enhance your
arguments.

If not jquery, what would you suggest people use? Assume for the
moment I do not have infinite time to write my own perfect library and
must use one available from a 3rd party (free or otherwise).

RobG

unread,
Feb 8, 2009, 8:45:54 PM2/8/09
to
On Feb 9, 9:55 am, drjl...@gmail.com wrote:
> On Feb 8, 11:37 am, David Mark <dmark.cins...@gmail.com> wrote:
> > Yes, it is beyond belief. The trouble is that site owners don't know
> > anything but what their programmers tell them. The programmers tell
> > them it is impossible to write cross-browser scripts (and probably
> > believe that) and enumerate "arguments" like:
>
> > 1. A library "just gets the job done" (where I can not as I am not
> > qualified to do the job.)
>
> There is such a thing as cost/benefit analysis. In particular - the
> cost of developing a library such as jquery is generally significant,
> and so it is a reasonable thing to look for libraries available to
> lessen the effort required to develop a product in-house or not.

The point is that in the vast majority of cases, you don't need a
library with all the functionality of jQuery. Nor has it been
suggested here that every site should be coded from scratch every time
(in fact, quite the opposite).

The primary argument is that jQuery does things poorly and that
programmers with a bit of experience should be able to write better
code.

The primary criterion for jQuery excellence seems to be "I can write
stuff in fewer lines of code". Since when has excellence or even
quality been determined solely by lines of code?


[...]


> If not jquery, what would you suggest people use?

Search for "david mark mylibrary".


> Assume for the
> moment I do not have infinite time to write my own perfect library and
> must use one available from a 3rd party (free or otherwise).

The decision on whether to use a 3rd party library should be based on
the functionally that the site needs and the programming team's
ability to provide it. If they can't write the code, they probably
can't appropriately assess the merits of a 3rd party library or its
suitability for the job.

If it can write the code, then likely it can develop a library
suitable for the job and steadily improve it as the site grows. Done
properly, it should be smaller, faster and more easily maintained than
the current crop of large, general purpose libraries.


--
Rob

Garrett Smith

unread,
Feb 8, 2009, 9:04:16 PM2/8/09
to
drj...@gmail.com wrote:
> On Feb 8, 11:37 am, David Mark <dmark.cins...@gmail.com> wrote:
>> Yes, it is beyond belief. The trouble is that site owners don't know
>> anything but what their programmers tell them. The programmers tell
>> them it is impossible to write cross-browser scripts (and probably
>> believe that) and enumerate "arguments" like:
>>
>> 1. A library "just gets the job done" (where I can not as I am not
>> qualified to do the job.)
>>
>
> There is such a thing as cost/benefit analysis. In particular - the
> cost of developing a library such as jquery is generally significant,
> and so it is a reasonable thing to look for libraries available to
> lessen the effort required to develop a product in-house or not.
>

I am not clear on what this means:

| "lessen the effort required to develop a product in-house or not".

Would the alternative to "in-house" be using jQuery? Sorry, I do not
understand what your point is.

> While you make some good points on the code itself, your personal
> attacks at John Resig are unnecessary and do not enhance your
> arguments.
>

I would agree with that.

> If not jquery, what would you suggest people use? Assume for the
> moment I do not have infinite time to write my own perfect library and
> must use one available from a 3rd party (free or otherwise).

You seem to think that a library is needed at all.

Before writing the code, you'd first have to determine what it is that
needs to be done.

David Mark

unread,
Feb 8, 2009, 9:07:29 PM2/8/09
to
On Feb 8, 6:55 pm, drjl...@gmail.com wrote:
> On Feb 8, 11:37 am, David Mark <dmark.cins...@gmail.com> wrote:
>
>
>
> > Yes, it is beyond belief.  The trouble is that site owners don't know
> > anything but what their programmers tell them.  The programmers tell
> > them it is impossible to write cross-browser scripts (and probably
> > believe that) and enumerate "arguments" like:
>
> > 1. A library "just gets the job done" (where I can not as I am not
> > qualified to do the job.)
>
> There is such a thing as cost/benefit analysis. In particular - the
> cost of developing a library such as jquery is generally significant,
> and so it is a reasonable thing to look for libraries available to
> lessen the effort required to develop a product in-house or not.
>
> While you make some good points on the code itself, your personal
> attacks at John Resig are unnecessary and do not enhance your
> arguments.

LOL. If I (among others) hadn't bashed his work repeatedly over the
last year or so, I venture he would still be advocating browser
sniffing. He didn't appear to be listening prior.

I never said anything about him personally (other than he is ignorant
about browser scripting.) As I have stated before, he may well be a
very good man, just a very bad Ninja (or Rock Star or whatever he is
calling himself these days.)

>
> If not jquery, what would you suggest people use? Assume for the
> moment I do not have infinite time to write my own perfect library and
> must use one available from a 3rd party (free or otherwise).

See Rob's comments.

ada...@gmail.com

unread,
Feb 8, 2009, 11:27:31 PM2/8/09
to
On Feb 7, 4:37 pm, David Mark <dmark.cins...@gmail.com> wrote:
> On Feb 7, 10:03 am, SAM <stephanemoriaux.NoAd...@wanadoo.fr.invalid>
> wrote:
>
> > Le 2/7/09 5:56 AM, David Mark a écrit :
>
> > >                    return ret == "" ?
> > >                            "1" :
> > >                            ret;
>
> > > return ret || '1';
>
> > I have a question here :
> >    Except the shorter and little more comprehensive code,
> >    does that really run faster ?
>
> No idea, but that is not the point.  The latter is more concise and
> readable.  This wasn't a major complaint.

Those expressions are not equivalent. They give different answers
when ret==null (or ret==[], though that's probably impossible. I
didn't check.)

David Mark

unread,
Feb 8, 2009, 11:50:14 PM2/8/09
to

IIRC, those were not possibilities.

ada...@gmail.com

unread,
Feb 9, 2009, 12:20:00 AM2/9/09
to
I appreciate David's pointing out problems with jQuery. That's useful
information. His opinion that jQuery is worthless is, however,
completely wrong.

Perhaps an analogy would help. I'm sure we've all read CmdrTaco's
initial reaction to the first iPod announcement: ". No wireless. Less
space than a nomad. Lame. " -- http://apple.slashdot.org/article.pl?sid=01/10/23/1816257&tid=107

David Mark's "My Library" is the Creative Zen Nomad Jukebox II, or
whatever it was, to jQuery's iPod. Except that the Nomad had market
share, iirc.

And another analogy: I'm sure we've all heard Winston Churchill's
quote -- "And you, madam, are ugly. But in the morning, I shall be
sober." -- http://en.wikiquote.org/wiki/Winston_Churchill

jQuery may very well be technically inferior to My Library, but it is
elegant, and its technical deficiencies can be corrected. Elegance is
much more difficult to add later.

I find jQuery to be elegant, easy to learn, and easy to use. It is
fairly well documented, with decent examples. It is fast enough. I
can make it work without throwing errors on the platforms I care
about. Most importantly, it is fast to write jQuery code, and jQuery
code I've written is still easy to read, even months later. It lets
me get the job done so I can worry about satisfying my customers.

Go visit jQuery.com. Look at the claims right at the top of the
page. I don't know if it is fast, but it is fast enough. I can't
speak to its conciseness, but every other claim is true, at least for
me. It only claims to support more recent browsers. It sufficiently
supports the browsers I care about. There is still room for other
libraries and other ways of doing things, but that doesn't make jQuery
worthless.

Andrew Poulos

unread,
Feb 9, 2009, 12:58:28 AM2/9/09
to
ada...@gmail.com wrote:

> jQuery may very well be technically inferior to My Library, but it is
> elegant, and its technical deficiencies can be corrected. Elegance is
> much more difficult to add later.

I'm sorry to say, but that you can't clearly identify a difference in
quality is very telling on the value of your opinion of the two libraries.


Andrew Poulos

David Mark

unread,
Feb 9, 2009, 1:05:28 AM2/9/09
to
On Feb 9, 12:20 am, ada...@gmail.com wrote:
> I appreciate David's pointing out problems with jQuery.  That's useful
> information.  His opinion that jQuery is worthless is, however,
> completely wrong.

No, it is worse than worthless (it is harmful.)

>
> Perhaps an analogy would help.  I'm sure we've all read CmdrTaco's

I doubt it.

> initial reaction to the first iPod announcement: ". No wireless. Less

Never heard of it.

> space than a nomad. Lame. " --http://apple.slashdot.org/article.pl?sid=01/10/23/1816257&tid=107


>
> David Mark's "My Library" is the Creative Zen Nomad Jukebox II, or
> whatever it was, to jQuery's iPod.  Except that the Nomad had market
> share, iirc.

You don't know what you are talking about. "My Library" was posted a
year ago and never marketed in any way. I am not interested in
marketing a free library. At the time, I was interested in proving
that jQuery (and others) were foolish to sniff browsers. A year
later, at least jQuery has taken a stab at cross-browser
compatibility. Still harmful, slow and a waste of time, but at least
it doesn't make decisions based on an optional, arbitrary sequence of
characters.

And yes, there are projects that are using parts of it (hard to
imagine an app that would need all of it!) There was a time when
nobody used jQuery either (those were the days) and we'll come full
circle in the next few years (nobody will be using jQuery again.)

>
> And another analogy:  I'm sure we've all heard Winston Churchill's
> quote -- "And you, madam, are ugly. But in the morning, I shall be
> sober."  --http://en.wikiquote.org/wiki/Winston_Churchill

Never heard that one either.

>
> jQuery may very well be technically inferior to My Library, but it is
> elegant, and its technical deficiencies can be corrected.  Elegance is
> much more difficult to add later.

Elegant? You didn't read the code. And we've been hearing these "can
be corrected" arguments for years. Go ahead and wait it out, learning
nothing in the meantime. Even if the obvious mistakes were corrected,
it will still be hamstrung by the original botched design.

>
> I find jQuery to be elegant, easy to learn, and easy to use.  It is

There's that word again. And easy to learn what? How to create
highly inefficient, bloated and sluggish Web applications? The market
for those sorts of things is in steep decline.

> fairly well documented, with decent examples.  It is fast enough.  I

Fast enough for what? Try one of your apps on an iPhone.

> can make it work without throwing errors on the platforms I care
> about.

The platforms that *you* care about? What would those be? And who
said anything about throwing errors? Of course, the announcement page
for the latest version of jQuery throws an error in IE6. (!)

> Most importantly, it is fast to write jQuery code, and jQuery

Why is it fast to write jQuery code? Are we talking in terms of
keystrokes?

> code I've written is still easy to read, even months later.  It lets

Relatively speaking, jQuery code is not easy to read, debug or
maintain.

> me get the job done so I can worry about satisfying my customers.

I really dislike that "get the job done" line. If you can't write
scripts without lumping in 50K of somebody else's junk, then perhaps
you should pursue another career. And you are (knowingly or not)
royally screwing your customers. Yours is the type of code that I
throw out immediately on entering a project, so all you are really
doing is wasting time.

>
> Go visit jQuery.com.  Look at the claims right at the top of the

Why?

> page.  I don't know if it is fast, but it is fast enough.  I can't

There's that "fast enough" qualification again. And again, fast
enough for what and on what?

> speak to its conciseness, but every other claim is true, at least for
> me.

Assertions are true or false. Your opinions have nothing to do with
it.

> It only claims to support more recent browsers.  It sufficiently

I know and it doesn't even do that well (see the announcement page.)

> supports the browsers I care about.  There is still room for other

What browsers do you care about? You do realize that new ones come
out all the time. Again, try your jQuery wonder-scripts on mobile
devices and see how they fare. Or IE6. (!) I know the previous
version croaked in various IE7 configurations as well. You are just
not experienced enough to know about such things, so you should start
listening to those who are.

> libraries and other ways of doing things, but that doesn't make jQuery
> worthless.

As mentioned, it is less than worthless.

David Mark

unread,
Feb 9, 2009, 1:23:46 AM2/9/09
to
On Feb 9, 12:20 am, ada...@gmail.com wrote:
> I appreciate David's pointing out problems with jQuery.  That's useful

[snip]

One other note. This thread seems to be turning into jQuery vs. My
Library and that was not my intention. I recommend neither for
beginners at this time. We know all about jQuery. As for mine, it
was cobbled together in two months last winter and has never been
thoroughly tested or documented. Use at your own risk.

I was pleased to see that it still works in FF3 though (not out at the
time of development.) I was also glad to see the builder work on a
PS3, which AFAIK has an off-brand browser embedded. When I have the
time, I will see how the rest of it fares on that platform.

Personally, I don't use My Library at all, though I do often create
builds to mold into the specific context of projects I work on. Don't
try that at home either (at least until I finish the documentation.)

If I had to recommend something as a starting point for beginners, it
would be Peter's "Fork Javascript", which is lightweight, modular and
AFAIK thoroughly tested. At the very least, it is a good example to
look over if you are trying to get a handle on cross-browser
scripting, as are his various blog entries on the subject.

Faisal Vali

unread,
Feb 9, 2009, 11:10:59 AM2/9/09
to
David,
As usual, you make some technically valid points - and while I
generally appreciate and learn from the technical content of your
posts - and while I do feel that the javascript community is better
because of you (and Peter and Richard, just to name a few) - better
because you challenge the developers to rise to a more rigorous
standard - the underlying tone of your posts is often strikingly
draconian* - and the ad-hominem attacks are hurtful, unethical and
rarely necessary.

I just want to make a general comment about this group, prefaced with
some slight background.

I am a programmer-hobbyist - not a professional programmer - I like
javascript a lot and while it is far from perfect (albeit getting much
closer to perfection with ES 3.1), it is a very fun language to code
in (leaving the DOMs & BOMs aside).

I also follow some of the other programming newsgroups/blogs: std.c++,
c++.moderated, boost, es-discuss, lang.ruby, lambda-the-ultimate,
comp.programming.threads, vc.atl - I am generally humbled &
enlightened by some of the advice, insight and discussion I see on
some of those other groups (as I sometimes am on this group too). Yet
the *sense* I get is that the frequency and level of hubris,
abrasiveness & dismissiveness that litters the posts here (by some of
the truly competent wizards in this group) substantially outnumbers
that in the other groups mentioned above.

I have always found that interesting.

Has anyone else ever noticed this? (Anyone have any theories why?)
Or is this just a sampling error on my part? - in which case i
apologize in advance.

Regardless, thanks for all your valuable technical contributions &
criticisms and for open sourcing My-library.

peace,
Faisal Vali
Radiation Oncology
Loyola


* search the group for discussions regarding prototype and use of
libraries in general - and sample some of the other more recent posts
by some of the more frequent posters


Matt Kruse

unread,
Feb 9, 2009, 11:37:14 AM2/9/09
to
On Feb 6, 10:56 pm, David Mark <dmark.cins...@gmail.com> wrote:
> Some things never change.

Including your attacks on jQuery and Ninjas ;)

You have, as usual, made excellent technical critiques of the source
code and some of the "design" goals of jQuery. I've been reading (and
sometimes participating in) discussions on the jQuery Dev list and I'm
growing increasingly uncomfortable with the approach being taken in
some cases and the quality of the solutions being offered. In
particular, some of the things in this thread:
http://groups.google.com/group/jquery-dev/browse_frm/thread/2b70ead1e2cc186d

But the question of whether to use jQuery as a tool is more complex
than whether a certain function is slow or a condition is checked
unnecessarily...

> John Resig has been fumbling, bumbling and stumbling around browser
> scripting for three years now (according to his Website, the release
> was on jQuery's 3rd anniversary.)  Why are so many people willing to
> wait out his painfully slow learning process?

I like to think of it as similar to Microsoft Windows.

Windows has huge problems. Bugs everywhere, fixed often. Many things
hacked together. The code has been patched, redesigned, and fixed for
years. Design decisions are sometimes very questionable. Backwards-
compatibility makes the problem very complex. It crashes, it slows to
a crawl, it has compatibility problems, and it's very frustrating to
many users. It's taken them decades to get to Vista, and look how much
people hate it!

And yet, look at the desktops of most businesses around the world.
They are running Microsoft Windows.

Why? You may say it's all marketing. Certainly that's a part of it.
But there are other things. Momentum. Familiarity. Ease of use.
Compatibility. Cost. Ease of adoption. Etc, etc.

Regardless of whether or not there are technically better
alternatives, or other options that may be better in a specific area,
the overall decision is to use Windows because when everything is
considered, it is the best decision. Or maybe the least bad decision.
Same diff.

[And for Apple fans, don't get me started... I had a 6gb mp3 player
(the first ever with a hd) long before the ipod was released. It was
far superior to the ipod at the time. But which one did people choose?
The ipod. Adoption of a particular product or technology is _not_ a
purely analytical endeavor.]

I think jQuery is similar. It certainly has flaws, but the equation is
more complex than that. If you fail to understand why people continue
to use it (even people like me who see and understand the same
critiques you identify), then you don't understand all the other
factors. Momentum is huge, and jQuery has it right now. You can scream
ad flail on the floor all you want, but the direction of browser
scripting on the web is becoming more clear. Personally, I think
jQuery will be irrelevant in another 3 years. But its successor will
certainly be born out of the ashes of jQuery, and IMO there are a
number of benefits that come from following along with the jQuery
crowd right now.

As the crowd of developers using jQuery increases and becomes more
vocal, you can continue to tell them all how stupid they are, or you
can start to think about what it is that you're not understanding
about the emerging behavior. If your interest is purely technical and
you only care about what you are producing, then jQuery should be
entirely irrelevant. Spending time reading the source and posting
about it like you have would surely be a waste. However, if you are
interested in browser scripting trends and understanding where the
development community is going and why (and possibly how to personally
benefit from it), then you may want to focus less on the technical
specifics and look into the real reasons why people continue to adopt
a solution that you think is so terrible.

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

I kind of like this line. It says to me that the developers really,
really, REALLY want to make sure that text is not null. It really
makes me confident that they know what they are doing and care about
my feelings.

Matt Kruse

Adam Fisk

unread,
Feb 9, 2009, 1:57:13 PM2/9/09
to
Wow fellas. Here's a crazy idea: spend less time berating Resig to
make yourselves feel better about yourselves (look at how smart I am,
blah blah blah) and more time submitting patches to jquery. How many
patches could you have submitted in the time it took you to make your
post, Mr. Mark?

The best developers know enough to realize how much they don't know,
quickly followed by respectful discourse. The purpose of this thread
is jealously cloaked in progress.

-Adam


On Feb 7, 11:23 am, Thomas 'PointedEars' Lahn <PointedE...@web.de>
wrote:

Thomas 'PointedEars' Lahn

unread,
Feb 9, 2009, 2:29:46 PM2/9/09
to
Adam Fisk wrote:
> Wow fellas.

I don't know you, don't be this familiar.

> Here's a crazy idea: spend less time berating Resig to
> make yourselves feel better about yourselves (look at how smart I am,
> blah blah blah) and more time submitting patches to jquery.

If you had followed and understood what was posted over the last years about
jQuery here, you would have known that submitting patches to jQuery is a
waste of our time. The underlying concept of jQuery is flawed already. If
you like spending your time flogging a literally dead horse, why don't you
submit a patch? Or is it that you are just another wannabe, trolling about
what you are unable to understand?

> How many patches could you have submitted in the time it took you
> to make your post, Mr. Mark?

My last name is not "Mark". This is Usenet, not some unthreaded bulletin
board you may be used to. Reply to the posting you are referring to.

> The best developers know enough to realize how much they don't know,
> quickly followed by respectful discourse. The purpose of this thread
> is jealously cloaked in progress.

I see. You neither know what you are talking about ...

> [top post]

... nor can you quote properly[1]. Go away.


PointedEars
___________
[1] <http://jibbering.com/faq/#posting>

Adam Fisk

unread,
Feb 9, 2009, 2:33:54 PM2/9/09
to
OK, toolshed. Your certainly doing a commendable service to the
JavaScript language and are an astonishingly brilliant JavaScript
developer. No wait, you're a tool, and I can code circles around you,
but you don't even know it. Latah.

-Adam


On Feb 9, 11:29 am, Thomas 'PointedEars' Lahn <PointedE...@web.de>
wrote:

Thomas 'PointedEars' Lahn

unread,
Feb 9, 2009, 2:45:47 PM2/9/09
to
Matt Kruse wrote:

> David Mark wrote:
>> John Resig has been fumbling, bumbling and stumbling around browser
>> scripting for three years now (according to his Website, the release
>> was on jQuery's 3rd anniversary.) Why are so many people willing to
>> wait out his painfully slow learning process?
>
> I like to think of it as similar to Microsoft Windows.
>
> Windows has huge problems. Bugs everywhere, fixed often. Many things
> hacked together. The code has been patched, redesigned, and fixed for
> years. Design decisions are sometimes very questionable. Backwards-
> compatibility makes the problem very complex. It crashes, it slows to
> a crawl, it has compatibility problems, and it's very frustrating to
> many users. It's taken them decades to get to Vista, and look how much
> people hate it!
>
> And yet, look at the desktops of most businesses around the world.
> They are running Microsoft Windows.

In my experience, because they don't know any better for there is nobody
competent around who tells them. Example (non-OS, but you get the idea):
I have recently told my boss that they could save about 2000 credits for
basic licenses plus regular upgrade costs if design templates were
delivered in a GIMP-friendly layered format instead of Adobe Illustrator.
You can't begin to imagine how fast they reconsidered.

> Why? You may say it's all marketing. Certainly that's a part of it.
> But there are other things. Momentum. Familiarity.

Yes, it's so familiar that all the wannabes out there copy its $() and, as
if the extensive error-prone overloading was not enough, generate even more
ambiguity in source code.

> Ease of use. Compatibility. Cost. Ease of adoption. Etc, etc.

^^^^^^^^^^^^^^
YMMD.


PointedEars

David Mark

unread,
Feb 9, 2009, 6:52:08 PM2/9/09
to
On Feb 9, 11:37 am, Matt Kruse <m...@thekrusefamily.com> wrote:
> On Feb 6, 10:56 pm, David Mark <dmark.cins...@gmail.com> wrote:
>
> > Some things never change.
>
> Including your attacks on jQuery and Ninjas ;)

Am I to blame for that? I rather hoped I would have less to complain
about in this latest and most ballyhooed release.

>
> You have, as usual, made excellent technical critiques of the source
> code and some of the "design" goals of jQuery. I've been reading (and

Thank you.

> sometimes participating in) discussions on the jQuery Dev list and I'm
> growing increasingly uncomfortable with the approach being taken in
> some cases and the quality of the solutions being offered. In

> particular, some of the things in this thread:http://groups.google.com/group/jquery-dev/browse_frm/thread/2b70ead1e...

Dear God. I really don't understand why you waste time with them. I
know you don't really need jQuery, so move on and let them flounder.

>
> But the question of whether to use jQuery as a tool is more complex
> than whether a certain function is slow or a condition is checked
> unnecessarily...

I'm not getting into that again.

>
> > John Resig has been fumbling, bumbling and stumbling around browser
> > scripting for three years now (according to his Website, the release
> > was on jQuery's 3rd anniversary.)  Why are so many people willing to
> > wait out his painfully slow learning process?
>
> I like to think of it as similar to Microsoft Windows.

I see it more as the new VB (and we know how that ended up.)

>
> Windows has huge problems. Bugs everywhere, fixed often. Many things

You don't need to tell me. I have eight (8) XP Pro boxes here and
every one of them has their own unique problems.

> hacked together. The code has been patched, redesigned, and fixed for
> years. Design decisions are sometimes very questionable. Backwards-
> compatibility makes the problem very complex. It crashes, it slows to
> a crawl, it has compatibility problems, and it's very frustrating to
> many users. It's taken them decades to get to Vista, and look how much
> people hate it!

I will never buy it and would never have seen it, except that a client
had it on a few test machines. Yes, it sucks. It is a slower version
of XP with added fade effects.

>
> And yet, look at the desktops of most businesses around the world.
> They are running Microsoft Windows.

I know. They have inertia. I think they are on a downward trend
though (I certainly hope so at this point!)

>
> Why? You may say it's all marketing. Certainly that's a part of it.

Yes.

> But there are other things. Momentum. Familiarity. Ease of use.
> Compatibility. Cost. Ease of adoption. Etc, etc.

Yes, momentum is probably a better word. Ease of use? I don't know.
It seems to me that Windows has always been a nightmare and people
kept waiting it out, figuring the MS geniuses had to get it right at
some point. XP was a big improvement.

>
> Regardless of whether or not there are technically better
> alternatives, or other options that may be better in a specific area,
> the overall decision is to use Windows because when everything is
> considered, it is the best decision. Or maybe the least bad decision.
> Same diff.

Still, jQuery is just a script (and not exactly a huge one either.)

>
> [And for Apple fans, don't get me started... I had a 6gb mp3 player
> (the first ever with a hd) long before the ipod was released. It was
> far superior to the ipod at the time. But which one did people choose?
> The ipod. Adoption of a particular product or technology is _not_ a
> purely analytical endeavor.]

No question.

>
> I think jQuery is similar. It certainly has flaws, but the equation is
> more complex than that. If you fail to understand why people continue
> to use it (even people like me who see and understand the same
> critiques you identify), then you don't understand all the other

I don't see why you continue to use it. It seems like you want to
support them like a charity.

> factors. Momentum is huge, and jQuery has it right now. You can scream

Yes, it is a sickening trend.

> ad flail on the floor all you want, but the direction of browser
> scripting on the web is becoming more clear. Personally, I think
> jQuery will be irrelevant in another 3 years. But its successor will
> certainly be born out of the ashes of jQuery, and IMO there are a
> number of benefits that come from following along with the jQuery
> crowd right now.
>
> As the crowd of developers using jQuery increases and becomes more
> vocal, you can continue to tell them all how stupid they are, or you
> can start to think about what it is that you're not understanding
> about the emerging behavior. If your interest is purely technical and
> you only care about what you are producing, then jQuery should be
> entirely irrelevant. Spending time reading the source and posting
> about it like you have would surely be a waste. However, if you are
> interested in browser scripting trends and understanding where the
> development community is going and why (and possibly how to personally
> benefit from it), then you may want to focus less on the technical
> specifics and look into the real reasons why people continue to adopt
> a solution that you think is so terrible.

I just do what I do. There's no plan.

>
> > Five seconds in, this line sticks out like a sore thumb:
> > if ( typeof text !== "object" && text != null )
>
> I kind of like this line. It says to me that the developers really,
> really, REALLY want to make sure that text is not null. It really
> makes me confident that they know what they are doing and care about
> my feelings.

I think you misread it. If the first comparison is true, text is not
null. And why isn't the second comparison strict? Can you look at
that code at a glance and tell exactly what it does? ISTM that if
text is "", this will evaluate to true, but was that really the
intention of the author? Hard to say as there was no comment.

Matt Kruse

unread,
Feb 9, 2009, 7:13:08 PM2/9/09
to
On Feb 9, 5:52 pm, David Mark <dmark.cins...@gmail.com> wrote:
> I don't see why you continue to use it.  It seems like you want to
> support them like a charity.

I use it because I work in projects with many different developers,
with different levels of experience with javascript. Always on
internal apps where the browser set is controlled and within the
limited set supported by jQuery.

jQuery allows these developers to accomplish simple tasks and build
functionality and interfaces that they would not be able to do from
the ground up on their own. An existing js framework or set of
reusable code does not already exist, and it would be impractical to
devote time in creating it. jQuery, although imperfect, allows many
developers to write code that is, in fact, higher quality than they
would create on their own.

jQuery is documented very well and there are many articles, tips, and
books about it. There is an active support community. A developer can
get help and solve their problems without coming to me or someone
else.

It provides a common framework across projects and developers. Someone
who is familiar with jQuery in project A can switch to project B and
recognize the code and have an idea about what it does. If everyone
was writing code from scratch on their own, it may take many different
forms.

That's just a few of the reasons. I don't use it all that much myself,
personally. I do for simple things, usually, and typically only when
it's already included in the source of a page or webapp that I am
enhancing.

> > > Five seconds in, this line sticks out like a sore thumb:
> > > if ( typeof text !== "object" && text != null )
> > I kind of like this line. It says to me that the developers really,
> > really, REALLY want to make sure that text is not null. It really
> > makes me confident that they know what they are doing and care about
> > my feelings.
> I think you misread it.  If the first comparison is true, text is not
> null.  

I know. My response was pure sarcasm. I thought it was obvious ;)

Matt Kruse

David Mark

unread,
Feb 9, 2009, 7:39:55 PM2/9/09
to
On Feb 9, 7:13 pm, Matt Kruse <m...@thekrusefamily.com> wrote:
> On Feb 9, 5:52 pm, David Mark <dmark.cins...@gmail.com> wrote:
>
> > I don't see why you continue to use it.  It seems like you want to
> > support them like a charity.
>
> I use it because I work in projects with many different developers,
> with different levels of experience with javascript. Always on
> internal apps where the browser set is controlled and within the
> limited set supported by jQuery.
>
> jQuery allows these developers to accomplish simple tasks and build
> functionality and interfaces that they would not be able to do from
> the ground up on their own. An existing js framework or set of
> reusable code does not already exist, and it would be impractical to
> devote time in creating it. jQuery, although imperfect, allows many
> developers to write code that is, in fact, higher quality than they
> would create on their own.

If they are writing prototypes for you to replace with real code, then
I can see that as possibly a viable strategy, but an unfortunate one
for them as they won't ever learn anything useful (probably not a
concern for the company in the short term.)

>
> jQuery is documented very well and there are many articles, tips, and
> books about it. There is an active support community. A developer can
> get help and solve their problems without coming to me or someone
> else.

I'm not getting into that again. Let us say that YMMV.

[snip]

> > I think you misread it.  If the first comparison is true, text is not
> > null.  
>
> I know. My response was pure sarcasm. I thought it was obvious ;)
>

Maybe it should have been obvious. I looked at the line again to make
sure I wasn't seeing things.

Garrett Smith

unread,
Feb 9, 2009, 9:30:24 PM2/9/09
to
Adam Fisk wrote:
> Wow fellas. Here's a crazy idea: spend less time berating Resig to
> make yourselves feel better about yourselves (look at how smart I am,
> blah blah blah) and more time submitting patches to jquery. How many
> patches could you have submitted in the time it took you to make your
> post, Mr. Mark?
>
> The best developers know enough to realize how much they don't know,
> quickly followed by respectful discourse. The purpose of this thread
> is jealously cloaked in progress.
>

I don't get that sense at all. I get the sense that David Mark does not
like jQuery.

Perhaps John Resig asked David Mark to edit his book, and then blew him
off after David offered a /polite/ code review. It would not surprise me
at all for John Resig to do something like that. I could see how someone
might take a little offense to that, don't you?

David is perfectly capable of understanding what is going on in jQuery
and he has demonstrated that here in numerous posts.

My own frustration with jQuery and other libraries is that they are not
usually (if ever) a good tool for the job. When someone influential on
my team says "we need to use [script] to do [x]", and that means
includng jQuery or Dojo or Prototype for some sort of "lightbox" effect,
it takes my time to explain the costs of doing that, and then bring up
other alternatives.

Providing such explanation usually requires great care to be clear and
simple (so everyone can understand it) and often requires examples. It
can take a lot of effort! Especially if that person "in love" with the
bad idea and gets everyone else excited about with a demo. If I fail to
explain why that should not be done, I lose. Even if I am right and that
person is wrong. It potentially ends up looking like I want to do
things my own way because it is "my style".

There certainly are places to concede a point, even if you are right
(for example, placement of curly braces, indentation, variable names,
etc). Architectural decisions of the application is something more
significant and warrants greater care.

Allowing a passenger to walk down the aisle to the toilet is one thing,
letting him in the cockpit to push buttons is another altogether.

Garrett

> -Adam
>
Please reply inline next time.

>
> On Feb 7, 11:23 am, Thomas 'PointedEars' Lahn <PointedE...@web.de>
> wrote:
>> RoLo <roloswo...@gmail.com> wrote:
>>>>>> And *you* are?
>>>>> how I'm not been?
>>>> Pardon?
>>> Let me help you with the logic.
>> There is no logic in gibberish.
>>
>>> "And *you* are 'objective'?"
>>> "how I'm not been 'objective'?"
>> Maybe you should get a grasp of English first.
>>
>> PointedEars
>

David Mark

unread,
Feb 9, 2009, 10:55:20 PM2/9/09
to
On Feb 9, 9:30 pm, Garrett Smith <dhtmlkitc...@gmail.com> wrote:
> Adam Fisk wrote:
> > Wow fellas.  Here's a crazy idea:  spend less time berating Resig to
> > make yourselves feel better about yourselves (look at how smart I am,
> > blah blah blah) and more time submitting patches to jquery.  How many
> > patches could you have submitted in the time it took you to make your
> > post, Mr. Mark?
>
> > The best developers know enough to realize how much they don't know,
> > quickly followed by respectful discourse.  The purpose of this thread
> > is jealously cloaked in progress.
>
> I don't get that sense at all. I get the sense that David Mark does not
> like jQuery.
>
> Perhaps John Resig asked David Mark to edit his book, and then blew him
> off after David offered a /polite/ code review. It would not surprise me
> at all for John Resig to do something like that. I could see how someone
> might take a little offense to that, don't you?

That is an apt hypothetical scenario, but I should point out that I
have never talked to John Resig privately about anything and I
certainly wouldn't agree to edit one of his books. I am working on my
own book.

As you mentioned above, I don't like jQuery and I'll add that I don't
like the way John Resig markets it (and posts inaccurate blog
entries), but other than that, I don't know anything about him.

>
> David is perfectly capable of understanding what is going on in jQuery
> and he has demonstrated that here in numerous posts.
>
> My own frustration with jQuery and other libraries is that they are not
> usually (if ever) a good tool for the job. When someone influential on
> my team says "we need to use [script] to do [x]", and that means
> includng jQuery or Dojo or Prototype for some sort of "lightbox" effect,
> it takes my time to explain the costs of doing that, and then bring up
> other alternatives.

Yes, it gets tiring with the same old non-arguments coming up over and
over.

>
> Providing such explanation usually requires great care to be clear and
> simple (so everyone can understand it) and often requires examples. It
> can take a lot of effort! Especially if that person "in love" with the
> bad idea and gets everyone else excited about with a demo. If I fail to
> explain why that should not be done, I lose. Even if I am right and that
> person  is wrong.  It potentially ends up looking like I want to do
> things my own way because it is "my style".

Yes and you have to convince the rest that they can actually learn how
to do things right way and won't be lost if you happen to leave the
team.

[snip]

Peter Michaux

unread,
Feb 9, 2009, 11:40:40 PM2/9/09
to
On Feb 9, 8:37 am, Matt Kruse <m...@thekrusefamily.com> wrote:
> On Feb 6, 10:56 pm, David Mark <dmark.cins...@gmail.com> wrote:
>
> > Some things never change.
>

> You can scream


> ad flail on the floor all you want,

:-)

> but the direction of browser
> scripting on the web is becoming more clear. Personally, I think
> jQuery will be irrelevant in another 3 years. But its successor will
> certainly be born out of the ashes of jQuery,

Maybe not. Something like Cappuccino which totally abstracts the
browser (html, css, javascript) might take over for single-page apps.
Single-page apps are becoming more complex and dealing with the lack
of advances in the JavaScript language and the annoyances of working
directly with the DOM continue for some developers.

http://cappuccino.org/

Maybe Cappuccino or maybe something else like it.

To abstract the browser or not? I think that is a main question over
the next three years.

I keep reading things like "JavaScript is the assembly language of
2009."

Eventually C won and Assembly lost.

Peter

David Mark

unread,
Feb 10, 2009, 1:26:04 AM2/10/09
to
On Feb 9, 11:40 pm, Peter Michaux <petermich...@gmail.com> wrote:
> On Feb 9, 8:37 am, Matt Kruse <m...@thekrusefamily.com> wrote:
>
> > On Feb 6, 10:56 pm, David Mark <dmark.cins...@gmail.com> wrote:
>
> > > Some things never change.
>
> > You can scream
> > ad flail on the floor all you want,
>
> :-)

I must have missed that one. Screaming and flailing better describes
the behavior of developers when I tell them they can't use jQuery.

>
> > but the direction of browser
> > scripting on the web is becoming more clear. Personally, I think
> > jQuery will be irrelevant in another 3 years. But its successor will
> > certainly be born out of the ashes of jQuery,
>
> Maybe not. Something like Cappuccino which totally abstracts the
> browser (html, css, javascript) might take over for single-page apps.

I looked at some of the scripts for that recently and posted some
comments. Didn't look good. But I do agree that a framework
comprised of all three is a good idea. I don't mean that scripts and
style sheets would be married to a particular set of templates, but
that stipulations about the markup, as well as the style should be
made before the first line of code is written (or downloaded.)

> Single-page apps are becoming more complex and dealing with the lack
> of advances in the JavaScript language and the annoyances of working
> directly with the DOM continue for some developers.
>
> http://cappuccino.org/

I don't follow.

>
> Maybe Cappuccino or maybe something else like it.

What about it is unique?

>
> To abstract the browser or not? I think that is a main question over
> the next three years.

I don't really follow that either. I'll have to look at that thing
again.

>
> I keep reading things like "JavaScript is the assembly language of
> 2009."

That's obviously nonsense. Hard to believe anything you read on the
Web these days. Certainly not *that*. Javascript is a simple, but
powerful scripting language. It bears no relation whatsoever to
assembly language.

>
> Eventually C won and Assembly lost.

I know you aren't portraying jQuery as the C language. (?) Its
proponents love to talk about how small it is. Never mind that it is
far too much for the average Website, but look at it compared to the
source of a C compiler. ISTM that for anyone proficient in JS and DOM
scripting, jQuery reads like a paperback mystery novel (and not a
particularly engrossing one either.) And considering its relative
quality after the abnormally long honeymoon of three years, I'd say it
has nowhere to go but away.

It isn't going to "win" anything more than it already has. Now comes
the long process of clearing it off the Web, like those old NS4-layers-
branching scripts (some of which are still floating around out there.)

Peter Michaux

unread,
Feb 10, 2009, 1:58:41 AM2/10/09
to
On Feb 9, 10:26 pm, David Mark <dmark.cins...@gmail.com> wrote:
> On Feb 9, 11:40 pm, Peter Michaux <petermich...@gmail.com> wrote:

> > Something like Cappuccino which totally abstracts the
> > browser (html, css, javascript) might take over for single-page apps.
>
> I looked at some of the scripts for that recently and posted some
> comments. Didn't look good. But I do agree that a framework
> comprised of all three is a good idea. I don't mean that scripts and
> style sheets would be married to a particular set of templates, but
> that stipulations about the markup, as well as the style should be
> made before the first line of code is written (or downloaded.)
>
> > Single-page apps are becoming more complex and dealing with the lack
> > of advances in the JavaScript language and the annoyances of working
> > directly with the DOM continue for some developers.
>
> >http://cappuccino.org/
>
> I don't follow.
>
>
>
> > Maybe Cappuccino or maybe something else like it.
>
> What about it is unique?

Nothing necessarily.

Its goal of being a complete solution to abstract the browser as an
application platform. That is not unique (e.g. GWT) but not common
either.

The fact that they abstract JavaScript and ship their compiler and
runtime as part of the code is a compelling development cycle (no
compile step before sending code to the browser like GWT).


> > To abstract the browser or not? I think that is a main question over
> > the next three years.
>
> I don't really follow that either. I'll have to look at that thing
> again.

Based on their marketing, when programming an app with Cappuccino you
don't think about HTML, CSS, JavaScript at all. For all you know, the
Cappuccino rendering engine might be drawing the page in full SVG in
Firefox but still using HTML/CSS in IE6. You think about things the
way you would as though you were programming a native Apple
application with the Cocoa API for GUI.

We know the browser is very capable at rendering an application. Some
programmers are not happy about how they have to develop for the
browser. They think there are better languages and development models.
By abstracting the browser completely, developers can program without
thinking about the browser as we know it. They can create a completely
different API, use a different language, etc.


> > I keep reading things like "JavaScript is the assembly language of
> > 2009."
>
> That's obviously nonsense. Hard to believe anything you read on the
> Web these days. Certainly not *that*. Javascript is a simple, but
> powerful scripting language. It bears no relation whatsoever to
> assembly language.

It is an analogy about how they write in one language and compile down
to JavaScript/assembly. They think you wouldn't write source code in
either.


> > Eventually C won and Assembly lost.

By writing "Eventually C won and Assembly lost" I was asking "Will
abstracting the browser win and so will writing in HTML/CSS/Assembly
disappear?". First people wrote in binary, then in hex, then in
assembly, then in C, then in Java. At each step, the previous step
stayed around but not used by application programmers


> I know you aren't portraying jQuery as the C language. (?)

Not at all. I'm making the comparison

C : Assembly

as

Cappuccino/Ojective-J : HTML/CSS/JavaScript

or as

GWT : HTML/CSS/JavaScript

I think many projects like GWT and Cappuccino will emerge. One for
each programming language invented by mankind.

Peter

David Mark

unread,
Feb 10, 2009, 4:20:39 AM2/10/09
to
On Feb 10, 1:58 am, Peter Michaux <petermich...@gmail.com> wrote:
> On Feb 9, 10:26 pm, David Mark <dmark.cins...@gmail.com> wrote:
>
>
>
> > On Feb 9, 11:40 pm, Peter Michaux <petermich...@gmail.com> wrote:
> > > Something like Cappuccino which totally abstracts the
> > > browser (html, css, javascript) might take over for single-page apps.
>
> > I looked at some of the scripts for that recently and posted some
> > comments.  Didn't look good.  But I do agree that a framework
> > comprised of all three is a good idea.  I don't mean that scripts and
> > style sheets would be married to a particular set of templates, but
> > that stipulations about the markup, as well as the style should be
> > made before the first line of code is written (or downloaded.)
>
> > > Single-page apps are becoming more complex and dealing with the lack
> > > of advances in the JavaScript language and the annoyances of working
> > > directly with the DOM continue for some developers.
>
> > >http://cappuccino.org/
>
> > I don't follow.
>
> > > Maybe Cappuccino or maybe something else like it.
>
> > What about it is unique?
>
> Nothing necessarily.
>
> Its goal of being a complete solution to abstract the browser as an
> application platform. That is not unique (e.g. GWT) but not common
> either.

All I know about GWT is that it creates different versions of scripts
targeted at specific browsers (and it is from Google.) ISTM that most
of the libraries attempt to abstract away much of the browser. The
main difference I see is that GWT and that you write in languages
other than Javascript.

>
> The fact that they abstract JavaScript and ship their compiler and
> runtime as part of the code is a compelling development cycle (no
> compile step before sending code to the browser like GWT).

I don't like what I have heard about that.

>
> > > To abstract the browser or not? I think that is a main question over
> > > the next three years.
>
> > I don't really follow that either.  I'll have to look at that thing
> > again.
>
> Based on their marketing, when programming an app with Cappuccino you
> don't think about HTML, CSS, JavaScript at all. For all you know, the
> Cappuccino rendering engine might be drawing the page in full SVG in
> Firefox but still using HTML/CSS in IE6. You think about things the
> way you would as though you were programming a native Apple
> application with the Cocoa API for GUI.

I get it.

>
> We know the browser is very capable at rendering an application. Some
> programmers are not happy about how they have to develop for the
> browser. They think there are better languages and development models.
> By abstracting the browser completely, developers can program without
> thinking about the browser as we know it. They can create a completely
> different API, use a different language, etc.

I like creating API's certainly and find that one evolves on virtually
every project and abstraction of the browser is a common theme of
most. I'd say the level of abstraction needed on any given project is
related to the need to add to or modify the application in the future
(and who is to be expected to maintain it.) One thing is for sure
with the underlying language inescapably Javascript and browsers as
the targeted environment, whatever generates (or writes) the code will
decrease in proficiency as abstraction is added, as will the
efficiency of the application. Of course, the size goes up too.

Using another language like Java isn't of interest to me and I see
that as a separate issue (e.g. you could have a Java-based API that is
just a thin wrapper for browser interfaces.)

As for GWT, I can't imagine that Google is capable of generating
competent scripts from Java when they can't write it in the first
place. Never looked at it, so I could be wrong. Probably never will
bother as I don't like Java.

>
> > > I keep reading things like "JavaScript is the assembly language of
> > > 2009."
>
> > That's obviously nonsense.  Hard to believe anything you read on the
> > Web these days.  Certainly not *that*.  Javascript is a simple, but
> > powerful scripting language.  It bears no relation whatsoever to
> > assembly language.
>
> It is an analogy about how they write in one language and compile down
> to JavaScript/assembly. They think you wouldn't write source code in
> either.

Somebody still has to write assembly, but they are clearly not in the
majority. Seems everybody is writing Javascript (or pretending to.)

>
> > > Eventually C won and Assembly lost.
>
> By writing "Eventually C won and Assembly lost" I was asking "Will
> abstracting the browser win and so will writing in HTML/CSS/Assembly
> disappear?". First people wrote in binary, then in hex, then in
> assembly, then in C, then in Java. At each step, the previous step
> stayed around but not used by application programmers

Will some sort of new language emerge for Web applications? I suppose
it is possible. I'm sure we both agree it isn't jQuery.

>
> > I know you aren't portraying jQuery as the C language. (?)
>
> Not at all. I'm making the comparison

I didn't really think so.

>
> C : Assembly
>
> as
>
> Cappuccino/Ojective-J : HTML/CSS/JavaScript

I don't know anything about Objective-J.

>
> or as
>
> GWT : HTML/CSS/JavaScript

I doubt it.

>
> I think many projects like GWT and Cappuccino will emerge. One for
> each programming language invented by mankind.

I hope they remember to leave out Basic this time.

RobG

unread,
Feb 10, 2009, 4:37:10 AM2/10/09
to
On Feb 10, 2:40 pm, Peter Michaux <petermich...@gmail.com> wrote:
> On Feb 9, 8:37 am, Matt Kruse <m...@thekrusefamily.com> wrote:
[...]

> > but the direction of browser
> > scripting on the web is becoming more clear. Personally, I think
> > jQuery will be irrelevant in another 3 years. But its successor will
> > certainly be born out of the ashes of jQuery,
>
> Maybe not. Something like Cappuccino which totally abstracts the
> browser (html, css, javascript) might take over for single-page apps.
> Single-page apps are becoming more complex and dealing with the lack
> of advances in the JavaScript language and the annoyances of working
> directly with the DOM continue for some developers.
>
> http://cappuccino.org/
>
> Maybe Cappuccino or maybe something else like it.

I don't know about Cappuccino, their home page states:

"Why Objective-J, Cappuccino and SproutCore are completely changing
the web app industry"

Have you had a look at SproutCore? It is 344KB *minified* and is
based on Prototype.js (another 96KB as minified) and Prototype.js's
browser detection. Here's a sample (my indenting):

Platform: {
IE: function() {
if (Prototype.Browser.IE) {
return (navigator.appVersion.match(/\bMSIE.*7\.\b/))? 7 : 6;
} else return 0;
}(),

...

Element.setClassName = function(element, className, flag) {
if (SC.isIE()) {
if (flag) {
Element.addClassName(element, className);
} else {
Element.removeClassName(element, className);
}
} else {
if (flag) {
element.addClassName(className);
} else {
element.removeClassName(className);
}
}
};

...

hasClassName: function(className) {
return (this._classNames ||
this.get('classNames')).indexOf(className) >= 0;
},

addClassName: function(className) {
if (this.hasClassName(className)) return;
var classNames = this._classNames || this.get('classNames');
classNames.push(className);
this.set('classNames', classNames);
return className;
},

removeClassName: function(className) {
if (!this.hasClassName(className)) return;
var classNames = this._classNames || this.get('classNames');
classNames = this._classNames = classNames.without(className);
this.set('classNames', classNames);
return className;
},

...

It also consistently uses instanceof, e.g.

...
T_ARRAY='array';
...

typeOf: function(item) {
if (item === undefined) return T_UNDEFINED;
if (item === null) return T_NULL;
var ret = typeof(item);
if (ret == "object") {
if (item instanceof Array) {
ret = T_ARRAY;
} else if(item instanceof Function) {
ret = (item.isClass)? T_CLASS : T_FUNCTION;
} else if (item instanceof SC.Error) {
ret = T_ERROR;
} else if (item.isObject === true) {
ret = T_OBJECT;
} else ret = T_HASH;
} else if (ret === T_FUNCTION)
ret = (item.isClass)? T_CLASS : T_FUNCTION;
return ret;
},


which as far as I know is not safe across frames. Its typeOf function
is used in an isArray function ($type is an alias for the above
function):

isArray:function(obj) {
return ($type(obj)===T_ARRAY) || (obj && obj.objectAt);
},

At least the second part of the test looks for a function that gets
added to Array.prototype, but again, not safe across frames.


I would love to see some serious comment on the code, it seems pretty
dodgy in place to my inexpert eyes.


> To abstract the browser or not? I think that is a main question over
> the next three years.

The concept of abstracting the browser using code that is dependent on
browser detection is something of an oxymoron.

An early example of a SproutCore based web application is Apple's
MobileMe site[1] - pages weigh in at a hefty 1.5 MB or more on average
- try visiting on iPhone and entry is refused, it tells you to use the
native iPhone apps! On top of SproutCore and Prototype, it also has
530KB of other script. What was jQuery's claim? Do more, write less?
Seems not to be true for all javascript frameworks and libraries.

If Cappuccino continues down that path, it is an absolute no-go for
mobile devices until carrier speeds are at least equivalent to ADSL2
and users have at least 10GB per month of downloads.


> I keep reading things like "JavaScript is the assembly language of
> 2009."
>
> Eventually C won and Assembly lost.

I think a better analogy is that ANSI C lost to IDEs like Borland and
Visual Studio (though I'm not sure things will go the way of
Cappuccino-like environments either).

1. I must say the MobileMe site *looks* great, but that has nothing to
do with the technical competence of the underlying code.


--
Rob

Karl Tikjøb Krukow

unread,
Feb 10, 2009, 4:57:27 AM2/10/09
to
Faisal Vali wrote:
> I also follow some of the other programming newsgroups/blogs: std.c++,
> c++.moderated, boost, es-discuss, lang.ruby, lambda-the-ultimate,
> comp.programming.threads, vc.atl - I am generally humbled &
> enlightened by some of the advice, insight and discussion I see on
> some of those other groups (as I sometimes am on this group too). Yet
> the *sense* I get is that the frequency and level of hubris,
> abrasiveness & dismissiveness that litters the posts here (by some of
> the truly competent wizards in this group) substantially outnumbers
> that in the other groups mentioned above.
>
> I have always found that interesting.
>
> Has anyone else ever noticed this? (Anyone have any theories why?)
> Or is this just a sampling error on my part? - in which case i
> apologize in advance.

I think everyone notices it. Certainly all of the clj 'regulars' seem
extremely skilled, but there are a few of them that stand out as
unfriendly or even angry. You notice them more because of their posting
frequency and language.

There are both positive and negative effects. On the negative side, I
think that it may make some newcomers disregard the technical contents
because the post is dismissed as a troll or a personal attack; in effect
the technical content is shadowed by the strong language. On the
positive side, those who do stick around tend to make an extra effort to
be precise in their questions, language and follow netiquette.

Regarding theories 'why'? Here are a few (although I personally haven't
settled on any):

* Intentionally trying to scare off certain types of people

* Just a few angry (old?) men

* Reasoning that strong language will make a stronger impression

* Being genuinely frustrated with seeing what is considered incompetence
over and over again

But in the end, unless you are simply curious or for some reason care
about making this group more friendly to newcomers, you shouldn't really
care. It is still the best place to get technical advice.

Just my two cents,

/Karl

David Mark

unread,
Feb 10, 2009, 5:08:14 AM2/10/09
to
On Feb 10, 4:37 am, RobG <rg...@iinet.net.au> wrote:
> On Feb 10, 2:40 pm, Peter Michaux <petermich...@gmail.com> wrote:
>
>
>
> > On Feb 9, 8:37 am, Matt Kruse <m...@thekrusefamily.com> wrote:
> [...]
> > > but the direction of browser
> > > scripting on the web is becoming more clear. Personally, I think
> > > jQuery will be irrelevant in another 3 years. But its successor will
> > > certainly be born out of the ashes of jQuery,
>
> > Maybe not. Something like Cappuccino which totally abstracts the
> > browser (html, css, javascript) might take over for single-page apps.
> > Single-page apps are becoming more complex and dealing with the lack
> > of advances in the JavaScript language and the annoyances of working
> > directly with the DOM continue for some developers.
>
> >http://cappuccino.org/
>
> > Maybe Cappuccino or maybe something else like it.
>
> I don't know about Cappuccino, their home page states:
>
> "Why Objective-J, Cappuccino and SproutCore are completely changing
> the web app industry"

I've never encountered any of them.

>
> Have you had a look at SproutCore?  It is 344KB *minified* and is
> based on Prototype.js (another 96KB as minified) and Prototype.js's
> browser detection.  Here's a sample (my indenting):

OMG.

>
>   Platform: {
>     IE: function() {
>       if (Prototype.Browser.IE) {
>         return (navigator.appVersion.match(/\bMSIE.*7\.\b/))? 7 : 6;
>     } else return 0;
>   }(),
>
>   ...

Yes, they are right out (of their minds apparently.)

>
>   Element.setClassName = function(element, className, flag) {
>     if (SC.isIE()) {
>       if (flag) {
>         Element.addClassName(element, className);
>       } else {
>         Element.removeClassName(element, className);
>       }
>     } else {
>       if (flag) {
>         element.addClassName(className);
>       } else {
>         element.removeClassName(className);
>       }
>     }
>   };
>

You are making up this up.

>   ...
>
>   hasClassName: function(className) {
>     return (this._classNames ||
>             this.get('classNames')).indexOf(className) >= 0;
>   },
>
>   addClassName: function(className) {
>     if (this.hasClassName(className)) return;
>     var classNames = this._classNames || this.get('classNames');
>     classNames.push(className);
>     this.set('classNames', classNames);
>     return className;
>   },
>
>   removeClassName: function(className) {
>     if (!this.hasClassName(className)) return;
>     var classNames = this._classNames || this.get('classNames');
>     classNames = this._classNames = classNames.without(className);
>     this.set('classNames', classNames);
>     return className;
>   },

(Whatever that is supposed to be.)

>
>   ...
>
> It also consistently uses instanceof, e.g.
>
>   ...
>   T_ARRAY='array';
>   ...
>
>   typeOf: function(item) {
>     if (item === undefined) return T_UNDEFINED;
>     if (item === null) return T_NULL;
>     var ret = typeof(item);
>     if (ret == "object") {
>       if (item instanceof Array) {
>         ret = T_ARRAY;
>       } else if(item instanceof Function) {
>         ret = (item.isClass)? T_CLASS : T_FUNCTION;
>       } else if (item instanceof SC.Error) {
>         ret = T_ERROR;
>       } else if (item.isObject === true) {
>         ret = T_OBJECT;
>       } else ret = T_HASH;
>     } else if (ret === T_FUNCTION)
>         ret = (item.isClass)? T_CLASS : T_FUNCTION;
>     return ret;
>   },

This looks more familiar. I reviewed part of this junk a month or two
ago. The other stuff you dug up is even more outrageous. I didn't
get very far into it at the time as it just looked lost. The
"flagship" demo app used document.location and had one of those
document.write calls with extra concatenation(s). Flags don't get
much redder than that. But this stuff transcends all of that and sets
all sorts of new precedents for bad JS. So if these developers can't
write JS, how are they to generate Web applications, which will
inevitably use JS?

>
> which as far as I know is not safe across frames.  Its typeOf function

It isn't.

> is used in an isArray function ($type is an alias for the above
> function):
>
>   isArray:function(obj) {
>     return ($type(obj)===T_ARRAY) || (obj && obj.objectAt);
>   },
>
> At least the second part of the test looks for a function that gets
> added to Array.prototype, but again, not safe across frames.

I don't know what they use this for, but hopefully its deficiencies
are known and documented. It does look pretty stupid to me.

>
> I would love to see some serious comment on the code, it seems pretty
> dodgy in place to my inexpert eyes.

It's beyond belief.

>
> > To abstract the browser or not? I think that is a main question over
> > the next three years.
>
> The concept of abstracting the browser using code that is dependent on
> browser detection is something of an oxymoron.

Yes and I can think of other words that end (and start) with moron
that apply to the cited project.

>
> An early example of a SproutCore based web application is Apple's
> MobileMe site[1] - pages weigh in at a hefty 1.5 MB or more on average

And there you have it.

> - try visiting on iPhone and entry is refused, it tells you to use the
> native iPhone apps!  On top of SproutCore and Prototype, it also has

So much for writing once.

> 530KB of other script.  What was jQuery's claim? Do more, write less?
> Seems not to be true for all javascript frameworks and libraries.

Or theirs. And I really think they mean type less.

>
> If Cappuccino continues down that path, it is an absolute no-go for
> mobile devices until carrier speeds are at least equivalent to ADSL2
> and users have at least 10GB per month of downloads.

No question. Same for dial-up users.

>
> > I keep reading things like "JavaScript is the assembly language of
> > 2009."
>
> > Eventually C won and Assembly lost.
>
> I think a better analogy is that ANSI C lost to IDEs like Borland and
> Visual Studio (though I'm not sure things will go the way of
> Cappuccino-like environments either).

So this thing has an IDE? Somebody went to a lot of trouble for
nothing.

>
> 1. I must say the MobileMe site *looks* great, but that has nothing to
> do with the technical competence of the underlying code.

It is mostly to do with what you use to look at it. Apparently it
didn't look so great on the iPhone. What desktop browsers and
versions do they claim to support?

Jorge

unread,
Feb 10, 2009, 5:15:00 AM2/10/09
to
On Feb 10, 10:20 am, David Mark <dmark.cins...@gmail.com> wrote:
> One thing is for sure
> with the underlying language inescapably Javascript and browsers as
> the targeted environment, whatever generates (or writes) the code will
> decrease in proficiency as abstraction is added, as will the
> efficiency of the application.  Of course, the size goes up too.

The browser and its JavaScript engine are already running on top of a
number of layers for that very same reason: abstraction. If you were
given a naked PC, one without an OS nor a rich API of OS-provided
services and tools and libraries, it would take ages to develop
anything, everytime. Both abstraction and code reuse are a must in
order to be able to move forward. JS libraries help with these. You
might want to keep looking at them short-sightedly through a
magnifying glass (or is it a microscope ?) and telling us again and
again things like "look at this line of code: blah blah", but then
you're missing the big picture.

--
Jorge.

David Mark

unread,
Feb 10, 2009, 5:31:50 AM2/10/09
to
On Feb 10, 5:15 am, Jorge <jo...@jorgechamorro.com> wrote:
> On Feb 10, 10:20 am, David Mark <dmark.cins...@gmail.com> wrote:
>
> > One thing is for sure
> > with the underlying language inescapably Javascript and browsers as
> > the targeted environment, whatever generates (or writes) the code will
> > decrease in proficiency as abstraction is added, as will the
> > efficiency of the application.  Of course, the size goes up too.
>
> The browser and its JavaScript engine are already running on top of a
> number of layers for that very same reason: abstraction. If you were

Of course they are.

> given a naked PC, one without an OS nor a rich API of OS-provided
> services and tools and libraries, it would take ages to develop
> anything, everytime. Both abstraction and code reuse are a must in
> order to be able to move forward. JS libraries help with these.

They might help if they were any good. jQuery is a case in point.

You
> might want to keep looking at them short-sightedly through a

Can you enumerate this "them?" Certainly we can rule out Prototype at
this time, we also know about MooTools and jQuery. I don't look at
those short-sightedly. I see everything they do. To a lesser extent,
I've looked at YUI and didn't like ma lot of what I saw. I don't have
the time or inclination to look at it at any further. Suffice to say,
I'd be very hesitant to introduce that to anything on the public
Internet. So which are you defending as useful and for what?

> magnifying glass (or is it a microscope ?) and telling us again and
> again things like "look at this line of code: blah blah", but then

Not sure what else you could look at to judge the quality of code.
Comments I suppose (or the lack thereof.)

> you're missing the big picture.

The big picture being that a collection of general-purpose Javascript
could possibly aid in the development of Websites and Web
applications? No, I don't think I'm missing that.

Jorge

unread,
Feb 10, 2009, 6:41:31 AM2/10/09
to

Then instead of focusing your arguments on the low-level
implementation details, you ought to step back a little bit, and argue
against their APIs, their programming models, their concepts. Because
their source code keeps evolving and eventually you'll have nothing to
argue.

Arguments like "JQuery's 'chainability' isn't a nice thing because...
(whatever)" carry much more weight than that of "jquery.js line 1327
is poorly coded, see ?".

--
Jorge.

Peter Michaux

unread,
Feb 10, 2009, 10:45:36 AM2/10/09
to

With Cappuccino you write in a different language: Objective-J. It
just so happens that different language is very close to JavaScript.


> > The fact that they abstract JavaScript and ship their compiler and
> > runtime as part of the code is a compelling development cycle (no
> > compile step before sending code to the browser like GWT).
>
> I don't like what I have heard about that.

You don't like what about what?

> > We know the browser is very capable at rendering an application. Some
> > programmers are not happy about how they have to develop for the
> > browser. They think there are better languages and development models.
> > By abstracting the browser completely, developers can program without
> > thinking about the browser as we know it. They can create a completely
> > different API, use a different language, etc.
>
> I like creating API's certainly and find that one evolves on virtually
> every project and abstraction of the browser is a common theme of
> most. I'd say the level of abstraction needed on any given project is
> related to the need to add to or modify the application in the future
> (and who is to be expected to maintain it.) One thing is for sure
> with the underlying language inescapably Javascript and browsers as
> the targeted environment, whatever generates (or writes) the code will
> decrease in proficiency as abstraction is added, as will the
> efficiency of the application. Of course, the size goes up too.

These sorts of arguments were arguments for programming in Assembly.
But C won.


> Using another language like Java isn't of interest to me and I see
> that as a separate issue (e.g. you could have a Java-based API that is
> just a thin wrapper for browser interfaces.)
>
> As for GWT, I can't imagine that Google is capable of generating
> competent scripts from Java when they can't write it in the first
> place. Never looked at it, so I could be wrong. Probably never will
> bother as I don't like Java.

That isn't an argument against abstracting the browser.


> > > > I keep reading things like "JavaScript is the assembly language of
> > > > 2009."
>
> > > That's obviously nonsense. Hard to believe anything you read on the
> > > Web these days. Certainly not *that*. Javascript is a simple, but
> > > powerful scripting language. It bears no relation whatsoever to
> > > assembly language.
>
> > It is an analogy about how they write in one language and compile down
> > to JavaScript/assembly. They think you wouldn't write source code in
> > either.
>
> Somebody still has to write assembly, but they are clearly not in the
> majority. Seems everybody is writing Javascript (or pretending to.)

Everyone was writing directly in Assembly a long time ago.


> > > > Eventually C won and Assembly lost.
>
> > By writing "Eventually C won and Assembly lost" I was asking "Will
> > abstracting the browser win and so will writing in HTML/CSS/Assembly
> > disappear?". First people wrote in binary, then in hex, then in
> > assembly, then in C, then in Java. At each step, the previous step
> > stayed around but not used by application programmers
>
> Will some sort of new language emerge for Web applications? I suppose
> it is possible. I'm sure we both agree it isn't jQuery.

Logically it cannot be jQuery as jQuery is not a language. It is just
a library. I suppose something like jQuery could be used as a library
when abstracting the browser.

Peter

Message has been deleted

Gregor Kofler

unread,
Feb 10, 2009, 1:04:27 PM2/10/09
to
issya meinte:

[fullquote snipped - learn proper quoting]

> It sounds to me like someone is jealous. Why would you waste so much
> of your time just to put someone else down? Obviously jQuery works for
> plenty of people just fine. *Looks over at the White House or
> Microsoft*.

So what? Do you *really* cite a page with 77 errors and a complete lack
of flexibility and scalability as reference? (I'm talking about
http://www.microsoft.com , in case you didn't notice that before.)

And according to your logic, IE must be the best browser available,
since the majority uses it.

> If it allows people that do not know or have the time to
> learn javascript then good for it.

> If you can do better then you
> should spend your time doing it instead of putting down others. If you
> already are doing something better then I feel bad for your marketing
> team.

Well, he has his library up and running. You can download it and use it.
What sort of "marketing" are you babbling about?

Gregor

Faisal Vali

unread,
Feb 10, 2009, 1:20:05 PM2/10/09
to
On Feb 10, 3:57 am, Karl Tikjøb Krukow <karl.kru...@gmail.com> wrote:
> Faisal Vali wrote:
> > I also follow some of the other programming newsgroups/blogs: std.c++,
> > c++.moderated, boost, es-discuss, lang.ruby, lambda-the-ultimate,
> > comp.programming.threads, vc.atl - I am generally humbled &
> > enlightened by some of the advice, insight and discussion I see on
> > some of those other groups (as I sometimes am on this group too). Yet
> > the *sense* I get is that the frequency and level of hubris,
> > abrasiveness & dismissiveness that litters the posts here (by some of
> > the truly competent wizards in this group) substantially outnumbers
> > that in the other groups mentioned above.
>
> > I have always found that interesting.
>
<snip>

Well let me expand upon why I found this so interesting.

Those JS topics that I have had to conceptually wrestle with the most
(*), I learned more about from following es-discuss (the javascript
analogue of comp.std.c++ - if the gurus here are js wizards, those
people are js gods - the creators and implementers of the language).
Yet the tone there is rarely hostile or hubristic.

Now this group, I find, tends to deal more with javascript/DOM than
specific javascript language/standard issues.

Since client-side web development is admittedly complicated and
frustrating - because of the nature of the ever-changing landscape/
domain and because of the issues with the standards and their
implementations in various browsers with regards to javascript, DOM,
HTML and CSS - the advice rendered by the knowledgeable on this group
can be very valuable and I could imagine a situation in which it could
save a developer hours if not days/weeks of work. But the advice and
insight offered here is rarely any more a triumph of sheer
intelligence and reason than what I see on some of the other groups.
Yet it comes with *far* more attitude. (And since hubris and attitude
are rarely conducive to a healthy intellectual atmosphere and
discourse - I would not justify them even if accompanied with the most
dazzling brilliance)

> I think everyone notices it. Certainly all of the clj 'regulars' seem
> extremely skilled, but there are a few of them that stand out as

> unfriendly or even angry. <snip>


>
> There are both positive and negative effects. On the negative side, I
> think that it may make some newcomers disregard the technical contents
> because the post is dismissed as a troll or a personal attack; in effect
> the technical content is shadowed by the strong language. On the
> positive side, those who do stick around tend to make an extra effort to
> be precise in their questions, language and follow netiquette.
>

I see more negatives than you - and I think you can easily get the
positives by less-draconian measures (the basic underpinnings of a
democratic vs an autocratic world-view)

> Regarding theories 'why'? Here are a few (although I personally haven't
> settled on any):
>
> * Intentionally trying to scare off certain types of people

what types - the uninitiated?

>
> * Just a few angry (old?) men

I can buy this - but not as a good reason.

>
> * Reasoning that strong language will make a stronger impression

And what evidence is used to support this reasoning?

>
> * Being genuinely frustrated with seeing what is considered incompetence
> over and over again

This is a tough one to rise above. I have the most sympathy for this
reason - but I have trouble using it to justify the scathing ad-
hominem attacks and the flat-out/reactive rudeness.

>
> But in the end, unless you are simply curious or for some reason care
> about making this group more friendly to newcomers, you shouldn't really
> care. It is still the best place to get technical advice.

I give it some attention because I find value and importance in civil
discourse, since I often depend on it to learn (which reminds me - I
have a question about cookies I will be posting soon ;)

Yes - it is still the best place - but there is no good reason it
shouldn't be a gentler place.

peace,
Faisal Vali
Radiation Oncology
Loyola


(*) JS language issues
1) functions and their execution contexts
- the binding of outer variables & 'this'
- the arguments object
- hoisting (function scoped variables) of variables and issues
with function statements
- why functions won't play nice with macro systems
2) the nuances of prototype chains (construction, reading/writing
inherited properties)
3) the meta-descriptors of JS objects
4) the inexact/incomplete/unusual language of the ECMA 3.0 standard
(to be improved in 3.1)

Peter Michaux

unread,
Feb 10, 2009, 2:15:28 PM2/10/09
to
On Feb 10, 10:20 am, Faisal Vali <fais...@gmail.com> wrote:
> On Feb 10, 3:57 am, Karl Tikjøb Krukow <karl.kru...@gmail.com> wrote:> Faisal Vali

> > But in the end, unless you are simply curious or for some reason care


> > about making this group more friendly to newcomers, you shouldn't really
> > care. It is still the best place to get technical advice.
>
> I give it some attention because I find value and importance in civil
> discourse, since I often depend on it to learn (which reminds me - I
> have a question about cookies I will be posting soon ;)
>
> Yes - it is still the best place - but there is no good reason it
> shouldn't be a gentler place.

I agree. I think part of the reason this group's post count has
decreased is because of the hostile posts. Just rude, immature
behavior.

http://groups.google.com/group/comp.lang.javascript/about

Not even cracking 2000 posts/month for "the world's most popular
programming language."

Perhaps some regulars here could benefit from the following

http://www.rocheusa.com/products/valium/

Lambda The Ultimate is the contrast to this group and the moderators
there have maintained a very respectful tone.

Peter

Gregor Kofler

unread,
Feb 10, 2009, 2:57:51 PM2/10/09
to
Peter Michaux meinte:

> I agree. I think part of the reason this group's post count has
> decreased is because of the hostile posts. Just rude, immature
> behavior.

http://groups.google.com/group/comp.lang.javascript/about
(04-01: 3088, 09-01: 1383, down to 45%)


I thoroughly doubt, that this is the "real" reason, since clj is
relatively stable - at least when compared to other groups(I've also
taken some German NGs I read):

http://groups.google.com/group/de.comp.lang.javascript/about
(04-01: 926, 09-01: 130, down to 14%)

http://groups.google.com/group/de.comp.lang.php.misc/about
(04-01: 2953, 09-01: 474, 16%)

http://groups.google.com/group/comp.infosystems.www.authoring.stylesheets/about
(04-01: 1435, 09-01: 313, 22%)

http://groups.google.com/group/comp.infosystems.www.authoring.html/about
(04-01: 1292, 09-01: 361, 28%)

even
http://groups.google.com/group/de.rec.fotografie/about
(04-01: 8218, 09-01: 3211, 39%)


In fact clj is doing (considerably) better than a lot of other NGs out
there. And I can't confirm, that this is due to some extra-outspoken
style in those groups.

Gregor

Matt Kruse

unread,
Feb 10, 2009, 3:12:30 PM2/10/09
to
On Feb 10, 1:15 pm, Peter Michaux <petermich...@gmail.com> wrote:
> I agree. I think part of the reason this group's post count has
> decreased is because of the hostile posts.

There are a few vocal people who regularly post in a way that most
would find hostile and childish. I think this is true of any area
where there are people who view their knowledge as particularly
specialized and valuable, and they get defensive and insulting when
"average" people are struggling to learn all the things that they also
once didn't know. It's elitism, pure and simple. And annoying.

But I suspect that the number of posts here is inversely related to
the number of posts in the support groups for jquery, prototype, yui,
etc. Rather than struggling with javascript/dom basics and posting
here, people are struggling with the syntax and functionality of their
library of choice and posting there. It's a shift that mirrors trends
most of us are probably seeing. No big surprise.

Matt Kruse

David Mark

unread,
Feb 10, 2009, 4:36:16 PM2/10/09
to
On Feb 10, 6:41 am, Jorge <jo...@jorgechamorro.com> wrote:
> On Feb 10, 11:31 am, David Mark <dmark.cins...@gmail.com> wrote:
>
> > On Feb 10, 5:15 am, Jorge <jo...@jorgechamorro.com> wrote:
>
> > > you're missing the big picture.
>
> > The big picture being that a collection of general-purpose Javascript
> > could possibly aid in the development of Websites and Web
> > applications?  No, I don't think I'm missing that.
>
> Then instead of focusing your arguments on the low-level
> implementation details, you ought to step back a little bit, and argue
> against their APIs, their programming models, their concepts.

You haven't been paying attention for the last year or so.

And as you don't seem to understand, these projects market themselves
as "supported by an active user base" (or variations of that theme.)
As others have pointed out repeatedly, finding loads of rookie
mistakes at a glance is a good indication that the *most proficient*
contributor is in over his head. Given that it is three years later
for jQuery, it is obvious that there is nothing to it but sizzle (no
steak.)

Because
> their source code keeps evolving and eventually you'll have nothing to
> argue.

So one shouldn't bother to review a movie on release because future
sequels might be much better. And again, it has been three years.

>
> Arguments like "JQuery's 'chainability' isn't a nice thing because...

You haven't even read this thread.

[snip]

David Mark

unread,
Feb 10, 2009, 4:38:44 PM2/10/09
to

But the users didn't have to download the software in question or run
it across platforms with wildly varying capabilities. Best of luck to
whomever is going to write the first "compiler" for browser scripting.

[snip]

David Mark

unread,
Feb 10, 2009, 4:55:22 PM2/10/09
to
On Feb 10, 3:12 pm, Matt Kruse <m...@thekrusefamily.com> wrote:
> On Feb 10, 1:15 pm, Peter Michaux <petermich...@gmail.com> wrote:
>
> > I agree. I think part of the reason this group's post count has
> > decreased is because of the hostile posts.
>
> There are a few vocal people who regularly post in a way that most
> would find hostile and childish. I think this is true of any area
> where there are people who view their knowledge as particularly
> specialized and valuable, and they get defensive and insulting when
> "average" people are struggling to learn all the things that they also
> once didn't know. It's elitism, pure and simple. And annoying.

Like when some kid is trying to cheat on his homework and told to read
the FAQ? As I told one such poster recently, elitism has nothing to
do with it. Ask a good question, which demonstrates some ability to
comprehend the answer and perhaps somebody here will donate a bit of
time to answer it. Otherwise, you really have nothing to complain
about unless you run into one of the more abrasive members on a bad
day (and I don't think that RTFM or "get a clue" are useful responses
either.) Certainly you can't complain about getting a link to the
FAQ, which is my typical response to bad questions.

>
> But I suspect that the number of posts here is inversely related to
> the number of posts in the support groups for jquery, prototype, yui,

Nope. And jQuery's group gets more posts because they are constantly
going around in circles on the simplest issues (like browser
detection.)

[snip]

David Mark

unread,
Feb 10, 2009, 5:30:23 PM2/10/09
to
On Feb 10, 1:20 pm, Faisal Vali <fais...@gmail.com> wrote:
> On Feb 10, 3:57 am, Karl Tikjøb Krukow <karl.kru...@gmail.com> wrote:> Faisal Vali wrote:
> > > I also follow some of the other programming newsgroups/blogs: std.c++,
> > > c++.moderated, boost, es-discuss, lang.ruby, lambda-the-ultimate,
> > > comp.programming.threads, vc.atl - I am generally humbled &
> > > enlightened by some of the advice, insight and discussion I see on
> > > some of those other groups (as I sometimes am on this group too).  Yet
> > > the *sense* I get is that the frequency and level of hubris,
> > > abrasiveness & dismissiveness that litters the posts here (by some of
> > > the truly competent wizards in this group) substantially outnumbers
> > > that in the other groups mentioned above.
>
> > > I have always found that interesting.
>
> <snip>
>
> Well let me expand upon why I found this so interesting.
>
> Those JS topics that I have had to conceptually wrestle with the most
> (*), I learned more about from following es-discuss (the javascript
> analogue of comp.std.c++ - if the gurus here are js wizards, those
> people are js gods - the creators and implementers of the language).
> Yet the tone there is rarely hostile or hubristic.

Never been there, but I imagine they don't have to deal with the same
silly non-arguments day after day (e.g. jQuery is great because so
many people like it.)

>
> Now this group, I find, tends to deal more with javascript/DOM than
> specific javascript language/standard issues.

Yes, this group focuses on browser scripting as that is currently the
primary use of Javascript.

>
> Since client-side web development is admittedly complicated and
> frustrating - because of the nature of the ever-changing landscape/

The ever-changing landscape argument is past its prime. It's not that
hard to write cross-browser code these days.

> domain and because of the issues with the standards and their
> implementations in various browsers with regards to javascript, DOM,
> HTML and CSS - the advice rendered by the knowledgeable on this group
> can be very valuable and I could imagine a situation in which it could
> save a developer hours if not days/weeks of work.  But the advice and
> insight offered here is rarely any more a triumph of sheer
> intelligence and reason than what I see on some of the other groups.

Plenty of what is posted here is rubbish, just like any other group.
I don't understand your point.

> Yet it comes with *far* more attitude.  (And since hubris and attitude
> are rarely conducive to a healthy intellectual atmosphere and
> discourse - I would not justify them even if accompanied with the most
> dazzling brilliance)

[snip]

>
> I see more negatives than you - and I think you can easily get the
> positives by less-draconian measures (the basic underpinnings of a
> democratic vs an autocratic world-view)

Do you see more negatives than me? It seems the point is that you
view some percentage of posts here as negative in tone.

You can't get much more democratic than a newsgroup. Feel free to
prop of the positivity.

>
> > Regarding theories 'why'? Here are a few (although I personally haven't
> > settled on any):
>
> > * Intentionally trying to scare off certain types of people
>
> what types - the uninitiated?

Typically those who are trying to get a free lunch, refusing to read
examples in the FAQ, repeating questions that don't get answered,
etc. I don't know how you "scare" anyone from a newsgroup though.

>
>
>
> > * Just a few angry (old?) men
>
> I can buy this - but not as a good reason.

What are you referring to? If it is this thread, then you don't know
your history.

>
>
>
> > * Reasoning that strong language will make a stronger impression
>
> And what evidence is used to support this reasoning?
>
>
>
> > * Being genuinely frustrated with seeing what is considered incompetence
> > over and over again
>
> This is a tough one to rise above.  I have the most sympathy for this
> reason - but I have trouble using it to justify the scathing ad-
> hominem attacks and the flat-out/reactive rudeness.

Again, you seem to be new here. Has it occurred to you that John
Resig brought such scathing "attacks" on himself with his own
rudeness, ignorance and complete unwillingness to learn anything. And
yes, it is frustrating to see so many developers following him off the
proverbial cliff (even more so when trying to use one of their sites.)

>
>
>
> > But in the end, unless you are simply curious or for some reason care
> > about making this group more friendly to newcomers, you shouldn't really
> > care. It is still the best place to get technical advice.
>
> I give it some attention because I find value and importance in civil
> discourse, since I often depend on it to learn (which reminds me - I
> have a question about cookies I will be posting  soon ;)

RTFM (just kidding.)

>
> Yes - it is still the best place - but there is no good reason it
> shouldn't be a gentler place.

This isn't an encounter group.

[snip]

David Mark

unread,
Feb 10, 2009, 5:52:03 PM2/10/09
to
On Feb 9, 11:10 am, Faisal Vali <fais...@gmail.com> wrote:
> David,

Yes?

>       As usual, you make some technically valid points - and while I
> generally appreciate and learn from the technical content of your
> posts - and while I do feel that the javascript community is better
> because of you (and Peter and Richard, just to name a few) - better
> because you challenge the developers to rise to a more rigorous
> standard - the underlying tone of your posts is often strikingly
> draconian* - and the ad-hominem attacks are hurtful, unethical and
> rarely necessary.

Are you referring to my posts in particular? There are over 2000 of
them. How many have you read?

[snip]

> Regardless, thanks for all your valuable technical contributions &
> criticisms and foropensourcingMy-library.

My Library is not open source (I am the only who can change the
code.) It isn't freeware either if that is what you meant. It is
free for non-commercial projects and those that I consult for. All
others are subject to licensing/support fees that are determined on a
case-by-case basis.

>
> peace,
> Faisal Vali
> Radiation Oncology
> Loyola

If "Loyola" is a non-commercial venture, then you can use the library
for free (see the blurb at the top of the script.)

[snip]

Peter Michaux

unread,
Feb 10, 2009, 6:09:01 PM2/10/09
to

autoconf

UNIX is not (certainly was not) completely standardized.

> Best of luck to
> whomever is going to write the first "compiler" for browser scripting.

It has already been done with GWT and Cappuccino.

Peter

Faisal Vali

unread,
Feb 10, 2009, 6:12:24 PM2/10/09
to
On Feb 10, 4:52 pm, David Mark <dmark.cins...@gmail.com> wrote:
> On Feb 9, 11:10 am, Faisal Vali <fais...@gmail.com> wrote:
>
> > David,
>
> Yes?

see below.

>
> >       As usual, you make some technically valid points - and while I
> > generally appreciate and learn from the technical content of your
> > posts - and while I do feel that the javascript community is better
> > because of you (and Peter and Richard, just to name a few) - better
> > because you challenge the developers to rise to a more rigorous
> > standard - the underlying tone of your posts is often strikingly
> > draconian* - and the ad-hominem attacks are hurtful, unethical and
> > rarely necessary.
>
> Are you referring to my posts in particular?  There are over 2000 of
> them.  How many have you read?

I'd say enough of a representative sample.


>
> [snip]
>
> > Regardless, thanks for all your valuable technical contributions &
> > criticisms and foropensourcingMy-library.
>
> My Library is not open source (I am the only who can change the
> code.)  It isn't freeware either if that is what you meant.  It is
> free for non-commercial projects and those that I consult for.  All
> others are subject to licensing/support fees that are determined on a
> case-by-case basis.
>

I don't use your library.

I have looked at its code though - and i appreciate it being easy to
read.

Thomas 'PointedEars' Lahn

unread,
Feb 10, 2009, 6:31:21 PM2/10/09
to
Faisal Vali wrote:
> [...]
> I just want to make a general comment about this group, prefaced with
> some slight background.
>
> I am a programmer-hobbyist - not a professional programmer - I like
> javascript a lot and while it is far from perfect (albeit getting much
> closer to perfection with ES 3.1), it is a very fun language to code
> in (leaving the DOMs & BOMs aside).

>
> I also follow some of the other programming newsgroups/blogs: std.c++,
> c++.moderated, boost, es-discuss, lang.ruby, lambda-the-ultimate,
> comp.programming.threads, vc.atl -

Note that of those only comp.std.c++, comp.lang.c++.moderated,
comp.lang.ruby, and comp.programming.threads (if you mean those) are real
Usenet newsgroups. Since Usenet created this subculture and has much longer
and different a history than Google Groups, it has created its own rules of
conduct. Once you get yourself informed about that and accepted it as
given, life will become easier for you.

> I am generally humbled &
> enlightened by some of the advice, insight and discussion I see on
> some of those other groups (as I sometimes am on this group too). Yet
> the *sense* I get is that the frequency and level of hubris,
> abrasiveness & dismissiveness that litters the posts here (by some of
> the truly competent wizards in this group) substantially outnumbers
> that in the other groups mentioned above.
>
> I have always found that interesting.
>

> Has anyone else ever noticed this? (Anyone have any theories why?)
> Or is this just a sampling error on my part?

Most certainly. For a start, I have never seen you or Karl participating in
a discussion here before. I have never seen you contributing anything at
all here. Lurking like that, and complaining about what is perceived as
wrong, is the easiest thing in the world; posting in a correct,
understandable, and ultimately helpful way, on the other hand, is really
hard to do. To use a metaphor, you never know how hard fighting is until
you stepped into the ring.

So nothing against courtesy, as it makes thing easier, but this is a
technical newsgroup. Technical facts are hard ones (you mustn't do this,
you can't do that, you really shouldn't do that, do this instead, or that
instead etc.), and experience shows that they need to be told in a hard way,
else too much time is wasted with writing tutorials here that are readily
available elsewhere. We (hackers) like to solve new, interesting,
thought-provoking problems, and to deal with questions in that sense. If
you can't deal with that and think you'll be happier elsewhere, please
leave, silently. You won't be missed, but you also won't be looked at
strangely if you choose to return later (unless you really screwed up the
last time). Since you can not be convinced to stay without adding more
noise, if that, that's better for everyone.

Nuff said.

<http://www.catb.org/~esr/faqs/smart-questions.html>


PointedEars

Peter Michaux

unread,
Feb 10, 2009, 6:39:28 PM2/10/09
to

I think it would be fair to say this group is going around in circles
at times.

Peter

David Mark

unread,
Feb 10, 2009, 6:42:06 PM2/10/09
to
On Feb 10, 6:09 pm, Peter Michaux <petermich...@gmail.com> wrote:
> On Feb 10, 1:38 pm, David Mark <dmark.cins...@gmail.com> wrote:
>
> > On Feb 10, 10:45 am, Peter Michaux <petermich...@gmail.com> wrote:
> > > These sorts of arguments were arguments for programming in Assembly.
> > > But C won.
>
> > But the users didn't have to download the software in question or run
> > it across platforms with wildly varying capabilities.
>
> autoconf
>
> UNIX is not (certainly was not) completely standardized.

It isn't really the same situation as with browsers and Javascript.

>
> > Best of luck to
> > whomever is going to write the first "compiler" for browser scripting.
>
> It has already been done with GWT and Cappuccino.

I should have qualified that. How about the first "compiler" than can
write competent Web applications.

David Mark

unread,
Feb 10, 2009, 6:47:46 PM2/10/09
to
On Feb 10, 6:12 pm, Faisal Vali <fais...@gmail.com> wrote:
> On Feb 10, 4:52 pm, David Mark <dmark.cins...@gmail.com> wrote:
>
> > On Feb 9, 11:10 am, Faisal Vali <fais...@gmail.com> wrote:
>
> > > David,
>
> > Yes?
>
> see below.
>
>
>
> > >       As usual, you make some technically valid points - and while I
> > > generally appreciate and learn from the technical content of your
> > > posts - and while I do feel that the javascript community is better
> > > because of you (and Peter and Richard, just to name a few) - better
> > > because you challenge the developers to rise to a more rigorous
> > > standard - the underlying tone of your posts is often strikingly
> > > draconian* - and the ad-hominem attacks are hurtful, unethical and
> > > rarely necessary.
>
> > Are you referring to my posts in particular?  There are over 2000 of
> > them.  How many have you read?
>
> I'd say enough of a representative sample.

I'd say look again.

>
>
>
> > [snip]
>
> > > Regardless, thanks for all your valuable technical contributions &
> > > criticisms and foropensourcingMy-library.
>
> > My Library is not open source (I am the only who can change the
> > code.)  It isn't freeware either if that is what you meant.  It is
> > free for non-commercial projects and those that I consult for.  All
> > others are subject to licensing/support fees that are determined on a
> > case-by-case basis.
>
> I don't use your library.
>
> I have looked at its code though - and i appreciate it being easy to
> read.

Apparently, so did the jQuery developers. You do realize that the
biggest selling point of this new jQuery is due to the "attacks" on
jQuery from this group. My Library was posted in some part due to the
endless non-arguments from Resig and the like concerning the lack of
library production on the part of critics. He was going to hide
behind that line forever.

You're welcome.

Richard Cornford

unread,
Feb 10, 2009, 6:50:10 PM2/10/09
to
On Feb 9, 6:57 pm, Adam Fisk wrote:
> Wow fellas. Here's a crazy idea: spend less time berating
> Resig to make yourselves feel better about yourselves (look
> at how smart I am, blah blah blah) and more time submitting
> patches to jquery.

That rather assumes that JQuery can be patched into some sort of
acceptable state. Historically (and currently) many of JQuery's problems
stem form its attempting to do things in ways that should never have
been attempted in the first place, and require a lot of dubious hacks
just to get them into some sort of 'working' state in the few browsers
JQuery supports. But that is manifest in the public API (and usage
style) as much as it is evident in its internal code.

Once any code/library/framework has a large user (in the sense of
programmers, not end-users) base changing its public API becomes
extremely undesirable as it loads those users with a maintenance/QA
burden as they are forced to update their code to take account of them.
You end up going a long way towards negating one of the major 'benefits'
put forward for using the thing in the first place.

A patch (or patches) that attempted to turn JQuery into the something
that an experienced/knowledgeable javascript programmer/browser script
designer may have created would very likely be rejected on the grounds
that it would break back-compatibility and so effectively pull the rug
out from under the existing users. There is a limited appeal (and indeed
purpose) in submitting patches that either will certainly be rejected or
knowingly disregard the experience and knowledge of their authors.

> How many patches could you have submitted in the time it
> took you to make your post, Mr. Mark?

Probably more than would have been accepted (or even understood), but in
terms of outcomes commenting here will probably have the more positive
effect.

Over the years I have critically commented on particular aspects of
Prototype.js's code on a number of occasions. And each time the subject
of that criticism was absent from the next versions of Prototype.js to
be released. That could be pure coincidence, or it could be direct
feedback. In either case it validates the suggestion that the authors
had something to learn.

> The best developers know enough to realize how much they don't
> know,

Yes, and it is certainly a recurrent theme that people (particularly
developers experienced in other programming languages) who come to
browser scripting initially find it annoying/frustrating, then get past
the point where they are getting things to 'work' in more than one or
two browsers, and so then think that they have the subject cracked; that
they know it all (or at last enough to tackle all the problems that are
to come). There is an optimistic overconfidence which, if it is not
smashed (and it usually takes smashing as overconfidence that you are
doing the right thing is generally not influenced by kind suggestions
that you are not), becomes a significant barrier to moving on and
acquiring the sort of depth of understanding that is possible.

There are no shortage of obvious manifestations of someone being at that
first hurdle in learning to script web browsers. The first techniques
they learn to handle browser differences are reiterated such that where
code branched to deal with two browsers grows a third branch for a third
and fourth for a fourth, and so on. The most obvious (form examining
books, the internet and common scripts) branching criteria, UA string
based browser sniffing, becomes the driver of that branching, and has to
be defended as the only sensible way of doing it (if for no better
reason than that everyone does it). The possibilities offered by the
language get over-employed (and inappropriately employed) because to
start with they seem to work reliably, at least while coping with no
more two or three browsers is looking like an achievement.

The people who get beyond this point look back at their creations at the
time with shame; seeing how bad that code was, and how harmful. It
becomes a reminder of how much it is possible not to know when you
thought you knew everything.

On the other hand there are people who write books expounding the
techniques they have been employing for others to copy, and inevitably
including/propagating all the misconceptions, bad practices and
technical inaccuracies that accompany being little more than a novice.
That is probably the best demonstration possible of not knowing enough
to realize how much they don't know.

> quickly followed by respectful discourse.

You might hope so, but when John Resig responded to valid criticism of
JQuery with:-

<URL:
http://groups.google.com/group/comp.lang.javascript/msg/56d22b30b168fbb5
>
"Yawwwwnnnnn.... this is, quite possibly, the most inane set of
ramblings set up by someone who has obviously never created a JavaScript
library of any kind, nor has used JavaScript code in any sort of
production environment."

- 'patronising' would be a more appropriate label than "respectful", and
discourse works better without the dismissive attitude.

(With the criticisms dismissed at the time being pretty much proved
valid by the changes that JQurey has undergone in the intervening
period.)

> The purpose of this thread
> is jealously cloaked in progress.

There may be something in this that is personal, but it is certainly not
jealousy. What, after all, is there to be jealous of?

Richard.

David Mark

unread,
Feb 10, 2009, 6:51:08 PM2/10/09
to

No doubt about it.

Richard Cornford

unread,
Feb 10, 2009, 7:46:47 PM2/10/09
to
Thomas 'PointedEars' Lahn wrote:
<snip>
> .. , and experience shows that they need to be told in a hard way,

> else too much time is wasted with writing tutorials here that are
> readily available elsewhere.

I am often reminded of Lasse Reichstein Nielsen's suggestion that one of
the best ways of testing your own understanding of a subject is to try
to explain it to someone else such that they understand it. My own
experience suggests that (like so many other things) it takes about
three attempts at explaining javascript/browser scripting related
subjects in order to iron out all the wrinkles to produce a good,
concise (and hopefully accurate) explanation.

So I do see value and purpose in people posting 'tutorial' style
responses here. Even if you or I may not particularly want to go over
the same old ground there is always a chance that there is someone else
around who could do with the practice of putting their understanding
into word. And if there is possible value for someone in making the
response the questions that can elicit that response must also be of
value.

> We (hackers) like to solve new, interesting, thought-provoking
> problems, and to deal with questions in that sense.

<snip>

(I have never even considered describing myself as a "hacker", far too
pretentious for my tastes. But then "Guru" gets my back up as well.)

While thought-provoking problems are always welcome, it is difficult to
predict where they will come from. Often they will come out of the
discussions of the most mundane problems. And there is an entertainment
value in looking at the less thought provoking problems, much as there
is in doing a 'quick' crossword rather than (or as well as) a 'cryptic'
crossword.

Still, there is more to this group than thought provoking problems. Even
if many of the problems that people come to this group with are trivial
to identify and solve the sheer number of them means that long-term
participants in the group are familiar with a wide spectrum of web
development related issues. Far beyond what any individual (or small
group (such as a single development team) could expects to encounter in
isolation. Experience gained by proxy may still be useful experience;
forewarned is forearmed.

Richard.

Faisal Vali

unread,
Feb 10, 2009, 7:57:42 PM2/10/09
to
On Feb 10, 5:31 pm, Thomas 'PointedEars' Lahn <PointedE...@web.de>
wrote:
> Faisal Vali wrote:
<snip>

>
> Note that of those only comp.std.c++, comp.lang.c++.moderated,
> comp.lang.ruby, and comp.programming.threads (if you mean those) are real
> Usenet newsgroups. Since Usenet created this subculture and has much longer
> and different a history than Google Groups, it has created its own rules of
> conduct. Once you get yourself informed about that and accepted it as
> given, life will become easier for you.

I wonder what you would have done had you been around the subculture
that the third reich created -

>
> > I am generally humbled &
> > enlightened by some of the advice, insight and discussion I see on
> > some of those other groups (as I sometimes am on this group too). Yet
> > the *sense* I get is that the frequency and level of hubris,
> > abrasiveness & dismissiveness that litters the posts here (by some of
> > the truly competent wizards in this group) substantially outnumbers
> > that in the other groups mentioned above.
>
> > I have always found that interesting.
>
> > Has anyone else ever noticed this? (Anyone have any theories why?)
> > Or is this just a sampling error on my part?
>
> Most certainly. For a start, I have never seen you or Karl participating in
> a discussion here before. I have never seen you contributing anything at
> all here.

fair enough. I should do my part.

> Lurking like that,

Lurk?? Are you serious?? Heh - You didn't inspire the character of
John Malkovich in 'Burn after reading' did you?

> and complaining about what is perceived as
> wrong, is the easiest thing in the world;

No it's not. Which is why I appreciate David Mark's criticism of
JQuery.

> posting in a correct,
> understandable, and ultimately helpful way, on the other hand, is really
> hard to do.

Yes it is - this was never contested - but it's good to remind the
community of this.

> To use a metaphor, you never know how hard fighting is until
> you stepped into the ring.

You assume too much and then state some cliched garbage.

>
> So nothing against courtesy, as it makes thing easier, but this is a
> technical newsgroup. Technical facts are hard ones (you mustn't do this,
> you can't do that, you really shouldn't do that, do this instead, or that
> instead etc.), and experience shows that they need to be told in a hard way,
> else too much time is wasted with writing tutorials here that are readily
> available elsewhere.

I know you think that what you do is very very hard - what i am trying
to tell you is that there is much much harder stuff out there - and
people have much more civilized discourse about it.


> We (hackers) like to solve new, interesting,
> thought-provoking problems, and to deal with questions in that sense. If
> you can't deal with that and think you'll be happier elsewhere, please
> leave, silently.

huh?? What broken logic are you using to come to that conclusion?

> You won't be missed, but you also won't be looked at
> strangely if you choose to return later (unless you really screwed up the
> last time). Since you can not be convinced to stay without adding more
> noise, if that, that's better for everyone.
>

I recognize that you see yourself as the speaker of the group - your
self nominated position and the authority you feel that it bestows
upon you, means little to me.

I do appreciate your technical input though - and I have been
unambiguous about stating that.

> Nuff said.

No not nuff - too much.

David Mark

unread,
Feb 10, 2009, 8:03:20 PM2/10/09
to
On Feb 10, 6:50 pm, "Richard Cornford" <Rich...@litotes.demon.co.uk>
wrote:

[snip]

>
> <URL:http://groups.google.com/group/comp.lang.javascript/msg/56d22b30b168fbb5
>  >
> "Yawwwwnnnnn.... this is, quite possibly, the most inane set of
> ramblings set up by someone who has obviously never created a JavaScript
> library of any kind, nor has used JavaScript code in any sort of
> production environment."

LOL. I remember *that* one.

>
> - 'patronising' would be a more appropriate label than "respectful", and
> discourse works better without the dismissive attitude.
>
> (With the criticisms dismissed at the time being pretty much proved
> valid by the changes that JQurey has undergone in the intervening
> period.)

Yes, the Sloop John R changed course a bit in the last year. Still
the worst trip you'll ever be on.

David Mark

unread,
Feb 10, 2009, 8:12:46 PM2/10/09
to
On Feb 10, 7:57 pm, Faisal Vali <fais...@gmail.com> wrote:
> On Feb 10, 5:31 pm, Thomas 'PointedEars' Lahn <PointedE...@web.de>
> wrote:
>
> > Faisal Vali wrote:
> <snip>
>
> > Note that of those only comp.std.c++, comp.lang.c++.moderated,
> > comp.lang.ruby, and comp.programming.threads (if you mean those) are real
> > Usenet newsgroups.  Since Usenet created this subculture and has much longer
> > and different a history than Google Groups, it has created its own rules of
> > conduct.  Once you get yourself informed about that and accepted it as
> > given, life will become easier for you.
>
> I wonder what you would have done had you been around the subculture
> that the third reich created -

Absolutely disgusting. You lose, Godwin's law, etc.

>
>
>
>
>
> > > I am generally humbled &
> > > enlightened by some of the advice, insight and discussion I see on
> > > some of those other groups (as I sometimes am on this group too).  Yet
> > > the *sense* I get is that the frequency and level of hubris,
> > > abrasiveness & dismissiveness that litters the posts here (by some of
> > > the truly competent wizards in this group) substantially outnumbers
> > > that in the other groups mentioned above.
>
> > > I have always found that interesting.
>
> > > Has anyone else ever noticed this?  (Anyone have any theories why?)
> > > Or is this just a sampling error on my part?
>
> > Most certainly.  For a start, I have never seen you or Karl participating in
> > a discussion here before.  I have never seen you contributing anything at
> > all here.
>
> fair enough.  I should do my part.
>
> > Lurking like that,
>
> Lurk?? Are you serious?? Heh - You didn't inspire the character of
> John Malkovich in 'Burn after reading' did you?

Can you expound on that a bit for those of us who haven't seen that
movie?

>
> > and complaining about what is perceived as
> > wrong, is the easiest thing in the world;
>
> No it's not.  Which is why I appreciate David Mark's criticism of
> JQuery.

Thanks (I think.)

>
> > posting in a correct,
> > understandable, and ultimately helpful way, on the other hand, is really
> > hard to do.
>
> Yes it is - this was never contested - but it's good to remind the
> community of this.
>
> > To use a metaphor, you never know how hard fighting is until
> > you stepped into the ring.
>
> You assume too much and then state some cliched garbage.

This is intellectual discourse in your book? I can't even tell what
you are talking about.

>
>
>
> > So nothing against courtesy, as it makes thing easier, but this is a
> > technical newsgroup.  Technical facts are hard ones (you mustn't do this,
> > you can't do that, you really shouldn't do that, do this instead, or that
> > instead etc.), and experience shows that they need to be told in a hard way,
> > else too much time is wasted with writing tutorials here that are readily
> > available elsewhere.
>
> I know you think that what you do is very very hard - what i am trying
> to tell you is that there is much much harder stuff out there - and
> people have much more civilized discourse about it.

See above.

>
> > We (hackers) like to solve new, interesting,
> > thought-provoking problems, and to deal with questions in that sense.  If
> > you can't deal with that and think you'll be happier elsewhere, please
> > leave, silently.
>
> huh?? What broken logic are you using to come to that conclusion?

Huh?

>
> > You won't be missed, but you also won't be looked at
> > strangely if you choose to return later (unless you really screwed up the
> > last time).  Since you can not be convinced to stay without adding more
> > noise, if that, that's better for everyone.
>
> I recognize that you see yourself as the speaker of the group - your
> self nominated position and the authority you feel that it bestows
> upon you, means little to me.

And that position means little to this group. You have drifted way
off-topic.

[snip]

Peter Michaux

unread,
Feb 10, 2009, 8:28:22 PM2/10/09
to

Perfection is not the goal in the business world. Usually profit is
and that requires balancing investment (i.e. tolerable bugs) vs.
dollar income.

Peter

David Mark

unread,
Feb 10, 2009, 8:52:53 PM2/10/09
to

Competent, not perfect. Having looked at Cappuccino, I am certain
that any business model that requires a usable application will find
its incompetence prohibitive. And GWT is Google after all, so I think
it can be dismissed out of hand until they demonstrate some level of
competence on their own sites.

Faisal Vali

unread,
Feb 10, 2009, 9:14:24 PM2/10/09
to
On Feb 10, 7:12 pm, David Mark <dmark.cins...@gmail.com> wrote:
> On Feb 10, 7:57 pm, Faisal Vali <fais...@gmail.com> wrote:
>
> > On Feb 10, 5:31 pm, Thomas 'PointedEars' Lahn <PointedE...@web.de>
> > wrote:
>
> > > Faisal Vali wrote:
> > <snip>
>
> > > Note that of those only comp.std.c++, comp.lang.c++.moderated,
> > > comp.lang.ruby, and comp.programming.threads (if you mean those) are real
> > > Usenet newsgroups.  Since Usenet created this subculture and has much longer
> > > and different a history than Google Groups, it has created its own rules of
> > > conduct.  Once you get yourself informed about that and accepted it as
> > > given, life will become easier for you.
>
> > I wonder what you would have done had you been around the subculture
> > that the third reich created -
>
> Absolutely disgusting.  You lose, Godwin's law, etc.

heh - you forget about the lesser known "third reich" clause of that
law - it legitimizes all such references and confers instant
victory ;)

And no, my last post was not meant to be an example of intellectual
discourse - it was in the same ad-hominem vein as the post it was a
reply to.

But you are right, this is all a waste of this groups time.

Peter Michaux

unread,
Feb 10, 2009, 9:27:41 PM2/10/09
to

Isn't Google one of the most successful software companies of all
time?

Peter

David Mark

unread,
Feb 10, 2009, 9:43:17 PM2/10/09
to

Nevertheless, I defy anyone to produce a single piece of Javascript by
Google that isn't a complete failure.

And I've read that they are slowly losing their best and brightest.
The last guy I talked to at Google had an exclamation for a name
(something like "Jim!"), was an "engineer" (didn't catch what sort)
and used a similar argument to defend the property I questioned,
despite the fact that it was quite obviously a disaster.

Peter Michaux

unread,
Feb 10, 2009, 9:49:59 PM2/10/09
to
On Feb 10, 6:43 pm, David Mark <dmark.cins...@gmail.com> wrote:
> On Feb 10, 9:27 pm, Peter Michaux <petermich...@gmail.com> wrote:
>
>
>
> > On Feb 10, 5:52 pm, David Mark <dmark.cins...@gmail.com> wrote:
>
> > > On Feb 10, 8:28 pm, Peter Michaux <petermich...@gmail.com> wrote:
>
> > > > On Feb 10, 3:42 pm, David Mark <dmark.cins...@gmail.com> wrote:
>
> > > > > On Feb 10, 6:09 pm, Peter Michaux <petermich...@gmail.com> wrote:
>
> > > > > > On Feb 10, 1:38 pm, David Mark <dmark.cins...@gmail.com> wrote:
> > > > > > > Best of luck to
> > > > > > > whomever is going to write the first "compiler" for browser scripting.
>
> > > > > > It has already been done with GWT and Cappuccino.
>
> > > > > I should have qualified that.  How about the first "compiler" than can
> > > > > write competent Web applications.
>
> > > > Perfection is not the goal in the business world. Usually profit is
> > > > and that requires balancing investment (i.e. tolerable bugs) vs.
> > > > dollar income.
>
> > > Competent, not perfect.  Having looked at Cappuccino, I am certain
> > > that any business model that requires a usable application will find
> > > its incompetence prohibitive.  And GWT is Google after all, so I think
> > > it can be dismissed out of hand until they demonstrate some level of
> > > competence on their own sites.
>
> > Isn't Google one of the most successful software companies of all
> > time?
>
> Nevertheless, I defy anyone to produce a single piece of Javascript by
> Google that isn't a complete failure.

That is an overstatement.

I personally use at least Gmail, Groups, Finance, Maps, Analytics all
from Google. I can say I virtually never have a problem (at least a
problem big enough that I notice.) Some of these products use
JavaScript. (An understatement.) I'm a happy Google software user.

Peter

David Mark

unread,
Feb 10, 2009, 10:18:19 PM2/10/09
to

Groups is a disaster. Never mind the script, I can't even read
messages in their entirety without scaling down fonts until they are
illegible. I don't use Gmail much, but have heard that it has all
sorts of client side problems. I've used Google Code and AdSense and
both are completely incompetent interfaces. So the idea that Google
can auto-generate competent Web applications seems far-fetched to me.
Certainly JS is their weakest area as well.

> from Google. I can say I virtually never have a problem (at least a
> problem big enough that I notice.) Some of these products use
> JavaScript. (An understatement.) I'm a happy Google software user.
>

I see script errors all the time. iGoogle is another one. Each of
the three native Google applets I have added throws an exception
during the very long-winded page load. There's a big difference
between producing half-assed Websites that sort of work in some
browsers and creating a compiler for Web applications. I don't think
they have it in them at this point (if they ever did.)

Matt Kruse

unread,
Feb 10, 2009, 10:42:52 PM2/10/09
to
On Feb 10, 9:18 pm, David Mark <dmark.cins...@gmail.com> wrote:
> Groups is a disaster.  

I never see script errors in FF3. Seems to work for me. Some
annoyances, but mostly UI.

> Never mind the script, I can't even read
> messages in their entirety without scaling down fonts until they are
> illegible.  

Never had that problem.

> I don't use Gmail much, but have heard that it has all
> sorts of client side problems.  

Not for me. Never a script error in FF3, and the interface is slick
and intuitive. I don't care if the code in the background is crap. I
have experienced no performance or technical problems. If my
experience is satisfactory (it is) then I consider it a win for me.
Why would I care about implementation?

> I've used Google Code and AdSense and
> both are completely incompetent interfaces.

I don't like the UI of Google Code, but I have one project there and
it works. I haven't used it extensively.

AdSense works. I don't like _how_ it works, particularly, but I get
stats and the stats have meaning to me. So I don't care much about the
implementation.

> So the idea that Google
> can auto-generate competent Web applications seems far-fetched to me.
> Certainly JS is their weakest area as well.

And yet it works. And most people find value in it.

I can identify many problems and stupidity in the system I use to
watch movies at home. From the DVD data to the player to the
connections to the projector. Absurdity abounds. And yet I still enjoy
the movies without thinking about what makes them appear.

I've come to realize that many things in this world are "hacked"
together. These idealistic, perfect solutions that have internal
beauty and consistency and design rarely exist. Most of what we use
every day consists of evolving hacks on top of layers of proof-of-
concept. And yet somehow it all seems to work! It's emergent behavior.
Evolution, if you will. There is no perfect forward-thinking design.
Solutions evolve. Maybe jQuery or Google apps aren't perfectly
designed and engineered, but they have evolved into being something
that is very useful to many. And that's what really matters. IMO.

> iGoogle is another one.  Each of
> the three native Google applets I have added throws an exception
> during the very long-winded page load.

Hey, don't bash iGoogle! :) I have some issues with their design and
implementation, but I enjoy my iGoogle page quite a bit and I've
written a number of gadgets (75,000 users, not too bad). Again, it
works. And it's enormously useful.

Matt Kruse

David Mark

unread,
Feb 10, 2009, 11:19:16 PM2/10/09
to
On Feb 10, 10:42 pm, Matt Kruse <m...@thekrusefamily.com> wrote:
> On Feb 10, 9:18 pm, David Mark <dmark.cins...@gmail.com> wrote:
>
> > Groups is a disaster.  
>
> I never see script errors in FF3. Seems to work for me. Some
> annoyances, but mostly UI.

The point is that not everyone is using FF3. Most of my complaints
are with the UI, which is clearly horrible, but then I use FF3 as
well. Google properties typically have a problem with one browser one
week, then another the next. It is like they rotate their bugs. I've
never looked at the Groups JS, but am quite sure what I would find if
I did.

>
> > Never mind the script, I can't even read
> > messages in their entirety without scaling down fonts until they are
> > illegible.  
>
> Never had that problem.

Then you never had your PC configured as I do.

>
> > I don't use Gmail much, but have heard that it has all
> > sorts of client side problems.  
>
> Not for me. Never a script error in FF3, and the interface is slick

Again, not everyone is using FF3. I am sure that you and I and the
Google QA team all use FF3. The horror stories usually relate to
issues with other browsers.

> and intuitive. I don't care if the code in the background is crap. I

If it doesn't happen to bite you, then I can see why you don't care.
I don't particularly care either. The issue is whether Google could
be entrusted to auto-generate Javascript and I say that their various
examples of poor Javascript (and Web development in general) indicate
they cannot. Whether they invented a great search engine or have a
popular Email service or whatever is irrelevant.

> have experienced no performance or technical problems. If my
> experience is satisfactory (it is) then I consider it a win for me.
> Why would I care about implementation?
>
> > I've used Google Code and AdSense and
> > both are completely incompetent interfaces.
>
> I don't like the UI of Google Code, but I have one project there and
> it works. I haven't used it extensively.

And when you did, I imagine you used FF3. Of course, the UI is bad no
matter how well it is implemented. I recall a textarea that ate two
characters on backspace in IE.

>
> AdSense works. I don't like _how_ it works, particularly, but I get
> stats and the stats have meaning to me. So I don't care much about the
> implementation.

It is really hard to trust Google to count something accurately (see
Google Groups.)

>
> > So the idea that Google
> > can auto-generate competent Web applications seems far-fetched to me.
> > Certainly JS is their weakest area as well.
>
> And yet it works. And most people find value in it.

What works?

>
> I can identify many problems and stupidity in the system I use to
> watch movies at home. From the DVD data to the player to the
> connections to the projector. Absurdity abounds. And yet I still enjoy
> the movies without thinking about what makes them appear.

You have lost touch with what the discussion was about. It was *not*
about whether absurdity in general can be transcended.

>
> I've come to realize that many things in this world are "hacked"
> together. These idealistic, perfect solutions that have internal
> beauty and consistency and design rarely exist. Most of what we use
> every day consists of evolving hacks on top of layers of proof-of-
> concept. And yet somehow it all seems to work! It's emergent behavior.
> Evolution, if you will. There is no perfect forward-thinking design.
> Solutions evolve. Maybe jQuery or Google apps aren't perfectly
> designed and engineered, but they have evolved into being something
> that is very useful to many. And that's what really matters. IMO.

It always seems to come back to jQuery. We've been over the fact that
jQuery is seen as useful, primarily by those in no position to judge
its usefulness. This is in part due to ignorance and in part due to a
disingenuous marketing campaign. I would call it harmful to many. At
the very least, it encourages the worst sort of coding style
imaginable for browser scripts. Isn't that enough?

In the three years since this thing has come out, hasn't it ever
occurred to you that you don't need all it, could likely re-write the
parts you do need fairly quickly and that you would then have code
that is not subject to the whims of John Resig? How has this script
"evolved" in 3 years? They finally dropped browser sniffing (sort of
as lots of those miserable UI widgets still use it.) That's about
it. The selector query speed improvement? To quote John Resig:
"Yawwwwwwwwwwn." He has always been playing catch-up on that front.
I haven't bothered to see what sort of progress he made there.

Doesn't really matter how many people have latched onto it. That's
never been the point. I'll bet there are a few dropping it this
morning though. Probably tomorrow too.

>
> > iGoogle is another one.  Each of
> > the three native Google applets I have added throws an exception
> > during the very long-winded page load.
>
> Hey, don't bash iGoogle! :) I have some issues with their design and

Why not?

> implementation, but I enjoy my iGoogle page quite a bit and I've
> written a number of gadgets (75,000 users, not too bad). Again, it

Bully for you.

> works. And it's enormously useful.

You sound like a commercial.

Peter Michaux

unread,
Feb 10, 2009, 11:45:10 PM2/10/09
to


David,

You wrote "I defy anyone to produce a single piece of Javascript by
Google that isn't a complete failure." Here you have two people, both
interested in quality JavaScript, saying they find Google web pages
useful. If that is the case, how can all of Google's JavaScript be a
complete failure? To continue saying it is a complete failure would be
disregarding counter examples, don't you think?

Peter

David Mark

unread,
Feb 10, 2009, 11:50:52 PM2/10/09
to

I meant in terms of technical proficiency, which would be required to
produce a compiler for Web applications. Don't you think?

They have a decided advantage in marketing Web applications obviously,
but that doesn't make me want to use their Javascript.

Peter Michaux

unread,
Feb 11, 2009, 12:16:40 AM2/11/09
to
On Feb 10, 8:50 pm, David Mark <dmark.cins...@gmail.com> wrote:
> On Feb 10, 11:45 pm, Peter Michaux <petermich...@gmail.com> wrote:
>
>
>
> > On Feb 10, 8:19 pm, David Mark <dmark.cins...@gmail.com> wrote:
>
> > > On Feb 10, 10:42 pm, Matt Kruse <m...@thekrusefamily.com> wrote:
> > > > implementation, but I enjoy my iGoogle page quite a bit and I've
> > > > written a number of gadgets (75,000 users, not too bad). Again, it
>
> > > Bully for you.
>
> > > > works. And it's enormously useful.
>
> > > You sound like a commercial.
>
> > David,
>
> > You wrote "I defy anyone to produce a single piece of Javascript by
> > Google that isn't a complete failure." Here you have two people, both
> > interested in quality JavaScript, saying they find Google web pages
> > useful. If that is the case, how can all of Google's JavaScript be a
> > complete failure? To continue saying it is a complete failure would be
> > disregarding counter examples, don't you think?
>
> I meant in terms of technical proficiency,

That is a different story. I haven't read their code.


> which would be required to
> produce a compiler for Web applications.  Don't you think?

Certainly not a task for beginners. The fact they have built a Java to
JavaScript compiler is quite a technical achievement. Whether or not
that was a good idea (for Java or some other language) is what I have
been thinking about lately.

> They have a decided advantage in marketing Web applications obviously,
> but that doesn't make me want to use their Javascript.

Your prerogative. If you don't find value in their products you are
free to use other things, of course.

Peter

David Mark

unread,
Feb 11, 2009, 12:21:52 AM2/11/09
to
On Feb 10, 10:42 pm, Matt Kruse <m...@thekrusefamily.com> wrote:
> On Feb 10, 9:18 pm, David Mark <dmark.cins...@gmail.com> wrote:
>
> > Groups is a disaster.  
>
> I never see script errors in FF3. Seems to work for me. Some
> annoyances, but mostly UI.
>

By coincidence, one just announced itself in FF3:

this.hdr is undefined
http://groups.google.com/groups/static/release/g2_messages-d6ae9870bb7446cd0a4b3474f1825963.js
Line 205

David Mark

unread,
Feb 11, 2009, 1:11:42 AM2/11/09
to
On Feb 11, 12:16 am, Peter Michaux <petermich...@gmail.com> wrote:
> On Feb 10, 8:50 pm, David Mark <dmark.cins...@gmail.com> wrote:
>
>
>
> > On Feb 10, 11:45 pm, Peter Michaux <petermich...@gmail.com> wrote:
>
> > > On Feb 10, 8:19 pm, David Mark <dmark.cins...@gmail.com> wrote:
>
> > > > On Feb 10, 10:42 pm, Matt Kruse <m...@thekrusefamily.com> wrote:
> > > > > implementation, but I enjoy my iGoogle page quite a bit and I've
> > > > > written a number of gadgets (75,000 users, not too bad). Again, it
>
> > > > Bully for you.
>
> > > > > works. And it's enormously useful.
>
> > > > You sound like a commercial.
>
> > > David,
>
> > > You wrote "I defy anyone to produce a single piece of Javascript by
> > > Google that isn't a complete failure." Here you have two people, both
> > > interested in quality JavaScript, saying they find Google web pages
> > > useful. If that is the case, how can all of Google's JavaScript be a
> > > complete failure? To continue saying it is a complete failure would be
> > > disregarding counter examples, don't you think?
>
> > I meant in terms of technical proficiency,
>
> That is a different story. I haven't read their code.

Me either, but I don't think I need to. Since the error reported in
my last post, GG has thrown another in something that looked like an
unload listener. This is in FF3, which was mentioned as the browser
where Google properties "worked." I've read lots of horror stories
regarding the various other browsers, concerning Gmail particularly.

>
> > which would be required to
> > produce a compiler for Web applications.  Don't you think?
>
> Certainly not a task for beginners. The fact they have built a Java to
> JavaScript compiler is quite a technical achievement. Whether or not
> that was a good idea (for Java or some other language) is what I have
> been thinking about lately.

Whether or not the generated script is any good is my question.

>
> > They have a decided advantage in marketing Web applications obviously,
> > but that doesn't make me want to use their Javascript.
>
> Your prerogative. If you don't find value in their products you are
> free to use other things, of course.

I was talking about the Javascript generated by GWT. But I do tend to
dislike their Websites as well.

Thomas 'PointedEars' Lahn

unread,
Feb 11, 2009, 3:45:47 AM2/11/09
to
Faisal Vali wrote:
> Thomas 'PointedEars' Lahn wrote:

>> Faisal Vali wrote:
>> Note that of those only comp.std.c++, comp.lang.c++.moderated,
>> comp.lang.ruby, and comp.programming.threads (if you mean those) are real
>> Usenet newsgroups. Since Usenet created this subculture and has much longer
>> and different a history than Google Groups, it has created its own rules of
>> conduct. Once you get yourself informed about that and accepted it as
>> given, life will become easier for you.
>
> I wonder what you would have done had you been around the subculture
> that the third reich created -

How I hate it to be right sometimes. *PLONK*

Jorge

unread,
Feb 11, 2009, 3:46:03 AM2/11/09
to
On Feb 11, 3:27 am, Peter Michaux <petermich...@gmail.com> wrote:
>
> Isn't Google one of the most successful software companies of all
> time?
>

No, it is the most successful *online advertising* company of all
time.

--
Jorge.

Thomas 'PointedEars' Lahn

unread,
Feb 11, 2009, 4:10:25 AM2/11/09
to
Matt Kruse wrote:

> David Mark wrote:
>> Groups is a disaster.
>
> I never see script errors in FF3. Seems to work for me. Some annoyances,
> but mostly UI.

That begs the question why there are still annoyances after all this time.

>> Never mind the script, I can't even read messages in their entirety
>> without scaling down fonts until they are illegible.
>
> Never had that problem.

Me neither.

>> I've used Google Code and AdSense and both are completely incompetent
>> interfaces.
>
> I don't like the UI of Google Code, but I have one project there and it
> works. I haven't used it extensively.
>
> AdSense works.

Unless it doesn't, which is far too often. For a start, ISTM that it
depends on the weather conditions whether clicking the "More options" link
in Google Groups works (as in "show the options") or not. Currently
Firefox/Iceweasel 3.0.6 here, but it has been a problem all along. Probably
"Unobtrusive JavaScript" has something to do with it as I reasonably expect
the pseudo-link to work when I see it and not some time after when all the
other scripts and postings below have been loaded and displayed.

And Google Analytics is a nightmare for every webmaster and visitor when it
doesn't work because it blocks the whole site then. It is annoying when it
works, because it slows down loading of the Web site. I have seen that before.

> I don't like _how_ it works, particularly, but I get stats and the stats
> have meaning to me. So I don't care much about the implementation.

Do I really have to point out that Analytics/AdSense's approach at getting
Web statistics must be flawed if it considers only script-enabled visitors?

>> So the idea that Google can auto-generate competent Web applications
>> seems far-fetched to me. Certainly JS is their weakest area as well.
>
> And yet it works. And most people find value in it.

It works when it works, which is far too seldom.

No, Google certainly knows how to crawl the Web, but they certainly don't
know how to write Web applications. That starts with the invalid markup and
ends with GWT at this point.


PointedEars

David Mark

unread,
Feb 11, 2009, 4:32:04 AM2/11/09
to
On Feb 11, 4:10 am, Thomas 'PointedEars' Lahn <PointedE...@web.de>
wrote:

> Matt Kruse wrote:
> > David Mark wrote:
> >> Groups is a disaster.
>
> > I never see script errors in FF3. Seems to work for me. Some annoyances,
> > but mostly UI.
>
> That begs the question why there are still annoyances after all this time.
>
> >> Never mind the script, I can't even read messages in their entirety
> >> without scaling down fonts until they are illegible.
>
> > Never had that problem.
>
> Me neither.
>

It comes and goes here (as with a lot of Google-isms.) It is the list
of messages that I am referring to. Zooming the fonts will always
trigger it eventually, but sometimes it is worse than others.
Sometimes one list of messages will be fully visible, but the next
page of results will crop out various columns on the right. ISTM it
was even worse with IE. I've seen similar issues with other Google
properties. It is like they don't test these things at all.

At the moment I am the larger font mode in Windows at 800x600.
Typically I don't zoom the fonts in FF unless Google forces me to
(usually resulting in horizontal scroll bars.)

And even if GG appeared to work perfectly in FF3 (certainly not from
where I sit), one look at the error and warning logs will confirm that
it is a complete mess. Bad markup, bad style and even worse scripts.
They appear hopelessly lost on the client side.

Gregor Kofler

unread,
Feb 11, 2009, 6:28:48 AM2/11/09
to
Thomas 'PointedEars' Lahn meinte:
> Matt Kruse wrote:

>> I don't like _how_ it works, particularly, but I get stats and the stats
>> have meaning to me. So I don't care much about the implementation.
>
> Do I really have to point out that Analytics/AdSense's approach at getting
> Web statistics must be flawed if it considers only script-enabled visitors?

Or - perhaps even more important nowadays - only visitors without ad
blockers.

Gregor

Erwin Moller

unread,
Feb 11, 2009, 7:41:56 AM2/11/09
to
Adam Fisk schreef:

> Wow fellas. Here's a crazy idea: spend less time berating Resig to
> make yourselves feel better about yourselves (look at how smart I am,
> blah blah blah) and more time submitting patches to jquery. How many

> patches could you have submitted in the time it took you to make your
> post, Mr. Mark?
>
> The best developers know enough to realize how much they don't know,
> quickly followed by respectful discourse. The purpose of this thread

> is jealously cloaked in progress.
>
> -Adam
>

Adam,

I'll give you a short analogy:

Would you feel good driving a car with airbags and breaks that were
considered very unsafe by a large portion of car engineers?
Would you respond with: "You only say it is unsafe because you are
jalous you didn't engineer that break yourself!" ???

My *very personal* approach to this JQuery debate:

Many knowledgable people have critisized JQuery.
How do I know who is knowledgable? Why trust them instead of Resig?
Simple: I program a lot of JavaScript, frequent this group, and see that
people like David Mark, Thomas Lahn, Richard Cronford, etc, etc know ten
times more than I do (and you too propably).
I see them answer difficult stuff, hence I trust their judgement.

I never seriously worked with JQuery, and I'll propably never will,
simply because of the above reason: People I trust to know their
JavaScript say it stinks.
You can learn a lot by just reading through the questions and answers in
here, and after a few years I am quite sure I can tell the real cracks
from the wannabees.
And what is more: As far as I can judge: Anything JQuery can do, I can
do myself with simple JavaScript too.

I rather roll my own scripts, and understand (more or less) how they
interact with the DOM than give control away to a 'productivity tool'.
If I screw up, at least I know how to approach the problem since it was
me that wrote 100% of the code.
If I cannot solve it I post here.
At the end of the day I learned more JavaScript/DOM, and the JQuery fans
learned more JQuery.

Personally I think we should all thank David Mark (and others) for the
time and effort he puts into it.
And I don't care for his motivation, the result is (again) a clear
warning to stay away from JQuery.

just my 2 cent.

Regards,
Erwin Moller

--
"There are two ways of constructing a software design: One way is to
make it so simple that there are obviously no deficiencies, and the
other way is to make it so complicated that there are no obvious
deficiencies. The first method is far more difficult."
-- C.A.R. Hoare

Jorge

unread,
Feb 11, 2009, 8:34:22 AM2/11/09
to
On Feb 11, 1:41 pm, Erwin Moller

> And what is more: As far as I can judge: Anything JQuery can do, I can
> do myself with simple JavaScript too.
>
> I rather roll my own scripts, and understand (more or less) how they
> interact with the DOM than give control away to a 'productivity tool'.
> If I screw up, at least I know how to approach the problem since it was
> me that wrote 100% of the code.
> If I cannot solve it I post here.
> At the end of the day I learned more JavaScript/DOM, and the JQuery fans
> learned more JQuery.

But not everyone can/wants/needs to learn all that stuff. If I want to
burn a CD from my app, I use the highest-level libraries that I can
find in the OS, because I don't want/need/can spend my time learning
the low-level details of CD-burning.

Enter jquery.com and see that that page works as expected. Their demos
work as well. So if it works it can't be *so* bad as they're telling
us. If the source can be improved, it will surely be, never mind, and
it's not *your* bussiness (they'll fix it for you). The same as with
the libraries in the OS.

It would be much better to discuss the concepts the models the ideas
the APIs the functionalities the services that a library provides.

--
Jorge.

Erwin Moller

unread,
Feb 11, 2009, 9:09:02 AM2/11/09
to
Jorge schreef:

> On Feb 11, 1:41 pm, Erwin Moller
>> And what is more: As far as I can judge: Anything JQuery can do, I can
>> do myself with simple JavaScript too.
>>
>> I rather roll my own scripts, and understand (more or less) how they
>> interact with the DOM than give control away to a 'productivity tool'.
>> If I screw up, at least I know how to approach the problem since it was
>> me that wrote 100% of the code.
>> If I cannot solve it I post here.
>> At the end of the day I learned more JavaScript/DOM, and the JQuery fans
>> learned more JQuery.
>
> But not everyone can/wants/needs to learn all that stuff. If I want to
> burn a CD from my app, I use the highest-level libraries that I can
> find in the OS, because I don't want/need/can spend my time learning
> the low-level details of CD-burning.

I understand what you mean.

But taking that same example: If a very tech savvy friend of you told
you NOT to use that very-easy CD-burner software because it burns in a
stupid way and screws up the burningprocess and delivers a corrupt
filesystem?
What is he claims that the burned CD's will only run on WinXP and Vista?
Would you still like to use it, even if you could use it just fine on
your XP machine?
Wouldn't you worry about sharing that CD with you Apple and *nix friends?

What I mean to convey is: It is totally fine when somebody makes a
high-level-easyly-mastered lib, as long as it is good and gets the job
done in a decent way.
My problem with JQuery is that many people with relevant knowledge say
it is designed wrong and that Mr Resig doesn't know/understand enough
JavaScript/DOM to get the job done.
I don't like betting on questionable technology. I can't afford that.


>
> Enter jquery.com and see that that page works as expected. Their demos
> work as well. So if it works it can't be *so* bad as they're telling
> us. If the source can be improved, it will surely be, never mind, and
> it's not *your* bussiness (they'll fix it for you). The same as with
> the libraries in the OS.

Maybe. Maybe not.
Maybe Resig et all cannot fix it.
But in all honesty: I seriously wouldn't know.
My knowledge of JQuery is too limited.
What I DO know is that badly designed software is very hard to maintain
and fix. Often it is better to throw it away and start from scratch.
I do that on a regular basis when some client of mine wants an
application I wrote years ago and I refuse to maintain. I rather rewrite.


>
> It would be much better to discuss the concepts the models the ideas
> the APIs the functionalities the services that a library provides.
>

I would love to see good JavaScript/DOM people write their own JQuery, a
JQuery the whole community loves and agrees with.
Let's name it KQuery (damn, googled that: name taken by a now dead project).


Regards,
Erwin Moller


> --
> Jorge.

Gregor Kofler

unread,
Feb 11, 2009, 9:44:16 AM2/11/09
to
Jorge meinte:

> But not everyone can/wants/needs to learn all that stuff.

(...but wants to be an expert in client-side scripting.) Why is this so
different with JS? If I use a PHP framework, I need to know PHP. If I
write a Java application I need to know Java despite the plethora of
classes and toolkits and frameworks available.
One can easily "create" a webpage with Dreamweaver or FrontPage without
any clue of HTML or CSS. Would you rent this person as web author?

> If I want to
> burn a CD from my app, I use the highest-level libraries that I can
> find in the OS, because I don't want/need/can spend my time learning
> the low-level details of CD-burning.

Right. For viewing webpages you don't need to know JS, CSS, HTML,
server-side scripting. Was it that, what you wanted to express?

> It would be much better to discuss the concepts the models the ideas
> the APIs the functionalities the services that a library provides.

Well, that's what David does, doesn't he?

Gregor

It is loading more messages.
0 new messages