Helping newcomers anticipate that standalones can't save to themselves
Richard Gaskin
ambassador at fourthworld.com
Fri Aug 15 12:20:41 EDT 2014
Vaughn Clement wrote:
> Hi Richard
>
> Although I have not seen this occur in stacks I've created, I would
> like to better understand where you are going with this topic? Are
> you starting a new way to address specific issues with LiveCode, or
> suggesting changes to the IDE?
That's a good question, and to be honest I'm not really sure, just
exploring options.
I kinda like the idea of a runtime emulator, but even if we could build
such a thing that can account for the many platform-specific things it
would need to be useful, we're still left with the same need:
If a person is able to know that they need to run a tool to discover the
implications of not being able to save to a standalone, the existing
Standalone Builder provides that. The trick is being able to know that
this sort of evaluation has to be done at all.
Extending the documentation might be useful, but only to the degree that
any new additions will be read.
We could add all sorts of additional tutorials and such, but this issue
is already described in a very bold callout on the User Guide page that
discusses standalones (p 299). If users aren't reading the primary
source of information on using LiveCode, what assurances can we have
that they'll discover any other discussion of this in some separate
tutorial?
Mike's very inventive, and I like where he's going with this:
> How about going the other direction and fixing the behavior?
>
> Technically, any standalone CAN edit itself, anyway, but there are
> all sorts of things that might be able to be done with ancillary
> files to store changes/updates. When the standalone is going to
> set something, it checks the file (like a settings file), first.
One of the challenges with such an approach is that people use LiveCode
in a wide variety of ways, and in a few cases may rely on data being
cleared when the standalone is exited.
So maybe such a behavior could be limited to attempting to use a save
command on a standalone, in which it automatically clones that stack?
But then where would it be saved? How would it know whether it should
be in the Documents folder, or Prefs, or App Support, or some other place?
Taking a broader view, for most apps it's not desirable to save UI
elements at all, populating the UI with data stored externally instead,
so when you deploy upgrades the new UI can display older data without
having to worry about the old UI. And for separate data storage there
are many options, from text files to custom properties to XML to JSON to
databases and more - which one is the right fit for the application at hand?
Currently these are decisions we make, and once we understand that OSes
don't allow executables to write to themselves we design with this in
mind, and often enjoy the flexibility of having so many different
options for managing persistence.
In our local user group we kicked around some ideas for handling this,
but it didn't take long until what we were leaning toward was a sort of
framework. But as useful as frameworks can be they can also be
limiting, and require learning even more to be able to do productive
work since we have to learn both LiveCode and the specific ways LiveCode
is used within the framework.
It's an odd problem, in that it's simple enough to accommodate once the
need is known, but difficult to know it's needed in advance.
I used to think that this expectation that standalones might be able to
save to themselves was limited to those with HyperCard experience, since
AFAIK Mac Classic (by virtue of its resource fork) was the only OS in
popular use that ever allowed this. And given that both HC and Mac
Classic were killed off more than a decade ago, I would have expected
this issue to come up ever less often since.
Yet somehow even among young people, who've never used HC and in a world
where they've never seen any application save to itself, find themselves
with the expectation that this should be doable.
Not sure how that expectation happens, or how to prevent it, but it
comes up just often enough that I think it may be worth trying.
--
Richard Gaskin
Fourth World Systems
Software Design and Development for the Desktop, Mobile, and the Web
____________________________________________________________________
Ambassador at FourthWorld.com http://www.FourthWorld.com
More information about the use-livecode
mailing list