Project

General

Profile

Feature #2709

Updated by nahi (Hiroshi Nakamura) over 10 years ago

=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 
 

Back