Perl/Tk

Christopher Chavez chrischavez at gmx.us
Thu Mar 7 15:08:27 UTC 2019


(I've only been using digests up to this point, so this probably won't 
end up in the right thread.)


Hi Dave,

I recently took up maintaining Tcl::pTk and its port in MacPorts 
(p5-tcl-ptk, and related ones p5-tcl-tk and p5-tkx). Despite this, I do 
not consider myself an expert on Perl nor Tk.

To clarify, there is no `p5-tkk` port, it's probably a misspelling.

What Mojca said is correct: Perl/Tk never made it onto the native macOS 
"Aqua" UI, and still requires XQuartz. Based on what the current Perl/Tk 
maintainer has said, it would be a lot of effort to get it working on 
Aqua, so to answer your question, it's unlikely anyone is working on it. 
A few upstream reports for this: 
https://github.com/eserte/perl-tk/issues/7 and 
https://github.com/eserte/perl-tk/issues/24

I agree that some of the Q&A out there on this topic is unsatisfactory 
and outdated, so a few days ago I posted my own answer to StackOverflow: 
https://stackoverflow.com/questions/1249186/should-i-use-perl-tk-tcltk-or-tkx-for-a-perl-gui/54897792#54897792

The Perl/Tk port (p5-tk), from what I've tried it with, seems to work 
about well as it does on other platforms (e.g. Linux). If you expect any 
examples out of _Mastering Perl/Tk_ etc. to work on the first try, then 
I think that would be what to use.

However, if you want to use the native Aqua UI, then you might want to 
give one of the "wrapper" modules a try. These wrappers require an 
actual Tcl/Tk installation (i.e. the wrapper ports depend on the tk 
port); whenever a new Tcl/Tk is released, the wrappers will usually keep 
working as-is, which does give the impression of them being 
undermaintained. Contrast with Perl/Tk's philosophy of putting 
everything from Tk (plus extensions and modifications) into a single 
Perl module, with no dependency on a separate Tcl/Tk installation, but 
as a consequence has fallen far behind Tcl/Tk.

Specifically, you might try Tcl::Tk, a lightweight wrapper with 
Perl/Tk-like syntax; or Tcl::pTk, which is based on Tcl::Tk but is more 
intended for providing compatibility with existing Perl/Tk programs. I'm 
not sure which of the two to recommend for someone not familiar with 
Perl/Tk; it likely depends how much of Perl/Tk beyond the most common or 
basic features are to be used. For someone completely new to Tk, or is 
familiar with Tcl/Tk or wrappers for other programming languages (e.g. 
Tkinter for Python), or following the tutorials at TkDocs.com, I might 
suggest Tkx despite its dormancy.

You're welcome to join the mailing list tcltk at perl dot org if you 
have questions with using any of the wrappers. Of the few active users 
I've heard from recently, it turns out many of them are also using 
Tcl::pTk to run existing Perl/Tk programs on macOS Aqua.

If you do try Tcl::pTk, there's a good chance it will break on the first 
try, but the effort of finding any workarounds hopefully is smaller than 
rewriting a whole program in Tkx or Tcl/Tk. There are also certain 
features that Tcl::pTk unfortunately will "never" provide. Seeing what 
happens when running Perl/Tk programs out there under Tcl::pTk helps 
find where it needs improvement, so any issue reports are appreciated.

Christopher A. Chavez


---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus



More information about the macports-users mailing list