On Aug 21, 2013, at 2:36 PM, Brendan Eich <bren...@mozilla.com> wrote:

> David Herman wrote:
>> Any, String and Object should still be uppercase. The naming convention is: 
>> value types lowercase, reference types uppercase.
> 
> Is String really a reference type? Currently you can't tell, and JS docs and 
> books don't (AFAIK) say "reference type" apart from object (not null; 
> including function). String also happens to spell the constructor/converter 
> function, which sadly both returns a primitive and creates a String object 
> depending on how it is called.

You can tell, in that a type that includes String must be opaque. The 
might-be-a-pointer property of a type is observable in the typed objects API in 
that it cannot expose its backing storage as an ArrayBuffer. Strings 
necessarily might-be-a-pointer.

I take your point that it's confusing on the primitive/object axis, though.

So... all right, let's break out those paintbrushes. Let's say we use the 
lowercase naming convention for purely immutable types, independent of whether 
they might-be-a-pointer. This still leaves Dmitry's question about the 
unfortunate name collision -- even though modules make this "okay," it's still 
a PITA in practice not to be able to import Object without shadowing the 
built-in Object.

Personally I'd be fine with just lowercasing all the things. Brendan, you cared 
about using capitalization for object types, though. What color is your 
bikeshed?

Dave

_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to