hypercard domenu comptability

Richard Gaskin ambassador at fourthworld.com
Sat May 21 13:12:08 EDT 2005


Eric Engle wrote:
> First, I must say: I don't just want a solution for me. I want a solution for
> anyone using revolution or metacard.

It would only matter to the subset of Rev and MC developers who still 
have HyperCard stacks to port.

And really it's the smaller subset who will deal with other conversion 
issues (AddColor, etc. as outlined in Jacque Gays' article at 
<http://hyperactivesw.com/mctutorial/index.html>) but still expect 
complete automation for this one issue with doMenu.

If you want to write an AddColor library that'll do more for conversion 
than the proposed engine change.


> Richard gives me the impression that there is in fact no way out.

On the contrary I gave you a solution, albeit one that asks the 
developer to think in terms of the tool they're currently using rather 
than the one they're leaving behind:

     ...you could write a menuPick handler at the stack level
     and move your doMenu stuff there.  That way you could
     handle visible menu items there and also makes calls to
     it from other scripts by writing:

        menuPick "Menu Item Name"

     ...rather than HC's:

        doMenu "Menu Item Name"


Remember that menus are implemented differently in Rev than in HC, 
arguably somewhere in the middle between HC's text-only implementation 
and SuperCard's object-only variant.

Even if we slowed down the engine to accomodate those who feel the need 
to type "doMenu" rather than handle the native "menuPick" in Rev, you'd 
still need to figure out how to handle all of HyperCard's prefab menus 
that don't exist in this engine if instant out-of-the-box complete 
compatibility is the goal.

I think Alain's original approach of providing an alternative IDE and 
supporting libraries aimed at giving the HyperCard experience to those 
using the Rev engine is the better way to go.

Alain has mentioned the only thing that stands between where FreeGUI is 
today and a fully completed version is a little volunteer help.  Know 
anyone who feels that providing that level of HyperCard compatibility is 
important enough to lend a hand with?


> Also, Scott very much still owns metacard. He has licensed its engine to
> revolution in exchange for a GUI, nothing more or less.

Actually, Scott has sold the engine to RunRev in July 2003, as described 
in the acquisition press release:
<http://www.runrev.com/section/press/10.php>

RunRev Ltd. is a completely separate business from MetaCard Corp.

MC Corp still retains the copyright on its own IDE, though it has 
licensed its use by others under the X11 open source license.

Neither Scott Raney nor MetaCard Corp. have ownership of the Rev IDE. 
Like the engine, that's fully ownwed by RunRev Ltd of Edinburgh, Scotland.


> Anyway, my point remains: this is an unimplemented feature. In the interest of
> compatability it should be implemented. It need not be implemented in a manner
> that either interferes with speed of other functions. However it must be
> implemented such that revolution/metacard can properly import hypercard stacks.
> Which means while it could be scripted using open source it would have to be
> implemented by MC/RR.

No two tools are completely the same as each other.  After all these 
years and nearly a dozen xTalk dialects later, it seems that for a tool 
to justify it's existence it will differ from HyperCard; indeed, if it 
did not why would they bother?

But with those differences come conflicting paradigms, such as AddColor 
vs. built-in color, or script-only menus vs Rev's object menus.

These differences invariably require changes to a stack to run.

While Rev has that in common with all other xTalk tools, to its credit 
it's the only one which reads the HyperCard file format natively and 
supports more of HC's syntax than anything tool but HC itself.


>  Once upon a time metacard had no native bitmap art tools just vector tools and
> there was no art compatability. Now there is and most art stacks run fine under
> metacard. Currently many domenu items are not implemented. They could be. 

There's a big difference, however: bitmap tools weren't added for the 
Mac platform for HyperCard compatibility.  In fact, the person who 
lobbied hardest for them was porting something from VB.

Paint tools were added because they benefit all developers, not just the 
subset looking for HyperCard compatibility.


> Mostly though my domenu commands return "no such menu". Which to me means that
> they could be implemented just by adding invisible menu items to the metacard
> menu bar. Richard is implying that that is not possible.

What happened when you tried it?

In my experience anything in the menu group will appear in the Mac OS 
menubar.

But there's no need to be adding additional objects, invisible or 
otherwise, if you'll simply handle the scripts as suggested above.

Menus aren't objects in HC, so the behaviors are defined in scripts 
anyway.  Just handle those at the stack level and you're done and can 
move on to bigger and better things, like writing an AddColor library.  :)


> If I implement a change on my version of metacard that does
> nothing for the other people using metacard. I don't want a
> solution just for myself.

Contributing to Alain's FreeGUI would seem a useful path to consider.


>>one of the reasons MC is so darn fast is that it doesn't allow the 
>>overriding of built-in commands and functions (it cuts the token search 
>>space down dramatically).  Fortunately, for the few cases where that 
>>might be useful it isn't hard to work around it:
>
> That argument ignores the processor speed of machines is increasing and will
> continue to increase such that any speed gain is really not that important and
> will become less and less important.

And that argument ignores what other people are doing with the engine.

Very few of us have any HC stacks to port any more, and haven't for 
years.  But most of us are working on some complex code now and then 
that could benefit from every efficiency we can get.


The bottom line is simply that I doubt very much that at this late stage 
in the game Rev would consider slowing down the engine for a relatively 
minor convenience that would be needed by only a relative handful of users.

So the more productive path for those who want to use Rev to behave like 
HyperCard would be to accept that a number of areas will require script 
changes (changing "doMenu" to "menuPick" is one of the simpler ones) and 
for everything else help the development of Alain's FreeGUI.

-- 
  Richard Gaskin
  Fourth World Media Corporation
  ___________________________________________________________
  Ambassador at FourthWorld.com       http://www.FourthWorld.com


More information about the metacard mailing list