[REBOL] Widespread application deployment
From: sunandadh:aol at: 17-Jan-2003 8:57
In a different thread ( Re: ANN: rebol-framework-006) Bolek writes:
> Well, people are different
I think a key lesson here is that it is not easy to write a piece of software
that deploys well in all environments.
I take a lot of care about getting that sort of stuff right, but even then I
get plaintive calls saying "it falls over when I try x". My response is
always "if it doesn't work, I'll fix it"
Rebol scripts have a particularly difficult job here because they are so
cross-platform. Someone may be trying to run one of my scripts on a platform
I've never heard of, let alone tried to test on.
Another difficulty, as Petr, points out is the proliferation of versions. A
script using 'attempt is limited to platforms that support the latest view
beta. Those of us who are not running that, can't run a large chunk of what
has recently appeared on this mailing list.
There are similar issues with websites. A badly written website will look
okay on the monitor of the author, and may not even render elsewhere. But
there's no real excuse for failing to write a cross-platform website as all
the pitfalls and issues are well known and documented.
Rebol doesn't have such a core of knowledge as far as I know. There are not
that many large-scale, cross-platform Rebol applications out there, so we
haven't gathered a set of such rules.
I got a few though -- mainly from hard experience:
1. Always test what version you are running under and put out a message if it
won't be acceptable. (I once spent a week being told that an app didn't
work. "Are you sure downloaded Rebol version 3.whatever?" I ask several
times. They are adamant that they are. I send them a new version of the
script with a version check in. They apologise.)
2. Always use to-local-file and ro-rebol-file when displaying file names and
paths. Just because Rebol uses a platform-neutral file-naming convention
doesn't mean we have to force it on everyone.
3. Check all files before running them:
if not exists? %main-script.r [
print "Oops. Look like a problem with main-script.r. Please re-install"
4. Never assume a monitor resolution. Take a cue from
system/view/screen-face/size and build panels that fit.
There's more. But that's a good start. Feel free to add to the list. Maybe
we'll end up with a useful article for when the 'zine comes back.
Getting deployment/installation details right is an art. And it's one that
Rebollers ought to excell at.