Re: Professional IDE for a cross-platform Perl application



Re: Ala Qumsieh

Hmm .. I don't think Perl/Tk is 15 years old, but I digress :)

The first version was written in a DOS-based database. The
unix-based perl/tk version is the latest of ports. The former
was perl/cgi running under a web browser.

- the client is not compiled, and thus runs slowly;

Compiling won't speed it up. You have to look at where your client is
spending most of its time, and optimize that code.

I profiled it, but is a complex client. I am thinking about converting
the main routines into C, and use them as libraries.

- the client must now run also on osx and windows, natively;

Perl is cross-platform for the most part. So unless you hard-code
linux-specific stuff, or you use platform-dependent modules, your code
should run fine on other platforms.

The application uses linux-specific features, such as the use of the
shell
to trigger other languages and routines. Perl is sweet when
prototyping,
but there comes a time when one must tie all strings together.

- the client's tk-based gui is limited, but I have no clue about
cross-platform alternatives;

Tk runs on most, if not all, platforms that Perl runs on. It certainly runs
well on windows, *nix and OSX. No need for alternatives.

I need the client to be compiled.

- each time I try to port it to windows or osx I get missing components
and misbehaviours.

First thing, I guess, is to install any missing modules. What kind of
misbehaviours are you seeing?

Missing modules, yes. I cannot install cygwin and the whole world of
linux-like utilties and libraries into a machine that is now my own,
and
I cannot even ask people to install it by themselves, because it takes
time and skill they do not have. It is hard enough to run it in linux,
as
I have to keep it up with things breaking at package updates.

How do I reshape the client so that I can develop it in one machine and
generate reliable and installable executables for other platforms?

make sure you don't use any platform-specific code, unless you have to. If
you do, then make sure you isolate the code, using something like
(untested):

BEGIN {
if ($^O =~ /win/i) {
require Win32::Specific::Module;
} elsif ($^O eq 'linux') {
require Linux::Specific::Module;
}
}

Yes, thank you, but we are off road.

Bob

.



Relevant Pages

  • Re: For the Windoze haters - VS2005
    ... I must say that the install process had me cursing. ... many platforms and embedded) I would have to ... first time produced a GUI that even the GUI developers were impressed ... by (of course not a fully functioning app), and I am not a GUI ...
    (sci.electronics.design)
  • Re: How to upgrade to 8.5?
    ... not possible to install it machine by machine. ... I would need all necessary packages for all platforms in one image (i. ... a software deployment system. ...
    (comp.lang.tcl)
  • Re: Free VMware?
    ... > emulator for 386-compatibles, which runs on various platforms. ... enough for what I've been using it for which is testing install scripts. ... I've just installed the eval version of VMware and it is _far_ faster ...
    (comp.os.linux.misc)
  • Re: Suggestions for cross-platform encryption?
    ... > moving between machines and platforms, and generally can't install ... What I would like is a symmetric encryption utility that is: ... the opinions expressed in this opinion do not necessarily ...
    (alt.computer.security)