[OpenAjaxIDE] Microsoft Ajax metadata format quick start guide

Kevin Hakman khakman at tibco.com
Thu Jul 12 11:25:43 PDT 2007


I must concur with Alex that allowing things such as Object.prototype or
Array.prototype extensions is a slippery slope that undermines the main
goal of Ajax interoperability.  It's an extremely important best
practice to not do these things inorder to achieve the goal of
interoperability.  Extensions to Object.prototype or Array.prototype,
etc... are just ripe for collisions.  Sadly, json.js is incompatible
with many popular Ajax libraries since it screws with the Array object
and in so doing prohibits use of standard JavaScript For/In loops which
other Ajax libraries use.

I'm an advocate of MUST NOT extend the basic javascript objects.
Perhaps middle ground would be a means to have OAA member
agreed-to-standard extensions to the language's objects (as is the
rebuttal case for json.js since it's also a proposal pending with ECMA).
At least then the best practice for a bad practice would be getting the
community to agree to it first, and thus avoid collisions, and advance
requests for language extensions to ECMA as well).

-Kevin

Kevin Hakman

Director, Developer Evangelism 
Co-Founder General Interface Enterprise Ajax Toolkit   
P: (415) 225-4259  E: khakman at tibco.com
TIBCO Software Inc.   
 
All information in this email is proprietary and confidential.

-----Original Message-----
From: ide-bounces at openajax.org [mailto:ide-bounces at openajax.org] On
Behalf Of Bertrand Le Roy
Sent: Thursday, July 12, 2007 11:09 AM
To: Alex Russell; ide at openajax.org
Subject: Re: [OpenAjaxIDE] Microsoft Ajax metadata format quick start
guide

Hi,

That subject was discussed at yesterday's meeting.

Actually, it's a fact that many existing and widely used frameworks
extend built-in prototypes and instances. Even frameworks that make a
major point of having minimal impact on the global namespace actually
introduce potential conflicts in ways that are not always easy to see.
For example, it's common practice to have APIs that query the DOM and
return DOM elements that are mixed-in with additional functionality. Do
you also want to prohibit that?
I think it's a fact that built-in objects will be extended because it's
very useful to do so.
I'm sure Dojo does a much better job than we do at never adding an
expando to any object that it doesn't own but we chose to be very open
about everything we had so that we can spot problems that are likely to
be found in other libraries too.

You could take the approach of prohibiting everything but the likely
result would probably be that toolkit vendors would just go "ok, fine,
we won't be OpenAjax-compliant then" rather than break their customers'
applications. I don't think that's what we're trying to achieve here.

The goal of the registry as far as I understand it is to manage
conflicts while allowing the flexibility that is required by existing
art.

I think it would also be useful if the Alliance provided guidelines in
the form of "SHOULD" recommendations such as "libraries SHOULD NOT
extend Object.prototype or Array.prototype". Whether they should extend
instances of DOM elements or prototypes of other objects is still, I
believe, a subject to debate in the community and certainly a common
practice so if we provide recommendation here it should probably be to
limit the number of extensions rather than prohibit them entirely. Let's
focus on making the registry a useful tool to the community instead of
trying to impose rules that are too restrictive to be followed.

Thanks,
Bertrand

-----Original Message-----
From: ide-bounces at openajax.org [mailto:ide-bounces at openajax.org] On
Behalf Of Alex Russell
Sent: Thursday, July 12, 2007 10:15 AM
To: ide at openajax.org
Subject: Re: [OpenAjaxIDE] Microsoft Ajax metadata format quick start
guide

On Thursday 12 July 2007 7:46 am, Jon Ferraiolo wrote:
> Hi everyone,
> Bertrand has sent in some emails describing the list of globals and
> JavaScript extensions that MS Ajax uses, along with the XML format
> used to document the runtime JavaScript used by MS Ajax. I have been
> going through some of these documents and I found it a bit hard to
> figure out where I could find an executive summary and some examples.
> Here is what I found:
>
> Executive summary of XML metadata format:
> *
> http://weblogs.asp.net/bleroy/archive/2007/04/23/the-format-for-javas
>cript-doc-comments.aspx
>
> List of JavaScript globals and JavaScript extensions used by MS Ajax:
> * http://openajax.org/pipermail/interop/2007q2/000168.html

Ouch...that's a long list. Are we going to allow any vendor to
"register" globals which extend root object prototypes? I had thought
that the consensus was "no", and that they should be flagged as
dangerous and potentially conflicting (otherwise interop is a joke).

Regards

--
Alex Russell
alex at sitepen.com     A99F 8785 F491 D5FD 04D7 ACD9 4158 FFDF 2894 6876
alex at dojotoolkit.org BE03 E88D EABB 2116 CC49 8259 CF78 E242 59C3 9723

_______________________________________________
IDE mailing list
IDE at openajax.org
http://openajax.org/mailman/listinfo/ide



More information about the IDE mailing list