<div dir="ltr"><div>Now that it appears that StringTemplates are evolving to a special introducer token, I hope it's also being recognized that they can then also change to support a syntax that is more friendly and common with other languages.  In particular, there would appear to be no need any more to require the backslash to introduce the values.  The backslash can now be reversed and offered to escape the open brace when it's desired as a literal.</div><div><br></div><div>To get the result: The value of foo is 42.<br></div><div><div>Go from:</div><div>  STR."The value of \{name} is \{value}.";</div>to</div><div>  $"The value of {name} is {value}.";</div><div><br></div><div><div>and to get the result: The value of {foo} is {42}.<br></div></div><div>Go from:</div><div>  STR."The value of {\{name}} is {\{value}}";</div><div></div><div>to:</div><div>  $"The value of \{{name}} is \{{value}}";</div><div><br></div><div>I'd also propose that you could use a keyword token instead of the $ without causing too much grief.  This would have the benefit of looking like a name, and allowing for future evolution in a direction where you might want something additional and don't want to find an additional punctuation character.</div><div><br></div><div>So, where ST stands for StringTemplate a string template could look like:</div><div>  ST."The value of {name} is {value}.";</div></div>