jQuery is a library, not a language ... new $ where $ return a new something
else is allowed by JavaScript specs ... it is not an error, syntax speaking,
it is just like people using whatever.toString() rather than "" + whatever
... you are creating a drama over a truly simple and common mistake for
unskilled JS developers but still, it does not harm anybody and if the
application does not work is not because of new $.

I am sure you have hundreds of valid arguments about their bad practices,
but tell them that their code is crap and cannot work because new $ is
allowed ( by JavaScript itself, it is NOT jQuery ) is an error as well.

It is not about JavaScript panorama only, there are crap developers for evey
languages and actually truly skilled developers are rare but nobody cares
that much ... I see horrors in famouse PHP CMS every day but these CMS are
famous .... I have seen crappy logic in pieces of Zend Framework but it is
suppose to be enterprise .... I cannot blame anybody using a programming
language in a bad way as long as results are somehow reached ... I agree
that this would have been a better world if every paid developers was truly
senior but I cannot find a single argument in this thread about jQuery,
sorry.

On Sun, May 17, 2009 at 2:00 PM, DBJDBJ <[email protected]> wrote:

>
> Allow me to be very clear:
>
> Issue is in MOUNTAIN of legacy javascript/css/html ... Company X
> decides to improve its "portal" or whatever horrid pile of sugar they
> might have amassed, and then yet another team is made to do it. Which
> usually consist of visual basic/delphi/sql/asp "developers" who are
> all avid followers of jQuery. They simply include jQuery in these
> pages , and then ... nothing works. Then they struggle for approx few
> weeks and just then they declare that jQuery is "very bad" and then
> they either revert back to ASP or JSP or whatever horros you can think
> of. But. Minority admits they need to learn a bit more and then they
> call people in to help them out.
> This is where we usaly come in. And this is where we use my version of
> jQuery to show them where are they making mistakes and for us to
> understand what is going on.
> And then "fun" starts when the legacy code has to be removed/destroyed/
> forgotten. In those moments I would like Ricardo and Andrea to stand
> in front of these (by now highly annoyed) managers and developers and
> tell them :
>
> ".. jQuery does it work as it's supposed to, it's not it's duty to
> enforce
> good practices ... or alert users of javascript syntax errors..."
>
> What is the issues here is the jQ usage patterns not jQ itself. And
> this is a very big mountain to climb for a very big portion of
> developers. Number of people who are beyond intermediate skills in
> javascript+css, is in reality very very small ...
>
> -- DBJ
>
>
>
>
> On May 16, 12:17 pm, Ricardo <[email protected]> wrote:
> > Well, you shouldn't let your clients mess with your javascript, minify
> > it before deploying. Anything that happens is their own problem - that
> > is, if you're not hired to do it.
> >
> > jQuery does it work as it's supposed to, it's not it's duty to enforce
> > good practices (wishful thinking) or alert users of javascript syntax
> > errors.
> >
> > On May 15, 8:03 pm, DBJDBJ <[email protected]> wrote:
> >
> >
> >
> > > I have only clients no boses, who blame it on jQuery .... until they
> > > are caught that is ;o)
> > > I am catching them with jQ version I have "adorned" with this kind of
> > > checks like the one we are discussing here.
> > > You will be amazed (same as me) what are javascript/css/html newcomers
> > > capable of doing.
> > > One more check I am going to add is this one to stop them doing new $
> > > () ...
> >
> > > Thanks
> >
> > > --DBJ
> >
> > > On May 15, 10:43 am, Andrea Giammarchi <[email protected]>
> > > wrote:
> >
> > > > Tell your head of "whatever" that a title in a contract does not
> necessary
> > > > mean extraordinary skills and if he would like to improve his
> JavaScript
> > > > knowledge he is more than welcome in this ml ( probably more as
> reader ... )
> > > > anyway ...
> >
> > > > function init(selector, context){
> > > >     if(this instanceof jQuery)
> > > >         throw new Error( jQuery.error_code,  "Can not new $()");
> > > >     return new jQuery.fn.init(selector, context);
> >
> > > > };
> >
> > > > function jQuery(selector, context) {
> > > >     return jQuery.fast ?
> > > >         new jQuery.fn.init(selector, context) :
> > > >         init.call(this, selector, context)
> > > >     ;
> >
> > > > };
> >
> > > > Conditional is a bit faster than an if but still it is something that
> does
> > > > not make sense because as I said the nature of the jQuery callback is
> dual (
> > > > both function/constructor ... it does not matter which way you call
> it, the
> > > > result will always be an instance of jQuery, if "you" like weist time
> > > > writing an alread implicit "new" everywhere, it cannot be a jQuery
> issue, do
> > > > you agree? )
> >
> > > > On Fri, May 15, 2009 at 10:20 AM, Daniel Friesen
> > > > <[email protected]>wrote:
> >
> > > > > ;) I still see an if statement there, heh.
> >
> > > > > I prefer the conditional comments + build system approach.
> >
> > > > > ~Daniel Friesen (Dantman, Nadir-Seen-Fire) [
> http://daniel.friesen.name]
> >
> > > > > DBJDBJ wrote:
> > > > > > "... If a user uses new $ this user simply does not truly
> understand/
> > > > > > know
> > > > > > JavaScript but fortunately will not harm anybody..."
> >
> > > > > > No it wont, unless this user is a team leader and starts blaming
> > > > > > jQuery on everything.
> > > > > > And this happens much more than anyone here (it seems) realises.
> > > > > > But. This is another subject.
> >
> > > > > > PS:
> >
> > > > > > jQuery.fast = false  ;
> > > > > > jQuery.error_code = 0xABCD ;
> >
> > > > > >  function(selector, context) {
> > > > > >      if ( ! jQuery.fast)
> > > > > >                    if(this instanceof jQuery)
> > > > > >                             throw new Error( jQuery.error_code,
>  "Can
> > > > > > not new $()");
> > > > > >      return new jQuery.fn.init(selector, context);
> > > > > >   }
> >
> > > > > > On May 14, 2:59 pm, Andrea Giammarchi <
> [email protected]>
> > > > > > wrote:
> >
> > > > > >> to do that you need to change the contructor:
> >
> > > > > >> function(selector, context) {
> > > > > >>     if(this instanceof jQuery)
> > > > > >>         throw new Error("Can not new $()");
> > > > > >>     return new jQuery.fn.init(selector, context);
> >
> > > > > >> }
> >
> > > > > >> this means an extra if for each jQuery call, something not that
> welcome
> > > > > for
> > > > > >> performances reason. At the same time, jQuery itself relies in
> this
> > > > > >> JavaScript peculiarity, so I would not create "conflicts"
> between jQuery
> > > > > >> developers and users.
> >
> > > > > >> If a user uses new $ this user simply does not truly
> understand/know
> > > > > >> JavaScript but fortunately will not harm anybody.
> >
> > > > > >> On Thu, May 14, 2009 at 10:23 AM, DBJDBJ <[email protected]>
> wrote:
> >
> > > > > >>> Ah, new $, is possible and therefore not barred ... Left in
> there as a
> > > > > >>> sort of a land-mine for the newcomers ? Or as an esoteric test
> for GC
> > > > > >>> developers ? Highly useless it seems to me.
> >
> > > > > >>> Back to reality and jQuery. $ is defined as:
> >
> > > > > >>> function(selector, context) {
> > > > > >>>            // The jQuery object is actually just the init
> constructor
> > > > > >>> 'enhanced'
> > > > > >>>            return new jQuery.fn.init(selector, context);
> > > > > >>>        }
> >
> > > > > >>> Maybe I am just searching for ECMA "harmony", but will $()
> definition
> > > > > >>> that throws an exception if new-ed , be usefull  :
> >
> > > > > >>> try {
> > > > > >>>        new $ ;
> > > > > >>> } catch ( x )
> > > > > >>> {
> > > > > >>>    // x. message == "Can not new $()"
> > > > > >>> }
> >
> > > > > >>> Au-contraire : will this hurt anyone ? Is exception throwing
> > > > > >>> porgramming idiom damaging for jQuery?
> >
> > > > > >>> --DBJ
> >
> > > > > >>> PS: if Python was choosen as a Netscape scripting language,
>  World
> > > > > >>> would be a better place ... If nothing else its name is less
> > > > > >>> ridiculous ... ;o)
> >
> > > > > >>> On May 14, 9:04 am, Andrea Giammarchi <
> [email protected]>
> > > > > >>> wrote:
> >
> > > > > >>>> it's called JavaScript :D
> >
> > > > > >>>> jokes a part, every function is a constructor as well so new
> function
> > > > > is
> > > > > >>>> always valid.
> >
> > > > > >>>> If the function returns an object, it does not matter which
> "new" is
> >
> > > > > >>> because
> >
> > > > > >>>> it will be an instance of returned object one.
> >
> > > > > >>>> if it is a primitive it will simply be lost:
> >
> > > > > >>>> var a = new function(){return 123;};
> > > > > >>>> // a is an instance of anonymous function
> >
> > > > > >>>> this allows us to create Python like initializations:
> >
> > > > > >>>> function PythonLike(){
> > > > > >>>>     return this instanceof arguments.callee ? this : new
> >
> > > > > >>> arguments.callee;
> >
> > > > > >>>> };
> >
> > > > > >>>> alert(PythonLike() instanceof PythonLike);
> > > > > >>>> alert(new PythonLike() instanceof PythonLike);
> >
> > > > > >>>> true in both cases
> >
> > > > > >>>> jQuery returns a new jQuery.prototype.init where init method
> shares
> > > > > the
> >
> > > > > >>> same
> >
> > > > > >>>> prototype ... better now? :-)
> >
> > > > > >>>> On Wed, May 13, 2009 at 11:57 PM, DBJDBJ <[email protected]>
> wrote:
> >
> > > > > >>>>> Why is this allowed :
> >
> > > > > >>>>> var jq = new $ ;
> >
> > > > > >>>>> Does it matter?
> >
> > > > > >>>>> -- DBJ- Hide quoted text -
> >
> > - Show quoted text -
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"jQuery Development" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/jquery-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to