Re: Professional IDE for a cross-platform Perl application
- From: "Bob" <catdogbeloved@xxxxxxxxx>
- Date: 30 Jun 2006 00:50:30 -0700
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
.
- Follow-Ups:
- Re: Professional IDE for a cross-platform Perl application
- From: Tad McClellan
- Re: Professional IDE for a cross-platform Perl application
- References:
- Professional IDE for a cross-platform Perl application
- From: Bob
- Re: Professional IDE for a cross-platform Perl application
- From: Ala Qumsieh
- Professional IDE for a cross-platform Perl application
- Prev by Date: Re: accessing object variables from callback function
- Next by Date: Re: Professional IDE for a cross-platform Perl application
- Previous by thread: Re: Professional IDE for a cross-platform Perl application
- Next by thread: Re: Professional IDE for a cross-platform Perl application
- Index(es):
Relevant Pages
|