Andrew said:
Each individual on his own.
Maybe, but there are circumstances were the best advice possible is to
delete something and start again from scratch, but most individuals who
hear that advice don't regard it is constructive when they do.
Or, in other words: say what you want to say, and I'll
brush off anything I think is unwarranted.
Presumably you mean you will brush off anything that you regard as
unwarranted?
I'm not
setting conditions for prior restraint here.
Requiring what you get to be "constructive" is not a condition?
I never said anything of the sort. I said the minority need
to do more _persuading_.
OK. Why, what is in it for them?
You stated that these libraries were junk
I very much doubt that I did.
as though it were common knowledge.
If I had it would not be because it was common knowledge, but rather
because it was the case.
Clearly it isn't common knowledge.
There are lots of things that are true but are not common knowledge. And
that is even if you are not taking 'common knowledge' as referring to
what is commonly know by ordinary people (ordinarily people mostly being
people who have no idea what javascript is in the first place, and
little interest in knowing).
I hold that any technology decision is a question of taste.
Decisions suggest an informed process of deciding. Otherwise we may be
dealing with no more than the accumulated outcome of sequences of random
influences, misconceptions and learnt incantations. If someone writes:-
<script type="javascript">
var url = " ... ";
...
document.write('<scr'+'ipt type="javascript"
src="'+url+'"></scr'+'ipt>');
</script>
- there are things about that that are not a question of taste at all.
That the mark-up is invalid is an objective fact. That there are two
unnecessary concatenation operations is a fact, and that the apparent
justification for those additional concatenation operations has missed
the point is also a fact.
Some decisions to do things, or not to do things are not a question of
taste, but rather the consequences of understanding.
There is no objective "better" in the sense of Ruby vs.
Python, or vi vs. emacs;
Maybe, but there is an objective "better" in the sense of using:-
if(elem == null){
dojo.raise("No element given to dojo.dom.setAttributeNS");
}
- in place of:-
if(
elem == null ||
((elem == undefined)&&(typeof elem == "undefined"))
){
dojo.raise("No element given to dojo.dom.setAttributeNS");
}
- because the latter is just silly in comparison to the former (as they
both have precisely the same outcome).
there is only the subjective "better" - whichever best
serves the user's own needs.
There seems to be an unfortunate tendency among web developers to lose
site of who the "user" actually is. The user (for web developers) is the
poor sod looking at an alarming little grey box with yellow 'warning'
triangle just above their web browser's window that says "Your browser
does not support AJAX" and wondering what the hell they are expected to
do about it (get it tickets for the next match or something?).
Naturally, this does _not_ mean that everything is relative,
or that it's not worth having passionate arguments thereabout.
I implied as much in my music analogy: friends argue among
themselves over which band is "better," but they all realize
that taste is the ultimate arbiter. These arguments become
tiresome only when people dig trenches and start speaking
in absolutes.
And I submit that is a matter of taste.
Thomas's memory is a matter of taste?
Not really. There are bugs and there are bugs. A typo in the middle of a
large block of code is something that can happen to anyone, and it could
also easily be missed by others reviewing that code. A glaring error in
something that experience would teach you to always double check and
also should be exposed in any reasonable testing is something else
entirely.
of course, and we welcome bug reports. But you've gone
further than that; you've inferred from "evidence" that
code in Prototype does not do what its author means for
it to do.
No, I said that the evidence was that Prototype.js was (at least in
November last year) only doing what was (apparently) expected by
coincidence; that it had not actually been programmed to do what it was
doing. I also implied that were that evidence existed it was reasonable
to question the understanding of javascript that informed all of the
design decisions that occurred prior to that code being written; such as
the underlying design approach and the resulting API.
(I have also pointed out that Prototype.js is incredibly slow at doing
pretty much anything complex)
Then write your own words.
I did.
That way they'll be _from the heart_.
No they would not. They would be from the head.
You know the point I'm trying to make.
Not really.
The word "censorship" doesn't come within miles of this
thread.
Well this is Usenet so there is no censorship.
I do not own a telecommunications company; I don't have
the means or authority to "censor" anyone.
You would not have the means to censor Usenet even if you did own a
telecommunications company.
I can only imagine the OP was interested in the free
exchange of ideas when he asked you why you thought
jQuery and Prototype were junk.
He (do you have any evidence that he is a 'he'?) did not ask me
anything.
That last sentence is the answer to such a FAQ.
It is already in the FAQ in as many words.
Even a link to that question and answer would be more
helpful than what has happened in this thread.
Not really. The OP is not asking for specific information on javascript,
and there is no code to post in relation to the question. The question
asked was along the lines of "having learnt something about Prototype.js
should I then spend some time learning something about JQuery". To
which the direct answer appears to have been "no" (if a little more
strongly/colourfully expressed). My answer, in as far as I answered the
question at all, was 'learn javascript and browser scripting first and
then you can make up your own mind'.
I mean that they weren't participants before their first post.
And they weren't human before they were conceived.
Many posters, I would venture, only come here when they
need help, and therefore aren't already familiar with the
quirks of the community.
There is no need to "venture" that, it is self-evidently true.
Please search this newsgroup for the terms "Prototype"
What are you expecting? You give a library the same name as a
significant aspect of the language it written in and then cannot find
specific references to it in the archives of a newsgroup dedicated to
that language. It was a predictably bad choice of name.
and/or "jQuery" and see how quickly you find a well-summarized
critique of either library.
Who said finding that sort of thing out was going to be quick? I bet the
search would still turn out to be informative even if it could not be
instantaneous.
but redefine them for WebKit and IE because the String#replace
approach is much, much faster in these two browsers (but much,
much slower in FF and Opera).
Can you post a test-case that demonstrates that assertion?
Historically IE has been renowned for its lousy performance
with string manipulation, while Mozilla outperformed everyone
else in that area.
I don't have a test-case. The change was made one year ago by
Thomas Fuchs [1]. You're welcome to ask him, though I suspect
he'll punch me in the sternum for having dragged him into this.
He won't have to. I will just dismiss this as yet another
unsubstantiated rumour.
You haven't demonstrated that anything is baseless
How would you expect me to demonstrate the lack of any technical
foundation for UA string based browser sniffing? I can hardly point to
something that doesn't exist and say "there is the absence of any
technical foundation for all to see". Of course if there was any
technical foundation then that could be pointed at quite easily, but as
the navigator.userAgent string is a reflection of the HTTP User Agent
header then any such direction must lead to the definition of the header
in the HTTP specification, and that definition pretty much says that the
User Agent header is an arbitrary sequined of zero or more characters
that is not even required to be consistent from one request to the next
(i.e. that it is not specified as being a source of information at all).
Does that need to be demonstrated (again)? It is known that web browsers
use User Agent headers that are indistinguishable form the default UA
header of IE, so how could it be effective to discriminate between
browsers using the UA string whenever two different browsers use UA
headers that are indistinguishable?
you've only revealed a different set of priorities.
You'd rather have 100% guaranteed behavior
I would certainly rather have consistent and predictable behaviour
before worrying about performance.
even if it meant a wildly-varying performance
graph across browsers.
Where is the evidence for "wildly-varying"? I don't think
escaping/unescaping methods are going to be used frequently enough for
their specific performance to mattered that much at all. If you used
them internally, or they were fundamental to using the library in the
first place then their performance would be much more significant.
I'd rather have the reverse.
So you would not be certain what the code was going to do, but you would
know that whatever it did it would take about the same amount of time to
do it wherever it was running? I certainly do not have a taste for that
design philosophy.
The check-in is only one year old. It is Thomas's bug, but he
is no rookie,
Hansom is as hansom does. But that was not really my point. One of the
things that gets proposed as a justification for libraries of this sort
(a reason for their not being junk by virtue of what they are) is that
with many individuals contributing there are plenty of eyes looking at
the code to be able to find these sorts of things and fix them up front.
But if it takes me three seconds to find what nobody else had noticed
then it must be the case that there is nobody involved looking with my
eyes.
so I can only surmise that we all make silly mistakes
sometimes. Bad luck for him that he managed to stumble
upon your Shibboleth Bug(TM).
Bad luck for everyone else who manage to let it pass unnoticed.
We listen to criticism, we read bug reports, and we constantly
search for ways to improve the feedback loop.
That all sounds very 'marketing-speak'.
So does John Resig, by the way, so I'd suggest you file a bug
on jQuery's Trac about the "makeArray" mistake.
Why? Polishing the handrails on the Titanic may have made it more
appealing to look at but didn't change the rate at which it sank after
the design flaw coincided with the iceberg.
Richard.