Re: Parser
First, as far as Jeanne's status goes, I have several (three? four?) of the Waite Group's books on HC/HT still sitting on one of my bookshelves...somewhere. Jeanne's contributions to Tricks of the HyperTalk Masters were invaluable in my ability to finish my Senior year Independent Research project and ultimately get my TA ride for grad school, my internship, and my first consulting gig. Please reread last post. I am not arguing that RR is better or worse than HC (in this thread anyway). The post specifically refutes Jeanne's argument that the syntax permitted in HT is wrong. It would seem to me that if y'all thought the syntax was a mistake then it should have been addressed somewhere. As it is, I don't recall seeing anything from The Big Three that would, but then again, there were only tens of thousands of pages written on HC and HT, and I can't remember all of them... I'm also not arguing that the language shouldn't evolve. I am bemoaning the fact that the syntax is more rigid in some areas. However, the syntax issues are just an annoyance compared to some of the bugs in the IDE. For all of that, it's still light years better than having to use C++ every day. -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, This is good. ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Parser
Mikey wrote: I'm also not arguing that the language shouldn't evolve. I am bemoaning the fact that the syntax is more rigid in some areas. It may be helpful to remember two things as you encounter Rev's slightly more rigid syntax relative to HyperCard's: 1. It's a heckuva lot less rigid than C or even Java. 2. It's never done without unquestionably significant benefit to performance. While noble efforts have been made to support even HC-specific constructs like marked cards, as well as most of the flexibility of xTalks in general, the few areas where Transcript is less forgiving represent in each case a very well-thought-out decision to take advantage of an opportunity for optimization. The result is an engine that offers what is arguably the best performance of any xTalk, often by several times and sometimes by a few orders of magnitude. So yes, using Transcript effectively means acquiring a very modest level of coding discipline over what was required with HyperTalk, but the benefits far outweigh the effort. -- Richard Gaskin Managing Editor, revJournal ___ Rev tips, tutorials and more: http://www.revJournal.com ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Parser
Mikey, Try Googling: Jeanne Devoto HyperCard You may see she has more to say on the subject than even Danny. At 5:21 PM -0500 11/15/2006, Mikey wrote: Since HT was the original root of this tree, I think it's a little unreasonable to say that it's incorrect or a mistake, unless Bill Atkinson or Dan WInkler say so. However for the sake of argument, I would at least consider the same criticism from Danny Goodman. ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Parser
Chipp Walters wrote: Mikey, Try Googling: Jeanne Devoto HyperCard You may see she has more to say on the subject than even Danny. Heh. :) When I was working with the HC team at Apple, creating the test engine for the (theoretical) HC 3.0, we used the book that Jeanne co-authored as a reference. -- Jacqueline Landman Gay | [EMAIL PROTECTED] HyperActive Software | http://www.hyperactivesw.com ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Parser
At 9:54 AM -0600 11/14/2006, Ken Ray wrote: (and that the is anal-required) For properties, yes, but most functions have a () alternative. All functions, actually. (A few built-in functions won't take the the form; all of them have a () form. And of course custom functions require ().) As for properties: correct syntax for all xTalk variants I know of is to precede the property name with the. An expression such as get hilite of me is not correct HyperTalk. It's true that HyperTalk is looser about this particular mistake (and others) than Transcript - I'm not sure about SuperTalk - but that doesn't mean it was right in HyperCard. HyperCard is forgiving about a number of syntax mistakes, which is good (because the script can be executed anyway) yet bad (because it promotes the development of bad habits). You could develop an xTalk that drops the before properties, but then you have a serious name-collision problem shaping up, so I'm not sure that's such a hot idea. It's only four characters, and it makes the reference unambiguous. -- jeanne a. e. devoto ~ [EMAIL PROTECTED] http://www.jaedworks.com ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Parser
An expression such as get hilite of me is not correct HyperTalk. It's true that HyperTalk is looser about this particular mistake (and others) than Transcript - Since HT was the original root of this tree, I think it's a little unreasonable to say that it's incorrect or a mistake, unless Bill Atkinson or Dan WInkler say so. However for the sake of argument, I would at least consider the same criticism from Danny Goodman. ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Parser
On 11/16/06, Jeanne wrote: An expression such as get hilite of me is not correct HyperTalk. It's true that HyperTalk is looser about this particular mistake (and others) than Transcript - On 11/16/06, Mikey [EMAIL PROTECTED] replied: Since HT was the original root of this tree, I think it's a little unreasonable to say that it's incorrect or a mistake, unless Bill Atkinson or Dan WInkler say so. Hmmm. As neither Bill or Dan are pruning, watering or even sitting under that tree anymore it's all seems to be personal perception of history. Today though, IMHO, the HyperCard tree is looking really really sick and it's roots, well they're shriveled up and I don't expect to see any new growth (v3.0) in my life time. What I do know is someone thoughtfully removed the 'best' branches off the HC tree and grafted them onto some new roots - Rev. The Rev tree is similar to the HC tree, but not the same. The Rev tree is easy to work with, but not as easy as the HC tree. IMHO the Rev tree is looking very healthy, it's roots are strong and seem to be able to produce new growth on a regular basis (might just be able to hold my breath until 2.7.5 arrives:-) There's a whole heap of additional branches on the Rev tree that weren't on the old HC tree - DB support, xplatform, etc. Unfortunately with so much growth some of the fruit produced is inedible - there's bugs. Fortunately a new husbandman has been hired (Bill) specifically to reduce the bug population. They're different, you can spend your time trying to make Rev be HC, or you can learn to think Rev - I suggest you choose the latter as it won't take too long:-) ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Parser
At 5:21 PM -0500 11/15/2006, Mikey wrote: An expression such as get hilite of me is not correct HyperTalk. It's true that HyperTalk is looser about this particular mistake (and others) than Transcript - Since HT was the original root of this tree, I think it's a little unreasonable to say that it's incorrect or a mistake, unless Bill Atkinson or Dan WInkler say so. However for the sake of argument, I would at least consider the same criticism from Danny Goodman. From Danny Goodman, but not from me? Mikey, you're hurting my feelings. ;-) -- jeanne a. e. devoto ~ [EMAIL PROTECTED] http://www.jaedworks.com ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Parser
On 11/14/06 7:30 AM, Mikey [EMAIL PROTECTED] wrote: Is the parsing code for the script editor available somewhere? I'm betting the answer is no, but I thought I'd ask. The fact that comment double-dash can't terminate a keyword (and that the is anal-required) is something I would like to address as long as I'm playing around. I always use a space before my comment characters, so I have not discovered this quirk. The one quirk I have to watch out for is: --on mouseup -- do something useful --end mouseUp = and now the script parser does not ignore the 'on', yet won't run the script either. --o n mouseUp ##does work -- do something useful --e nd mouseUp This technique does work: /* on mouseup do something useful end mouseUp */ (and that the is anal-required) Now here you are going to run into a significant difficulty. The xTalk object model and syntax is based on using 'the' as part of many references. If this bothers you, then you are probably going to do quite a bit of wrestling with xTalk coding to either save keystrokes, or make your code look more concise, or have xTalk look more like another language. I think most everyone starts off thinking 'why so verbose?' Hang in there. Before long, it will just be part of what you do. You could build your own library of short hand function numCds return the number of cards end numCds function numI string, del set the itemDel to del return the number of items in string end numI Jim Ault Las Vegas ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Parser
Jim, Is there really an xTalk standard? xTalk is an invention of this group to describe the various descendants of HyperTalk. I have never seen a standard, as the dialects can be somewhat different. HT never required the, and to my recollection, neither did SuperCard. If there is a standard then I want the name of whomever the Keeper of the Standard is, since the Revolution grammar has some restrictions that I would like to have addressed. Generally the the does not get me into trouble, since I tend to not use abbreivations either, but it does, on occasion. As for getting used to it, I've been developing in HC since (almost) day 1, which was just about 20 years ago, and I still have multiple production systems running on old Quadras that still use it, so I am working in it frequently. However, since I have a new fascination with the potential ability to hack (and therefore fix some of the things in) RR, the quirks and annoyances of it lead me to ask these sorts of questions. RR has its advantages over HC, but it also has nagging issues and bugs that are still in play. -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, This is good. ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Parser
I have gotten in the habit of doing this over the last 20 years: if something then . . . else--not(something) . . . end if--something HC and other tools that I've used since have all figured out that the keyword ends where the comment begins, and have just inserted the space. -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, This is good. ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Parser
On 11/14/06 10:38 AM, Mikey [EMAIL PROTECTED] wrote: Is there really an xTalk standard? xTalk is an invention of this group to describe the various descendants of HyperTalk. Actually, it was invented long before this group was around (I remember it being used during the HyperCard days (even before SuperCard/MetaCard) when talking about how Asymetrix Toolbook was a variation of the HyperTalk language.) I have never seen a standard, as the dialects can be somewhat different. HT never required the, and to my recollection, neither did SuperCard. Once again, required for *what* - for functions? object properties? global properties? something else? AFAIK all variations/expansions of the HyperTalk dialect have their own pecadillos, even SuperCard. :-) Ken Ray Sons of Thunder Software, Inc. Web site: http://www.sonsothunder.com/ Email: [EMAIL PROTECTED] ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Parser
Ken, I believe it's generally for properties. Functions if I recall correctly don't require it. I have to play with it again. -- On the first day, God created the heavens and the Earth On the second day, God created the oceans. On the third day, God put the animals on hold for a few hours, and did a little diving. And God said, This is good. ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Parser
On 11/14/06 9:30 AM, Mikey [EMAIL PROTECTED] wrote: Is the parsing code for the script editor available somewhere? I'm betting the answer is no, but I thought I'd ask. No, this is in the compiled engine AFAIK. The fact that comment double-dash can't terminate a keyword Can you give an example of what you mean? (and that the is anal-required) For properties, yes, but most functions have a () alternative. For example: put the charToNum of A put charToNum(A) Ken Ray Sons of Thunder Software, Inc. Web site: http://www.sonsothunder.com/ Email: [EMAIL PROTECTED] ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Parser
Mikey wrote: Is there really an xTalk standard? xTalk is a generic term used to describe all of these related languages collectively (HyperTalk, SuperTalk, OpenScript, MetaTalk, etc.). The commonalities among them form a de facto standard, with additional weight usually given to HyperTalk in honor of its role as the mother tongue. I have never seen a standard, as the dialects can be somewhat different. Yes, there's little point in making a new product which does everything exactly the same as an existing product. SuperCard was the first dialect, and since it allowed multiple windows within a single file, had integrated color, etc., its language had to extend the original HyperTalk. MetaTalk (which we're using now in Rev under a new name) added even more to the object model which required new tokens, and introduced new language features like repeat for each, binary tokens, etc. HT never required the, and to my recollection, neither did SuperCard. Regardless of what other program have done, in Rev the is required for properties. Many of us got into the habit even when using HC if only to make the scripts a tad more readable. Either way, the habit is easily gained with a little practice. It may help to note why this is required in Rev. I was talking about this with Jacque, and she reminded me of Scott Raney's fetish for reducing the branches in the token lookup table. You've probably noticed that most things in Rev run several times faster than in HC. This is not merely some nifty compiler optimization, it's a product of the language design. By requiring the before accessing properties, the engine can know it only needs to look through the tokens for properties and functions, whereas HyperCard needs to also look through all variables. This is just one of a number of places where Rev is slightly less flexible than HypeCard, many of which are outlined in Jacque's helpful article on converting from HC: http://www.hyperactivesw.com/mctutorial/index.html While Rev is a tad more rigid, in practice I think you'll find the modest learning curve more than pays for itself with much greater performance. If there is a standard then I want the name of whomever the Keeper of the Standard is, since the Revolution grammar has some restrictions that I would like to have addressed. As a de facto standard there is no single keeper. As for Rev, if you want to suggest changes the mechanism for logging those requests is Bugzilla: http://support.runrev.com/bugzilla/bugzilla.php -- Richard Gaskin Fourth World Media Corporation ___ [EMAIL PROTECTED] http://www.FourthWorld.com ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
Re: Parser
Mikey wrote: As for getting used to it, I've been developing in HC since (almost) day 1, which was just about 20 years ago, and I still have multiple production systems running on old Quadras that still use it, so I am working in it frequently. However, since I have a new fascination with the potential ability to hack (and therefore fix some of the things in) RR, the quirks and annoyances of it lead me to ask these sorts of questions. I've thought for a long time that the people who have the hardest time converting over to Revolution are old HC users. Folks who come from other backgrounds expect to relearn a lot of stuff. But Rev is so very similar to HC in so many ways, that the few things that are different make us HC converts very frustrated. We have an unlearning curve. It took me months to get over it, because things that I thought should work would *almost* work, but they worked a little differently. But once you get past the unlearning curve, you do start to appreciate Rev and eventually you start to realize that if you'd written the engine yourself, you might have done it the same way in a lot of cases. For example, if you leave off the thes for properties, the engine has to do more work to parse out what you mean. HC was much slower than Rev, and a lot of that was due to the forgiving nature of HC's interpreter. Rev is less forgiving, but very much faster. Unquoted literals are another one. HC would accept almost anything as an unquoted literal and that slowed it down a lot. Rev isn't so nice about it. There are some situations where an unquoted literal will work fine, but in general it's a lot more picky about those. The increase in speed is the reward. You'll hit some roadblocks and get mad, but there is only one unlearning curve and it only takes a little while. Regarding hacking the IDE: I'd advise against it. It's a tightly integrated system. A better way to implement what you want to do is to write your own stack and put the handlers in it that you want to use. Then pop your stack into the Plugins folder and set it to activate when Rev starts up (the list can help with that if you don't know how.) I did that with all the HC Home stack scripts that I wanted to move over to Rev. I didn't move them all though. For example, I didn't move the message box shortcuts to get into the property inspector, since Rev provides multiple ways to open an inspector. But I did move most of my custom Home scripts into a plugin where they work just as they did in HC. -- Jacqueline Landman Gay | [EMAIL PROTECTED] HyperActive Software | http://www.hyperactivesw.com ___ use-revolution mailing list use-revolution@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution