Found it: 
https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20160620/021548.html
 
<https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20160620/021548.html>

Saagar Jha

> On Jan 20, 2017, at 4:10 AM, Charlie Monroe via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
>> 
>> On Jan 20, 2017, at 12:55 PM, Maxim Veksler via swift-evolution 
>> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
>> 
>> Please see discussion inline.
>> 
>> On Fri, Jan 20, 2017 at 1:09 PM Jeremy Pereira 
>> <jeremy.j.pere...@googlemail.com <mailto:jeremy.j.pere...@googlemail.com>> 
>> wrote:
>> 
>> > On 20 Jan 2017, at 10:30, Maxim Veksler via swift-evolution 
>> > <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
>> >
>> > One ask - make string interpolation great again?
>> >
>> > Taking from examples supplied at 
>> > https://github.com/apple/swift/blob/master/docs/StringManifesto.md#string-interpolation
>> >  
>> > <https://github.com/apple/swift/blob/master/docs/StringManifesto.md#string-interpolation>
>> >
>> > "Column 1: \(n.format(radix:16, width:8)) *** \(message)"
>> >
>> > Why not use:
>> >
>> > "Column 1: ${n.format(radix:16, width:8)} *** $message"
>> >
>> > Which for my preference makes the syntax feel more readable, avoids the 
>> > "double ))" in terms of string interpolation termination and function 
>> > termination points. And if that's not enough brings the "feel" of the 
>> > language to be scriptable in nature common in bash, sh, zsh and co.. 
>> > scripting interpreters and has been adopted as part of ES6 interpolation 
>> > syntax[1].
>> >
>> 
>> This idea came up once before on Swift Evo. The arguments against are:
>> 
>> 1. Swift already has an “escape” character for inserting non literal stuff 
>> into strings - the “\” character. Either you have two - increasing 
>> complexity for both the developer and the Swift compiler’s tokeniser - or 
>> you have to change everything that uses “\” to use $ e.g. $t $n instead of 
>> \t \n.
>> 
>> 
>> I would claim that this serves as an reinforcement of making the 
>> distinctions. "\t" is not the same behavior as "\(someVariable)" both 
>> conceptually - I think there is a clear distinction between inserting a 
>> "constant symbol" to inserting "the string content of a variable" and 
>> semantically - While you would use \t to insert a tab you are mandated by 
>> the semantics to use \( .. ) to insert the contents of a variable.
> 
> Hi Maxim,
> 
> there was quite a discussion on this matter a few months ago - I can't find 
> the thread right now, but the consensus of majority here seemed to be that 
> the current status is desirable by most and that it contains some unified 
> philosophy over anything that will "not print as typed". I believe that this 
> is something that has been discussed here several times - keep in mind Swift 
> 4 is supposed to be as much backward compatible as possible with breaking 
> changes requiring severe justification - there is unlikely to be one for this 
> other than "I like it better this way".
> 
>>  
>> 2. The dollar sign is a disastrous symbol to use for an special character, 
>> especially in the USA where it is commonly used to signify the local 
>> currency. Yes, I know it is used for interpolation in Perl, Shell and 
>> Javascript and others,  but “this other language I like does X, therefore 
>> Swift should do X” is not a good argument.
>> 
>> 
>> Please name concrete examples? I would believe that the case for 
>> $variableName to be rare enough to justify expecting the developer to make 
>> an escape claim with \$variableName, likewise for ${variableName}, if 
>> expected output is plain text I wouldn't imagine this "\$\{variableName\}" 
>> to be a far reaching expectation.
>> 
>> The use of $ symbol is more reaching[1], and is being adopted constantly as 
>> the selected patten for even recent developments as Facebook's GraphQL query 
>> syntax[2] which to the best of my knowledge was invented in US. 
>> 
>> 3. There is already quite a lot of code that uses \( … ) for interpolation, 
>> this would be a massive breaking change.
>> 
>> 
>> True, but going forward that would enable a "better readable" code for 
>> larger number of users. Additionally I would suggest that automatic 
>> conversion using Swift Migration Assistant should be possible.
>> 
>> 
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution@swift.org <mailto:swift-evolution@swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-evolution
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org <mailto:swift-evolution@swift.org>
> https://lists.swift.org/mailman/listinfo/swift-evolution 
> <https://lists.swift.org/mailman/listinfo/swift-evolution>
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to