Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Because it's dishonest, and makes for bad code.

$('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?


I think you kind of missed something. The $ by itself in a variable name doesn't do anything. It's simply a notation to keep your DOM elements (and other variables / objects) separated from your jQuery wrapped elements.

$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.


Yes, I know. My point is that most people won't know/bother doing

$myDiv = $('myDiv');

They'll simply use $('myDiv') all over the place which will be horrible.


so, the complaint is that people who don't understand jquery use it incorrectly/inefficiently?


meh. If you like it use it. Personally I find that code ugly, inefficient and error prone.


I'm a little confused here. First, let me echo my sibling comment by saying that, yes, $ is a function, but no, the name "$var" will not execute the $ function. To me it's a method of notation, as the sibling also said.

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?


I'm saying that using $ to name a function, isn't a good idea.

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.

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.


Not really. I'm a sole developer at the moment, so I value efficient easy to read code. Mainly a matter of taste though I expect.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: