From: mame@... Date: 2017-10-22T13:08:19+00:00 Subject: [ruby-core:83504] [Ruby trunk Feature#2709] $VERBOSE, $DEBUG and Kernel#sprintf Issue #2709 has been updated by mame (Yusuke Endoh). Closing this because of no discussion for five years. Shyouhei-san or anyone, feel free to reopen and facilitate the discussion if you still have an interest. ---------------------------------------- Feature #2709: $VERBOSE, $DEBUG and Kernel#sprintf https://bugs.ruby-lang.org/issues/2709#change-67520 * Author: paddor (Patrik Wenger) * Status: Assigned * Priority: Normal * Assignee: shyouhei (Shyouhei Urabe) * Target version: Next Major ---------------------------------------- =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 -- https://bugs.ruby-lang.org/ Unsubscribe: