<div dir="ltr">I agree lower ALL the cases is a win ... also because `boolean`, `string`, and `object`, aren't reserved words while function obviously is so with current proposal where `object` means `function` too and `any` includes null there's nothing ambiguous and less to bother about references.</div>
<div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Aug 21, 2013 at 5:02 PM, David Herman <span dir="ltr"><<a href="mailto:dherman@mozilla.com" target="_blank">dherman@mozilla.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On Aug 21, 2013, at 2:36 PM, Brendan Eich <<a href="mailto:brendan@mozilla.com">brendan@mozilla.com</a>> wrote:<br>

<br>
> David Herman wrote:<br>
>> Any, String and Object should still be uppercase. The naming convention is: value types lowercase, reference types uppercase.<br>
><br>
> 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.<br>

<br>
</div>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.<br>

<br>
I take your point that it's confusing on the primitive/object axis, though.<br>
<br>
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.<br>

<br>
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?<br>
<div class="HOEnZb"><div class="h5"><br>
Dave<br>
<br>
_______________________________________________<br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org">es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/es-discuss" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
</div></div></blockquote></div><br></div>