> On 6 Apr 2017, at 22:34, Haravikk via swift-evolution > <swift-evolution@swift.org> wrote: > > >> On 6 Apr 2017, at 20:35, Joe Groff via swift-evolution >> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote: >> >> • What is your evaluation of the proposal? > > I'm a -1 for several reasons, mostly subjective but still. First thing is > that I'm generally not comfortable with encouraging the use of multi-line > strings at all. These are things that usually should be templated or > localised, and personally I don't see what's inconvenient about concatenating > on those occasions where you can't (or just don't want to); I'm actually of > the opinion that this is the kind of thing that should be awkward and > annoying, to encourage developers to think about what they're doing.
IMHO, there are plenty of uses for multi-line strings that are entire valid and acceptable. SQL queries is the example I encounter the most in my day-to-day work. And concatenating makes working with them very cumbersome. > My second issue really is that, if the aim is simply to indent your > multi-line string more nicely, then is this actually something that the > language has to solve? I know we don't like to consider proposals purely from > the perspective of what an IDE may, or may not, do, but this seems like a > case where a good IDE could take: > > let foo = "This is my > multi-line > text" > > And display it visually to look like: > > let foo = "This is my > multi-line > text" > > This is basically what Xcode does for line-wrapped text right now. While it > would mean people using more basic editors would still see the original, it's > not really like that's a major problem. > > Another alternative might be a compiler directive that is more explicit about > what you want to do, for example: > > let foo = #trimleft(" > This is my > multi-line > text > ") > > Here the directive would look at the text as a whole and see that all lines > are indented by at least one tab, and so strip one tab from each line. > There's probably a better name for the directive, but hopefully you hopefully > get the idea, as this is much more explicit about what you want to do. > > Also, one thing that really stands out with the proposal is how unwise the > example is; the fact that the assertion relies on leading whitespace being > stripped from the multi-line HTML makes it clear why things like this may not > be a good idea, as if the code is edited to produce indented HTML then the > assertion will fail, even if the HTML is still correct. The continuation > quotes example makes this more obvious as it actually include some of the > whitespace, so which is correct? > > I don't want to seem too negative, I just think that whitespace stripping > multi-line strings are a weird thing to want in a language. If an easier > multi-line syntax has to be added then my preference would be for the > alternative continuation quotes personally, as it's more explicit about what > is included, though I still say there's nothing wrong with just doing the > concatenation and newline characters IMO, as it's fully supported today and > not really that much more burdensome to do (and it being a bit more difficult > may be a good thing, as I say). > >> • Is the problem being addressed significant enough to warrant a change >> to Swift? > > Not really. We can already do multi-line by either putting newlines inside > quotes and leaving out indentation, or by concatenating lines terminated with > the new-line character. IMO these two existing options are enough as it is. > >> • Does this proposal fit well with the feel and direction of Swift? > > I'm not sure; in terms of simplicity I think that adding new syntax for > multi-line strings is an unnecessary added complexity and something else to > learn, and doesn't enable anything we can't already do fairly easily. > >> • If you have used other languages or libraries with a similar feature, >> how do you feel that this proposal compares to those? > > All of the proposed syntaxes are present in various languages, I've used many > of them, and I know from my own bad habits that 99% of the time I shouldn't > have 😏 > >> • How much effort did you put into your review? A glance, a quick >> reading, or an in-depth study? > > Followed the discussion and re-read the proposal. > _______________________________________________ > swift-evolution mailing list > swift-evolution@swift.org > https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution