On Sep 30, 2008, at 11:47 AM, Jim Weirich wrote:
> On Sep 30, 2008, at 2:27 AM, Ryan Davis wrote:
>> I think the main thing I've been learning from you and Dave is that  
>> your (collective) perception of miniunit is vastly different than  
>> mine.
>>
>> miniunit, in my mind, doesn't "masquerade" as test/unit... at  
>> least, no more than any duck typing "masquerades" as the thing it  
>> is being used as. It IS test/unit's mutated child and can be used  
>> in place of test/unit... I just think of it as test/unit 2.0... it  
>> maintains full backwards compatibility, for now, and later the  
>> deprecated stuff will drop off, making it even lighter/better/ 
>> happier.
>
> Sorry, "masquerade" carried more of a pejorative connotation than I  
> intended.  I meant nothing more than "Duck Typing" at a library level.
>
> I agreed with Dave ... the deprecated line noise is *highly*  
> annoying.  Especially in a project that I intend to remain  
> compatible with test/unit (for the moment at least).
>
> Can we:
>
> (a) Get a way of switching off the deprecation notices (perhaps a  
> command line switch),
>
> ... or ...
>
> (b) Reduce the deprecation notices to a single notice.  I'm thinking  
> that a notice after all the tests have run saying something along  
> the lines of "the following deprecated methods have been used ..."  
> would convey the same information but not make the test output so  
> visually appalling.
>
> Thanks for taking the burden of crafting a lighter, faster test  
> framework.

My experience with deprecating features from RubyGems leads me to  
believe that the only way to make people change their code is to be as  
visually appalling as possible.  I announced that require_gem would be  
removed in a reasonable amount of time and printed no warning  
messages.  Several months later require_gem added a warning, and  
people got rather upset.  Eventually I removed it altogether and  
people were up in arms about their software breaking.

I believe I would have had better luck printing out five lines of  
warning every time require_gem was used instead of just one.  Printing  
out only one line is not going to encourage many people to bring  
themselves up to date.  They'll just ignore the message and move on,  
then complain loudly once the feature is removed despite being told  
every day that they've been doing it wrong for several months.