$('body') looks to the uninitiated to be a simple variable. Maybe they come from the PHP world, so they think "Ah! that's just the variable body from the DOM, ok great.
When in reality, $ is the name of a mammoth function that could take ages to execute. It'll also execute every time.
eg
for (var i=0;i<1000;i++) {
$('silly').doSomthing();
}
This is horrible horrible code. It's calling the function $ 1000 times. Why?$myDiv = $('#myDiv');
Now I know every time that $myDiv is already wrapped in jQ and I won't make the mistake of wrapping it again $($myDiv) in my code.
$myDiv = $('myDiv');
They'll simply use $('myDiv') all over the place which will be horrible.
But you seem to understand that point, so I'm confused why you said what you said.
You're saying using $ as notation might confuse people new to jQuery and presumably javascript, who might not realize that $ is a function. You're saying that they would or might therefore conflate $var with $('selector'), leading to inefficient code?
So, I should abandon a concise convention because a tiny subset of the programmer population might misinterpret a detail of my code, causing them to implement superficially similar code in an inefficient way? Is this a problem you run into a lot?
It looks cheap to use, but it's not. That's my point.
Same reason I hate those things in C# is it? where you can get some code to run each time a variable is read/written to.
Properties make for some mighty clean code though.
I guess you have a particular bias toward protecting systems from crap programmers, which may serve you well in your environment. In my environment being concise wins because no one is an amateur.