String reboot - (1a) incidental whitespace
Jim Laskey
james.laskey at oracle.com
Wed Apr 17 12:55:58 UTC 2019
To paraphrase McLuhan, I think that we need to keep the focus on the rider and not the horse they rode in on. This was the main reason I pushed for backtick over triple double quote; making it about the content and not the syntax around it.
In the Raw String Literal round, I suggested that
String query = ```````````````````````````````````````````````
SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`
WHERE `CITY` = ‘INDIANAPOLIS'
ORDER BY `EMP_ID`, `LAST_NAME`;
```````````````````````````````````````````````;
might freak out some developers.
If you break this example down, the multiple quotes are not really for the language, but instead for the eye of the beholder. Alignment wise, all the language cares about is the first character of each of the delimiters. The last character can be derived from the longest line based on end of line. So this reduces down to
String query = ``
SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`
WHERE `CITY` = ‘INDIANAPOLIS'
ORDER BY `EMP_ID`, `LAST_NAME`;
``; // need `` because of the enclosed backticks
or in the fat delimiter world
String query = """
SELECT `EMP_ID`, `LAST_NAME` FROM `EMPLOYEE_TB`
WHERE `CITY` = ‘INDIANAPOLIS'
ORDER BY `EMP_ID`, `LAST_NAME`;
""";
In the incidental whitespace discussion, this aligns with closing delimiter influencing indentation. Brian and I have been of four minds on this, where I tend to favour closing delimiter influence and Brian tends otherwise. My strongest argument thus far has been, "Swift does it."
As you point out, management of literal boxing is nightmarish and heavily reliant on IDE support, and I feel strongly that is a problem. I'm in and out of BBEdit , VSC, Atom, and Coda as much as I am in Intellij. The IDE answer doesn't work for me, and may not for (many?) others. What I do see is an IDE putting a light gray box or a different background colour to highlight the "auto aligned" string content.
Bottom line, closing delimiter influencing indentation provides the same information as boxing with less hassle.
Cheers,
-- Jim
> On Apr 16, 2019, at 5:14 PM, Guy Steele <guy.steele at oracle.com> wrote:
>
>
>> On Apr 16, 2019, at 4:02 PM, Brian Goetz <brian.goetz at oracle.com <mailto:brian.goetz at oracle.com>> wrote:
>>
>> Indeed, it does solve a number of "figure out what was the user thinking" questions.
>>
>> You hit the nail on the head regarding IDE support. Our original thinking was that it should be easy to cut and paste between a (say) JSON document and a Java source program, without having to mangle it up in an annoying and error-prone way.
>>
>> I think what you're saying is, in the age of IDEs, that this is not such a problem, and we should focus on what yields the most _readable_ code, on the theory that writing is the job of the IDE?
>
> Yes, exactly. Though, as I pointed out in my subsequent message, it’s easy to give the programmer a choice between a quick-and-easy way to cut-and-paste that is easy to write, and a more labor-intensive or IDE-intensive version that may be easier to read (at least in some situations).
>
> At least we should explore such options.
>
> —Guy
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/amber-spec-experts/attachments/20190417/ba492f34/attachment.html>
More information about the amber-spec-experts
mailing list