Transcript language design.

Scott Rossi scott at tactilemedia.com
Wed Jun 9 20:27:19 EDT 2004


Recently, "Alex Tweedly"  wrote:

> One of the things that is a bit of a hurdle for a "traditional language
> programmer" (like me) to overcome is the unusual syntax and verbosity of
> Transcript. I'm trying to convince myself that this will feel more natural
> if I just keep trying :-)
> 
> Are there any "style" hints or suggestions to help with this ?

You may get many answers to this.  For general reference, FourthWorld has a
good scripting guide:

  http://www.fourthworld.com/embassy/articles/scriptstyle.html


Otherwise, it's *usually* best to avoid assigning names to controls that
include the control's type, are simple numbers, or reserved words.  While
these names are certainly possible, using descriptive names (ie field
"myCoolData") will help you avoid scripting errors until you are more used
to the language.  For example, avoid naming a field "6" or "into".

Controls must be referenced by their class and a name, number or id:

 put "hello" into field "my stuff"
 put "hello" into field 1
 put "hello" into field id 1005

Control names and messages are usually referenced with double quotes to
avoid confusion with variable names.

 put 20 into field "myStuff"
 send "myStuff" to button 9
 put 20 into myStuff


> 2. String concatenation
> I had
>    put URL "file:" & fileName into myVar
> of course, I meant
>    put URL ("file:" & fileName) into myVar
> or similar.

Generally, xtalk is a bit forgiving in syntax, but the above is one case
where it's not (not sure why).  When concatenating, it's usually best to
employ parens to avoid possible ambiguity, similar to math expressions:

  put 2 * 4 + 5 into myVar

is not the same as:

  put 2 * (4 + 5) into myVar


> 3. Traditional programing style.
> I forgot myself and wrote a traditional line of code
>    myVar = 1
> when I meant
>    put 1 into myVar
> OK, my error; but I sure wish the compiler could warn me when I write an
> expression and never use it (or something to catch my slips into
> traditional languages)

You should have seen an error come up when trying to apply the above within
a script.  In any event, it will be worth your while to get in the habit of
using "put x into y" since this is the fundamental syntax of xtalk
languages.  However, you may find some solace in the similarity of declaring
local variables in a script:

 on mouseUp
  local x=1,y=2,z=3
  answer y
 end mouseUp

Hope some of this helps.  Keep at it.

Regards,

Scott Rossi
Creative Director
Tactile Media, Multimedia & Design
-----
E: scott at tactilemedia.com
W: http://www.tactilemedia.com



More information about the use-livecode mailing list