Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot

Some pre-project questions

by Moron (Curate)
on Feb 22, 2007 at 16:02 UTC ( #601579=perlquestion: print w/replies, xml ) Need Help??
Moron has asked for the wisdom of the Perl Monks concerning the following question:

Hi, I am about to start a Perl project which raises a couple of questions beyond my experience.

The first is, suppose the main Perl functionality occurs on a (unix) server, but the servers could be inaccessible for practical purposes except via Windows boxes. So I need to have a Windows client that enables non-expert users to make configuration changes and browse the systems data on the server side. My nearest competitor uses a Java client for this purpose. It is unlikely I can use an intranet approach because some customers may not allow a webserver to run on the target machine. What is the best Perl way of creating a Windows GUI client for a Unix server? Can Perl/Tk be made pretty enough to compete with Java?

The second is, the end-product has to be sold rather than given away. Does that mean I can't publish ANY of it on CPAN? Does it mean I have to use PAR? Is there a way I could package the client and server software onto a single iso-disk with the intention being that the Windows installation process does the installation ALSO on the unix server?

Thanks in advance!


Free your mind

Replies are listed 'Best First'.
Re: Some pre-project questions
by jdporter (Canon) on Feb 22, 2007 at 16:15 UTC
Re: Some pre-project questions
by TGI (Parson) on Feb 22, 2007 at 21:29 UTC

    I'll second what zentara said. A perl based GUI can be attractive, easy to use, and easy to distribute.

    My employer distributes several windows applications based on Perl/Tk using ActiveState's perlapp. PAR works quite well, too. We decided to go with perlapp because it is (was?) faster on startup and very reasonably priced.

    While Perl/Tk has served me well, I will say that I've had my share of discontents with it. I've spent some time looking at Wx, Gtk2, Prima, Tcl:Tk and Tkx as potential migration paths for our apps. All of these options have promise, so I can't really say which I'd recommend for a new project.

    For me, the following things are important in a GUI library:

    • Readable documentation
    • Cross platform ( X11, Aqua, and Win32 )
    • Easily packageable with PAR or perlapp
    • Works with POE
    • Under active development

    Perl/Tk has the big advantage of being the reigning 'standard' for Perl GUI development. Will this be true in the future? I don't know. Perhaps someone with more knowledge of the various issues is willing to comment.

    If you don't care about X-Platform, you can also use Win32::GUI.

    If I was just starting with perl GUI, I'd probably go with Tcl::Tk or Tkx.

    If I were you, I'd try installing each of the different libraries I mentioned and running through the various tutorials. I'd look at the docs, and see if they make sense to me. I'd try packaging the tutorial apps with PAR. Based on these experiences, I'd make my decision. Oh, and if you do all that work, please post a meditation with your findings!

    TGI says moo

      Thanks, it's very useful to have such an answer as yours, being clearly based on actual experience of the kind of issues I am facing.


      Free your mind

Re: Some pre-project questions
by philcrow (Priest) on Feb 22, 2007 at 16:13 UTC
    You could use Inline::Java and/or Java::Swing (I wrote the later based on the former), if you wanted a Java Swing client.

    There are many other options. You mentioned Tk, but you could try using wxWindows which is meant to be cross platform. You could probably also use Gtk or Qt, I think they've been ported to windows.

    What you can put on CPAN depends on who is paying you for the work and what policy they set. We have open source infrastructure on CPAN, while keeping our actual apps completely proprietary (not that anyone would be interested in our idiosyncratic back office apps).


Re: Some pre-project questions
by zentara (Archbishop) on Feb 22, 2007 at 17:08 UTC
    Of course, I will recommend Tk. :-) Gtk2 is great too, but Tk is so easy to get installed on Windows with ActiveStatePerl, and it works well with Par, if you desire. Tk executable on non-perl machine

    As far as making it look good, it all depends on how much effort you want to put into it.

    I don't understand why you just can't use a cgi script and a web-browser. Maybe you need to provide more information? Are you able to run a server-side script for you to connect to? Or are you connecting via SSH? What sort of display do you envision? You can make the Tk::Canvas into just about anything you desire, and if you use Tk::Zinc, you can have alpha layers. (See the ex #7 in the OpenGL section of the "zinc-demos" program.

    Just remember that Tk is just for display and event-looping. The real logic is done by Perl behind the scenes. So concentrate first on how would I do this with plain Perl, then once you have that solved, the final step is to add the Tk gui.

    I'm not really a human, but I play one on earth. Cogito ergo sum a bum
      The issue is that I can't vend a website as a product for reasons I won't go into here -- but I can of course change my strategy so that more of the system is on my own rather than customer machines. At that point I can sanction a browser interface to the system but there will still be an interface to customer-proprietary data (such as configuration files, crontabs and system data they don't want to be stored outside their organisation...) that need to be managed from the desktop and I am certainly considering Tk as the GUI for the client/server interface for that.


      Free your mind

Re: Some pre-project questions
by dorward (Curate) on Feb 22, 2007 at 16:54 UTC
      Yes but as I said - I can't force every potential customer to put a web server on the type of target machine in question, owing to perceived (by them) security risks. Although, I am considering taking some functionality out to my own server (where I would want at least ftp and could certainly permit http protocol) and making the thing more service than product oriented - I am still in a brainstorming phase, although time to design is fast approaching..


      Free your mind

Re: Some pre-project questions
by moklevat (Priest) on Feb 22, 2007 at 17:41 UTC
    I may be missing some important detail of the implementation, but it sounds almost like something that could be handled through a Usermin module or modules. Would you be able to run stripped down webmin/usermin on the servers?
      Yes I can't publish all details at this stage. usermin does look interesting but I am not yet sure if it's right for this project or not - will have to advance the design phase further first, because that kind of decision is all or nothing for a project's use of it.


      Free your mind

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://601579]
Approved by Joost
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (5)
As of 2018-08-15 14:31 GMT
Find Nodes?
    Voting Booth?
    Asked to put a square peg in a round hole, I would:

    Results (161 votes). Check out past polls.