On Fri, 14 May 2010, Michael Carman wrote:
> Please don't. There are already three ways to use Tk from Perl. Adding a
> fourth is not desirable. Like it or not, Tk is competing for mindshare
> with Wx, Qt, Win32::GUI, etc. Fragmenting the Tk user base would be bad.
> Creating (more) confusion about which flavor of Tk bindings to use
> should be avoided.
> 
> I thought that Tcl::Tk had started as a proof-of-concept that Perl/Tk
> API compatibility was possible so I'm a little surprised to hear Vadim
> rejecting that idea now. Personally, I'd like to see Perl/Tk
> compatibility happen, although I'd understand if some of the crustier
> corners like Tix didn't make it in. Sometimes you have to sacrifice
> backward compatibility to keep moving forward.

FWIW, I agree with all the points here.  I too would prefer that Tcl::Tk
becomes as much as possible a Perl/Tk drop-in replacement.  But since
Vadim disagrees, I don't think there are many options left beyond
forking Tcl::Tk to another namespace. :(
 
> Just for the sake of argument I'll throw out a couple of ideas. I'm not
> sure if either is practical.
> 
>   1) Make John's changes available as a plug-in to Tcl::Tk,
>      e.g. Tcl::Tk::Compat.

I don't see how this is any different from John's suggestion of creating
a Tcl::pTk.  It also has the disadvantage of tying the new module too
closely to Tcl::Tk.  This will just continue to slow down the evolution
of the Perl/Tk compatibility.

>   2) Usurp Perl/Tk. Release John's work as Tk version 805.

I don't think this would be acceptable, especially as long as there are
still people willing to maintain the old Perl/Tk stuff at some level.
 
> I'm guessing that John's work requires changes to Tcl/Tk.pm, so the
> first option may not be feasible. The second option is more drastic and
> would require coordination with Slaven (and whoever else is applying
> patches to Tk). Given that Perl/Tk is maintenance only at this point and
> John's goal is to provide the same API, it would make more sense to call
> it a new version of Tk (with an all-new implementation) than to create a
> parallel distribution.

Unless you can provide almost universal backwards compatibility it is
better to use a new namespace.  At least until the package can be installed
automatically from CPAN without requiring manual preparation of a local
Tcl install.

The obvious namespace for a new/extended/incompatible implementation
for Tk would be Tkx, but that is already taken...  It is not clear to
me that the new name has to be under the Tcl:: namespace; a top level
namespace might still be appropriate.  Maybe Tk2::, similar to
Apache:: and Apache2::.

Cheers,
-Jan


Reply via email to