|There's more than one way to do things|
GUI and standalone Perl - can we build a new FAQ please?by Cody Pendant (Prior)
|on Sep 05, 2005 at 06:09 UTC||Need Help??|
Cody Pendant has asked for the
wisdom of the Perl Monks concerning the following question:
There have been various questions here, and on mailings lists I see, about creating GUIs for Perl scripts and also about creating standalone applications from Perl scripts.
There's an FAQ here but it's old and only about Windows as far as I can see. I've been trying to figure out the options myself and there are quite a few, although some of them are better documented than others.
I was thinking we should try and put together a new FAQ, or even just a table of the options, which platforms they run on, their licences, their requirements, their level of complexity, whether there's a graphic interface builder, the estimated size of the files they produce and of course, monks' comments.
Perhaps I mean two tables? Because providing a GUI for a script which runs on someone's Perl system isn't the same thing as creating a standalone executable, and presumably, if one wants a standalone executable, one creates a script with a GUI, then packages it.
So on the GUI side, there's Wx, there's Tk, there's Win::GUI, but there are a couple of things for OS X, for instance Platypus and Pashua which non-Mac people probably don't know about.
On the standalone side, there's perl2exe, there's App::Packer, there's PAR, or rather pp which comes with it (because there's a sub-category there, the packager that removes dependency worries but still requires Perl), there's ActiveState's PerlApp, there's CamelBones -- have I missed anything? DropScript for OSX might count?
This whole field is a bit of a mystery to me, and a good FAQ would be very useful. I've got a relatively simple script, which I would like to package for both OS X and Windows, and all it needs is a URL field, a "Go" button and a progress bar, but creating such a thing has proven remarkably difficult.
($_='kkvvttuu bbooppuuiiffss qqffssmm iibbddllffss')