On Tuesday, 26 April 2016 at 08:50:23 UTC, ixid wrote:
On Tuesday, 26 April 2016 at 03:13:22 UTC, Jonathan M Davis
wrote:
On Tuesday, April 26, 2016 01:44:07 Jack Stouffer via
Digitalmars-d wrote:
On Monday, 25 April 2016 at 19:35:04 UTC, Andrei Alexandrescu
wrote:
> https://github.com/dlang/phobos/pull/3971
I really don't see the utility of the function over writefln
being great enough to warrant inclusion. I'd vote not to
include it.
I concur. IMHO, it doesn't add enough value to be worth it,
and given that it adds yet another printing function, it'll
increase confusion with newcomers.
- Jonathan M Davis
Please find an example of a newcomer who would be confused by
print. This is an objectionable argument because none of the
people making it are newcomers, you're using an entirely
theoretical newcomer as your argument, and seem to think
'print(a, b, c);' is going to confuse people more than
'writefln("%s %s %s", a, b, c);' which is ridiculous.
Print function names are hardly pristine snow of simplicity
that 'print' is going to muddy. What do you think goes through
a newcomer's mind when they see 'writefln'? For the vast
majority it's almost certainly not 'write formatted line', it's
'write wagarble' and they'll forget wagarble next time they
want to use it.
Print is incredibly simple and a low barrier to entry. When
people need more complexity they can read up on other
functions. You barely need to read anything to use print and
you don't need to recheck the documents for using it the second
time. Most users will find functions like writefln a bit
nightmarish when they just want the program to do the most
basic thing to interact with it in the first place. This has
been further compounded by some of the alternative suggestions
where people immediately suggest turning it into a template
function etc.
Yes, you could sugar up everything and turn the language into
an unmaintainable mess, it's a question of effort vs reward.
Barring main, printing something is likely the most commonly
used function and this covers 90% of what people use it for in
the simplest and easiest way. People fall into using languages
because they're elegant, powerful and easy to use. Suddenly all
the little code examples people will be exposed to are that
much clearer and more elegant. The benefit is far greater than
the cost.
It's not print itself that is likely to confuse a newcommer, you
seem to forget that there is a whole programming language and
ecosystem around it.
The first questions I expect are "when should I use print and
when use writeln?" for they share a common role with common
features.
The second thing is that it will only make it harder for them to
read other's code: having one way (although not perfect) to do
things helps maintaining coherence accross any codebase.
Multiplication of functions to do the same things with only a
slight change brings only disarray.
Finally it doesn't bring much. One learns writeln, laments a bit
that it doesn't put spaces itself then just accepts it. I do
think that easing the path of newcommers is important, I don't
think print is a good way to do that. I'm all with J.M.D there.