francis@uchicago.edu (Francis Stracke) (01/25/91)
In article <1991Jan24.223857.9881@portia.Stanford.EDU> duggie@jessica.stanford.edu (Doug Felt) writes: In article <2899@casbah.acns.nwu.edu> jln@casbah.acns.nwu.edu (John Norstad) writes: >Eventually, if all goes well, we hope to see an object-oriented >system-wide scripting language based on HyperTalk and AppleEvents which >can be used to control this process. I find the idea of a scripting language based on Hypertalk to be a bit frightening. Do people really think Hypertalk is the way to go? Well, for one thing, a lot of us know it already. Always important. Besides that, it's the *only* language that I know of that really has a good paradigm for the Mac. Trying to use anything like a standard language would involve much more for the average user to learn--if they've learned to use the Mac, they've learned a bunch of the stuff that underlies the Hypertalk concepts. Why throw that away? What exactly do you have against it? Note the crossposting: this is clearly of interest to c.s.m.programmer, and (IMHO) should be addressed by c.s.m.hypercard, since they're the ones with the most experience in HyperTalk. Feel free to flame me if you take major exception. -- /=============================================================================\ | Francis Stracke | My opinions are my own. I don't steal them.| | Department of Mathematics |=============================================| | University of Chicago | Until you stalk and overrun, | | francis@zaphod.uchicago.edu | you can't devour anyone. -- Hobbes | \=============================================================================/
duggie@jessica.stanford.edu (Doug Felt) (01/26/91)
In article <FRANCIS.91Jan24205149@math.uchicago.edu> francis@uchicago.edu (Francis Stracke) writes: > >In article <1991Jan24.223857.9881@portia.Stanford.EDU> duggie@jessica.stanford.edu (Doug Felt) writes: > > In article <2899@casbah.acns.nwu.edu> jln@casbah.acns.nwu.edu (John Norstad) writes: > >Eventually, if all goes well, we hope to see an object-oriented > >system-wide scripting language based on HyperTalk and AppleEvents which > >can be used to control this process. > > I find the idea of a scripting language based on Hypertalk to be a bit > frightening. Do people really think Hypertalk is the way to go? > >Well, for one thing, a lot of us know it already. Always important. >Besides that, it's the *only* language that I know of that really has >a good paradigm for the Mac. Trying to use anything like a standard >language would involve much more for the average user to learn--if >they've learned to use the Mac, they've learned a bunch of the stuff >that underlies the Hypertalk concepts. Why throw that away? > >What exactly do you have against it? As John Norstad pointed out, there are ambiguities in the language. I think it is too easy for people to believe the hypertalk they've written does one thing when it really does another. Computer languages need to be precise because computers need to know precisely what to do. If you try to hide that from the user, I think you're asking for trouble. Hypertalk has its own subtleties, like other 'standard' languages do. For example, try this in the message box: put baz -- baz baz -- (error: can't under stand "baz") put foo into baz baz -- foo put "foo" into baz baz -- foo put quote & baz & quote into baz baz -- "foo" value(baz) -- foo value(value(baz)) -- foo put "this is some text" into baz put baz -- this is some text put word 1 of baz -- this put quote & "this is some text" & quote into baz put baz -- "this is some text" put word 1 of baz -- "this is some text" value(baz) -- this is some text value(value(baz)) -- false put this into some value(this is some) -- true this is some -- (error: can't understand arguments of "this".) While this behavior is predictable, and makes sense if you understand what is happening, I don't believe most Macintosh users will find this all that clear. It is subtle, and there are similar subtleties all through Hypertalk-- the "which handler gets the message" question, for example. Such subtleties may seem insignificant, but can at times lead to major problems. Other problems I see are: the distinctions between functions and handlers (you can 'send' and 'do' one but not the other). No intermediate scope (variables are either local to the handler, or global to all of hypercard). No structures-- meaning both that hypercard is very long-winded (put item foo of line bar of cd fld baz of card dimwit into flathead) and that there is no way to deal with lists of arbitrary data except as multiple cards, which can be cumbersome, and which I don't see porting to well to a scripting language. I think the fact that you can build up a string on the fly and "do" it leads to all kinds of abuse and can cause debugging nightmares, despite its occasional utility. I'm also not so sure the ability to write handlers which take variable numbers of parameters is, overall, a win, though I have had occasions to make use of this as well. Now, I'm speaking as a programmer, and therefore as someone who deals with fairly complicated tasks for which precision and expressive power in a language is essential. I believe Hypertalk is ok for the purpose for which it was originally intended-- short scripts in buttons which provide a bit of flexibility in determining which card to go to. However, we've all seen Hypertalk pushed far, far beyond these purposes, and the convoluted code that results. I feel the same will happen with a scripting language. The language will be pushed to (and beyond) its limits once people get a taste of what can be done. While it is easy for me as a programmer to overestimate the importance of features useful for complex systems, I think it is important not to ignore the consequences of omitting those features. Apple has had these problems in the past-- with the original flat file system, which couldn't handle large numbers of files, and with appletalk, which couldn't handle large networks. I would hate to see Apple saddle itself with a scripting language inadequate to the purposes people will find for it over the next several years, especially since it may be pretty resistant to change once it gets out and in use. I do believe that scripting languges have to be interactive, and have as uncumbersome a syntax as possible. These are laudable goals that Hypertalk meets pretty well. But I think it has flaws, too, and I am worried about it being put to yet another purpose for which it wasn't designed. >Note the crossposting: this is clearly of interest to >c.s.m.programmer, and (IMHO) should be addressed by c.s.m.hypercard, >since they're the ones with the most experience in HyperTalk. Feel >free to flame me if you take major exception. There are far too many flamefests on the net as it is. I prefer to believe people can rationally discuss things about which they disagree. A foolish belief, I suppose... >/============================================================================\ >| Francis Stracke | My opinions are my own. I don't steal them.| >| Department of Mathematics |=============================================| >| University of Chicago | Until you stalk and overrun, | >| francis@zaphod.uchicago.edu | you can't devour anyone. -- Hobbes | >\============================================================================/ Doug Felt Academic Information Resources Stanford University duggie@jessica.stanford.edu