Issue #2709 has been updated by nahi.

Description updated
Assignee set to shyouhei


----------------------------------------
Feature #2709: $VERBOSE, $DEBUG and Kernel#sprintf
https://bugs.ruby-lang.org/issues/2709#change-24704

Author: paddor
Status: Open
Priority: Low
Assignee: shyouhei
Category: core
Target version: 2.0.0


=begin
 Kernel#sprintf is very useful. I think the power lies within the ignorance of too many arguments. So one is free to decide which arguments he uses and which one he doesn't. This applies to a Ruby runtime where $VERBOSE and $DEBUG are false.
 
 Following the POLS (Principle of the least surprise), one would assume that changing the variables $VERBOSE and $DEBUG wouldn't change the behavior of Kernel#sprintf. But they do.
 
 $VERBOSE causes warnings when there are too many arguments.
 $DEBUG causes an ArgumentError when there are too many arguments. This isn't useful at all.
 
 I like the effect of $DEBUG according to threads, to raise uncaught exceptions from the thread.
 But in the case of Kernel#sprintf, it's just not useful. This behavior prohibits some power of Ruby.
 
 My suggestion:
 Remove the special behavior of $VERBOSE and $DEBUG in Kernel#sprintf.
 
 Thank you very much.
=end



-- 
http://bugs.ruby-lang.org/