[swift-evolution] Making `.self` After `Type` Optional

Joe Groff jgroff at apple.com
Fri May 6 09:13:20 CDT 2016

> On May 6, 2016, at 12:04 AM, David Hart <david at hartbit.com> wrote:
> I understand why the alternative of changing the generic type parameter list symbols was rejected, to be consistent with other C based languages, but I don't understand why the following was rejected:
> 	• making the UppercaseTypes, lowercaseValues convention a syntactic requirement, as is done in ML and Haskell.
> I see that as a good viable alternative.

The challenges with making that work include:

- Deciding what to do with imported C APIs. Core Foundation uses CFUppercaseEverything, and POSIX prefers snake_case_t and snake_case_functions. In the early days, we were shy about transforming imported APIs at all, but we've obviously gotten more comfortable with it as Swift's established itself and its own conventions have emerged.
- Providing an alternative for non-Latin scripts that don't differentiate case, such as Arabic and Chinese (and, somewhat related, deciding whether non-letter identifier characters like emoji are "value" or "type" characters).


More information about the swift-evolution mailing list