W3C home > Mailing lists > Public > public-webapps@w3.org > January to March 2010

Re: [widgets] Null in P&C

From: Simon Pieters <simonp@opera.com>
Date: Tue, 02 Feb 2010 14:20:06 +0100
To: "Marcos Caceres" <marcosc@opera.com>, public-webapps <public-webapps@w3.org>
Message-ID: <op.u7h4nsm3idj3kv@zcorpandell.linkoping.osa>
On Tue, 02 Feb 2010 13:29:42 +0100, Marcos Caceres <marcosc@opera.com>  

> Hi,
> I had a discussion with an implementer who was a bit confused about the  
> concept of "null" in the specification. The problem is that I kinda  
> wrote the spec as if it was to be implemented in Java or JavaScript.  
> This has resulted in confusion wrt how "null" is to be interpreted in  
> languages that don't have that concept/data type.
> So, in an effort to clarify that, I've added the following to Processing  
> Rules section of P&C:
> [[
> In the following algorithms, the concept of null is used as a special  
> symbol to indicate that a variable has no data associated with it. For  
> example, "let x be null" or "if y is empty, then return null".
> Note: Although ECMAScript and Java support null as a native value type,  
> there are some programming languages that have no notion of null or  
> where null is problematic (e.g. C++). For those languages, it is OK for  
> an implementation to substitute the null for some other value or symbol  
> (or for nothing at all). For example, it is ok to have the value 0  
> represent null for the height of a widget as the height of a widget is  
> defined as a non-negative integer greater than 0. In such a case, 0  
> would behave as if it is null.
> ]]
> I don't have much experience programming in anything but Java and  
> ECMAScript (why would anyone program in something else?!;)), so please  
> let me know if it makes sense or if it could be better defined.

HTML5 solves this with:

"Conformance requirements phrased as algorithms or specific steps may be  
implemented in any manner, so long as the end result is equivalent."

Simon Pieters
Opera Software
Received on Tuesday, 2 February 2010 13:20:27 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 18:13:04 UTC