[swift-evolution] [Pitch] Extending Swift Literals

Xiaodi Wu xiaodi.wu at gmail.com
Mon Jul 11 01:01:35 CDT 2016


Ah. Now I see the use case. I'd counter, however, that these are weaknesses
of the respective frameworks, and that literals as you propose them are
rather like a thin version (in the motivating problem it's trying to solve)
of the longed-for UXKit that'll supposedly unify all.

Even if we have these proposed literals, the various Apple-proprietary
frameworks would have to be modified to accept them (to be expressible by
them, in the new parlance). We could equally well appeal for the frameworks
to be modified so that NS* types and UI* types play nicely together,
without providing these pan-Swift facilities. Server code, for instance,
could have little need for a font literal.

On Mon, Jul 11, 2016 at 00:53 Erica Sadun via swift-evolution <
swift-evolution at swift.org> wrote:

> On Jul 10, 2016, at 11:43 PM, Zach Waldowski via swift-evolution <
> swift-evolution at swift.org> wrote:
>
>
> I share the concern with others about the usefulness of these, but I also
> like your note about standardizing syntax, and really like that these merge
> together all the different syntaxes for literals we've seen.
>
>
> Literals enable you to write cross platform code with a minimum of
> redundant and platform-configured code.
>
> In today's Swift, you can say:   let myColor = color literal and that code
> is
> cross-compatible for all Apple platforms, whether UIColor, NSColor, and
> SKColor.
> If you write that same request as let myColor = UIColor(...), it will no
> longer
> compile on Cocoa.
>
> I'm proposing to extend these existing behaviors to create common code
> inherently
> universal tasks with common structure: NSFont/UIFont,
> point2/CGPoint/NSPoint, etc
>
> To that end, I'd like to modestly suggest that #literal.foo (as already
> written in the proposal) should be the canonical form of a literal in
> source text, whereas #foo is the one you see used in the code editor.
>
>
> I've already filed radars asking that the code editor let you see the raw
> unrendered literals
> and heartily encourage duped radars to support that end.
>
> I'm not a fan of namespacing in #literal, because every literal should
> obviously be a literal; I wouldn't ever recommend numerals fall under this
> proposal as written, for instance.
>
>
> The core team has suggested they'd like to use namespacing, especially
> with related
> items that could otherwise spread and grow in an unmanaged way.
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160711/11d72a9b/attachment.html>


More information about the swift-evolution mailing list