I believe that the Hypertalk 2.2 Reference book (Jeanne de Voto et. al) has a BNF diagram of the language at the end. I could be mistaken, as my copy of the book has been in storage for a number of years. But if I remember correctly, then it seems at least at that stage the language was not too loosey-goosey.
Bernard On Tue, Oct 27, 2015 at 6:35 PM, Mark Waddingham <m...@livecode.com> wrote: > On 2015-10-27 18:23, Richard Gaskin wrote: > >> One thing most of us have in common here is that we need to ship >> applications. Very few of us (zero?) are responsible for drafting >> BNFs. >> > > Indeed - but then perhaps that's the difference between people using a > programming language and those responsible for maintaining and evolving it. > > In OOP we could make snapshots a class, so the values specifying them >> could be expressed as name-value pairs through instance variables - >> but who wants to use a language where you need to instantiate a math >> class just to add two numbers? :) OOP is fine where OOP is fine, but >> OOP isn't xTalk. >> > > Well, I think you misrepresent how OOP languages work there - as they > don't tend to require you to instantiate a 'math' class just to add two > numbers. (Although some do take 'purity' to an almost unusable extent). > > In any case, OOP isn't really a language, it is just a set of patterns and > ideas which are one good way to structure languages and think about > software. (And OOP principals are definitely there in xTalks they are just > not generally visible day-to-day). > > In LC, we see increasing use of arrays for name-value pairs (e.g. >> clipboardData, etc.), and if it were important for someone to simplify >> some aspects of making snapshots they could easily craft a handler >> that takes an array to do that in just a couple minutes. >> > > Indeed - name-value pairs are used for 'the clipboardData' and other > devices... Although I'd might suggest only because there is a lack of > ability to be able to code the syntax that might be more appropriate: > > e.g. set the styledText of the clipboard to ... > > So maybe I'm too easy to please, but I think the current syntax for >> snapshots is OK. >> > > It works - but a lot of people get tripped up by it all the time (costing > individuals time figuring out why things don't work, others on the lists > when they respond to questions on the lists about why their command doesn't > work how they expect, and bug reports to us when they think there's an > issue). Now, whilst perhaps a better dictionary entry might help a bit... > This situation does suggest to me the syntax could be better and more > accessible. > > Back in the day Brian Molyneaux of Heizer Software noted the same >> thing about xTalks. Just too loosey-goosey for that sort of thing. >> > > Well I'm sorry to say that he was wrong as far as I'm concerned. > > Indeed, thinking that xTalks have no place for formality might be perhaps > at least (a small) part of the reason why most of them have disappeared? > > Fortunately, my job is to make software, not BNFs, and LiveCode lets me do >> that. >> > > My job is to make software too - software that allows others to make > software. > > Aspects like rigorously definable semantics and rigorous specification of > syntax are things that help me do that. Just like having the features you > need working in the way you need them to help you to do that. > > If life were simple, it probably wouldn't be as much fun :) > > Warmest Regards, > > Mark. > > -- > Mark Waddingham ~ m...@livecode.com ~ http://www.livecode.com/ > LiveCode: Everyone can create apps > > _______________________________________________ > use-livecode mailing list > use-livecode@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your > subscription preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode