[swift-evolution] Proposal for Replacing Keyword "subscript" with "subs"

John McCall rjmccall at apple.com
Thu Dec 10 22:18:18 CST 2015


> On Dec 10, 2015, at 7:41 PM, Frederick Kellison-Linn via swift-evolution <swift-evolution at swift.org> wrote:
>> The language itself uses many abbreviations as its keywords. If you search for 'var' on web, for example, you won't easily find it stands for 'variable'. Does it mean it violates the guidelines?
> 
> 
> Actually, a Google search for just ‘var’ yields results pointing to JavaScript, C#, and HTML on the first page. A search for ‘init’ immediately describes the init process on Unix systems, as well as many other programming related results. Following any of these will let you understand the meaning of ‘init’ or ‘var’ pretty quickly. OTOH, ‘subs’ gives lots of results for sandwiches, but nothing programming related.
> 
> As a concert example of confusion that can arise, String implements subscript(), but ‘subs’ could just as easily stand for ‘substring’ in this context.

“var", “func", and “struct" are exceptions to the general rule because they’re so prominent; even novice Swift programmers will quickly learn these three concepts.  “subscript” is probably at least three orders of magnitude less common, and many programmers will not be immediately familiar with it, so it’s far more important to be clear than succinct.

John.

> 
> FKL
> 
>> On Dec 10, 2015, at 10:09 PM, Feijian Sun via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>> 
>> Thanks for your suggestion! 
>> 
>> But you're talking about the guidelines for Swift API Design while I'm proposing a keyword change in the language itself. I think they are not the same subjects.
>> 
>> 
>> 
>> 
>> 
>> From: sethfri at gmail.com <mailto:sethfri at gmail.com>
>> Date: Thu, 10 Dec 2015 18:58:45 -0800
>> Subject: Re: [swift-evolution] Proposal for Replacing Keyword "subscript" with "subs"
>> To: feijian_sun at hotmail.com <mailto:feijian_sun at hotmail.com>; jackl at apple.com <mailto:jackl at apple.com>
>> CC: swift-evolution at swift.org <mailto:swift-evolution at swift.org>
>> 
>> I encourage you to read the Swift API Design Guidelines <https://swift.org/documentation/api-design-guidelines.html>, as there are a couple of things there that discourage what you are suggesting:
>> "Clarity is more important than brevity. Although Swift code can be compact, it is a non-goal to enable the smallest possible code with the fewest characters. Brevity in Swift code, where it occurs, is a side-effect of the strong type system and features that naturally reduce boilerplate."
>> Avoid abbreviations. Abbreviations, especially non-standard ones, are effectively terms-of-art, because understanding depends on correctly translating them into their non-abbreviated forms.
>> The intended meaning for any abbreviation you use should be easily found by a web search.
>> Thanks,
>> Seth
>> 
>> On Thu, Dec 10, 2015 at 6:52 PM Feijian Sun via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>> Thank you for responding so late!
>> 
>> I agree with you that "subs" is not very obvious for subscript. While learning swift, I have a feeling that it contains so many long words as the keywords, such as
>> 
>> fallthrough, dynamicType, associativity, convenience, nonmutating, precedence, etc..
>> 
>> I understand there is a need for clarity. But I think it's also important to keep a concise and simple naming style where it's possible.
>> 
>> Thanks again.
>> 
>> Subject: Re: [swift-evolution] Proposal for Replacing Keyword "subscript" with "subs"
>> From: jackl at apple.com <mailto:jackl at apple.com>
>> Date: Thu, 10 Dec 2015 18:22:55 -0800
>> CC: swift-evolution at swift.org <mailto:swift-evolution at swift.org>
>> To: feijian_sun at hotmail.com <mailto:feijian_sun at hotmail.com>
>> 
>> 
>> It’s non-obvious to me that “subs” is short for subscript, whereas “init” and “func” have only one obvious expansion.
>> 
>> Jack 
>> On Dec 10, 2015, at 6:12 PM, Feijian Sun via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>> 
>> Hello, 
>> 
>> I have a proposal to replace the long keyword "subscript" with the shorter version, "subs". The idea is to keep the concise naming style on the language keywords, like "init" and "func".
>> 
>> So, Instead of:
>> 
>> subscript(index: Int) -> Int {
>>         ... ...
>> }
>> 
>> we could simply do:
>> 
>> subs(index: Int) -> Int{
>>         ... ...
>> }
>> 
>> Does this mean a big change on the parser side? what do you think?
>> 
>> Thank you!
>>  _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>
>>  _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>
>  _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20151210/33b123eb/attachment.html>


More information about the swift-evolution mailing list