PROPOSAL: Templated Construction Expressions (i.e., Expressions Embedded in Strings)

Per Bothner per at
Mon Mar 30 19:20:25 PDT 2009

On 03/30/2009 05:39 PM, John Rose wrote:
>> For Java, to extend the string syntax and emphasize that a new string
>> is being constructed, I recommend this:
>>    new "$foo, ${bar}s."

A big advantage of templated strings is that they lend themselves
nicely to Localization.  That is a big advantage over using
+ between strings.  We did this for JavaFX:

If you allow templated strings it is temping to also allow
multi-line templated strings, because then you have a nice
template engine for free.  If we allow multi-line strings
it seems a good idea to have distinct open and closing
string delimiters, to catch errors and help IDEs.  For example
(wild off-the-top-of-my-head idea) <" and ">

String x =
<"Name: $(name)
Address: $(address)">;

(The proposal to use """ for both open and closing delimiters
is very IDE-unfriendly.  Imagine trying to do syntax highlighting
and checking as the user is entering a program or makes a typo ...)

You'd mark a localized string with some extra marker, for example:

String x =
<~"Name: $(name)
Address: $(address)"~>;
	--Per Bothner
per at

More information about the coin-dev mailing list