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.

Reply via email to