W3C home > Mailing lists > Public > public-script-coord@w3.org > January to March 2012

Re: Numeric constants vs enumerated strings

From: Marcos Caceres <w3c@marcosc.com>
Date: Wed, 15 Feb 2012 17:28:16 +0000
To: Dominique Hazael-Massieux <dom@w3.org>
Cc: Anne van Kesteren <annevk@opera.com>, public-script-coord@w3.org, Harald Alvestrand <harald@alvestrand.no>, "public-webrtc@w3.org" <public-webrtc@w3.org>
Message-ID: <540A1AF8C76A414BA0BFF68315759EB9@marcosc.com>



On Wednesday, February 15, 2012 at 5:16 PM, Dominique Hazael-Massieux wrote:

> (trimming cc as originally requested)
>  
> Le mercredi 15 février 2012 à 17:05 +0000, Marcos Caceres a écrit :
> > > There are strong ties, in the sense that the said API would be exposing
> > > a readyState property (similar to XMLHttpRequest, HTMLMedia, etc).
> >  
> >  
> >  
> > I'm not sure there is any relationship to the internal state of an
> > object and using object.SOME_HARD_TO_REMEMBER_AND_TYPE_THING…
> > specially when you can just type "thing".  
>  
>  
>  
> That's not the point; the point is that if we use strings for a
> readyState property in one API, and numeric values in many others, we
> would have scripts that have code that looks like:
>  
> if (XHR.readyState == 4) {
>  
> }
> if (P2P.readyState == "done") {
>  
> }
>  
> That seems utterly confusing, hard to remember, hard to teach, etc.

Not to me (or those working on WebIDL, hence the warning in the spec): "done" makes more sense than "4".  

Here is a real example of how ridiculously stupid the use of constants can get:  

var msg = deviceapis.messaging.createMessage(deviceapis.messaging.TYPE_SMS);

Um… compared to:   

var msg =   deviceapis.messaging.createMessage("sms");  

Nuff said.  


--  
Marcos Caceres
Received on Wednesday, 15 February 2012 17:28:49 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 8 May 2013 19:30:05 UTC