Shlomi Fish writes: > On Wednesday 02 November 2005 08:23, Michael G Schwern wrote: > > > Given that the existing interface is pretty simple, I really don't > > see why one has to completely fork the code base just to put on a > > new interface. Surely any new code with a fancy new interface can > > continue to emulate the old one. > > Well, here is my beef with it: > > 1. It's not an object ... > 2. In Test::Harness : > my($tot, $failedtests) = _run_all_tests(@tests); > _show_results($tot, $failedtests); > my $ok = _all_ok($tot); > Vs. mine: > my($failedtests) = > $self->_run_all_tests(); > $self->_show_results(); > my $ok = $self->_all_ok(); > 3. Various functions return flat hashes instead of hash references. > 4. Many things are accessed by a field ($ref->{'field'}) instead of by > accessor ($ref->field()). > 5. Various global variables instead of instance variables.
Those show why your interface is better, which isn't being disputed. But it isn't directly addressing why some kind of emulation layer can't be provided -- so that somebody can call a function using the old, bad interface, but internally that function just creates a 'default' object and then uses your nice new shiny interface. Of course it won't be possible as a user to do as much like that compared with using your interface properly -- but that's OK, so long as existing uses are supported. The idea is that new code should be written to use your interface, but existing code can be shoehorned into working with it somehow. > 6. I had done a lot of refactoring and revamp and broke a lot of the > interface. Sure; that's quite reasonable. But again, it doesn't preclude compatibility now being added. Best wishes Smylers -- May God bless us with enough foolishness to believe that we can make a difference in this world, so that we can do what others claim cannot be done.