On Saturday, 15 April 2017 at 20:20:49 UTC, Stanislav Blinov
wrote:
On Saturday, 15 April 2017 at 20:12:41 UTC, cym13 wrote:
On Saturday, 15 April 2017 at 20:04:13 UTC, Jonas Drewsen
wrote:
This has been proposed before, and I still don't see the added
value compared to:
auto a=7;
writeln(a, " times 3 is ", a*3);
besides adding compiler complexity, language complexity and
parsing complexity which leaves room for more bugs to be
invented. I'm a bit more harsh than I could be, but if this
simple question has no clear answer I don't see why it sould
make it into the language.
Try a different context:
auto a = 7;
import std.format;
auto str = format("%s times 3 is %s", a, a*3);
//or
import std.conv;
auto str = text(a, " times 3 is ", a*3);
//or
auto str = $"{a} times 3 is {a*3}";
Yes this is a very basic lowering. The value comes from the fact
(assumption?) that this pattern of constructing a string from a
mix of strings and expressions is very common. The value of a
feature could be described as
usage * productivity_improvement = feature_value
So while the productivity_improvement may be modest the usage is
high enough to give a high feature_value and justify the
addition. A sign of this is the number of other popular languages
supporting this feature (not arguing for just copy other
languages but it is still an indicator). Unfortunately I have no
hard data for these numbers.