On 30/09/2019 16:59, Brian Goetz wrote:
One is pedagogical; I think a world where single line strings are denoted by a 
single double quote, whereas multi line strings are denoted by triple double 
quotes is a relatively wimple world for the user to grok. This proposal 
effectively blurs the line between the two variants, as now you can (in the 
degenerate case where all lines in a text block ends with '\') express a single 
line string with a text block syntax - which I understand is the part of the 
goal, but…
In some sense, the line was already blurry, because existing “single line 
strings” could have embedded \n newlines in them.  IMO a better pedagogical 
model is “one dimensional vs two dimensional” string literals, but this may be 
a hard sell.

In a world without \n, I think it would still be pedagogically simple: a “legacy” 
string literal is a single line of OUTPUT, and a text block can have multiple lines 
of output.  The presense of \<nl> merely changes how the _input_ is organized.

My conclusion is that, while the clamoring that inspired us to do this feature 
is “give us multi-line strings”, to the extent we continue to call them 
multi-line strings, we play into this confusion.



I don't disagree, but JEP 355 starts off with:

```
Add /text blocks/ to the Java language. A text block is a multi-line string literal that avoids the need for most escape sequences, automatically formats the string in a predictable way, and gives the developer control over format when desired. This is a preview language feature <https://openjdk.java.net/jeps/12> in JDK 13.
```

Now, I get the subtle distinction between multi-line in the source and multi-line in the result value - but it's subtle, and I think the JEP should at least be made clearer in that respect.

Maurizio

Reply via email to