Newsgroups: comp.sys.mac.games
Distribution: world
From: Ron_Hunsinger@bmug.org
Organization: BMUG, Inc.
Date: Mon, 11 Jan 1993 15:11:20 PST
Subject: Re: Simple programming language for Mac

>The problem with aiming HyperTalk/HyperCard at beginning programmers
>(specifically kids) is that the ability to simple paste pictures and
>link cards with buttons makes it _too_ easy. 

It's not suitable for beginners because its too easy?  You think
beginners should start on something hard?

>If I had learned Hyper-
>Card, and not BASIC, I wouldn't be programming now because  you  can
>do stuff in HyperCard without really learning the language, and  not
>get into it. 

You can.  You can also spend your time playing other people's games and
never get into programming at all.  But if you try to make your own
stacks, you will quickly discover the need to do your own scripting.
You will also discover pretty quick how easy it is.

>Again, I don't think BASIC is a good language to  start
>on, but it got me interested in programming, and it's easy,  so  why
>steer people away from it?

Because BASIC encourages modal programming.  (A modal program is
one that does one thing at a time, in its own order.  If it wants to
interact with the user, it asks a question.  The user has to answer that
question, and can't do anything else, like ask a question of his/her own.
The program is stuck in a mode, and the user can't change that.)

The advantage of HyperCard is that it encourages non-modal programming.
Each object has a script that will respond to messages from the user, but
it's the user who is in control.

Now understand, it is possible to write modal stacks, and conversely it
is also possible to write non-modal programs in BASIC.  But in each case,
you have to fight the language to do it.  It's the psychology of writing in
BASIC that worries me.

Another point in favor of HyperCard is that you can start with something
simple, then add one feature at a time and get immediate satisfaction at
seeing it work.  Then you can add another feature, test it, maybe rethink
your approach after you see it in action, do it over, or go on to something
else.  This is IMHO an ideal laboratory setting for a student.

And true, as some people have pointed out, HyperTalk is only marginally
OO (Object Oriented), but it's a start, and it encourages the beginner to
at least think about messages, inheritance, and the like.  Again, the
psychology is correct.  When our new programmer moves on to a real OOPL,
like C++, it will all seem familiar, and s/he will be able immediately use
OO concepts correctly.

BTW, someone complained that HyperCard is dead because new machines come only
with a HyperCard player.  NOT TRUE!  (Well, only sort of true.)  The new
machines come without a decent HyperCard manual, and to avoid confusing users,
Apple cripples the shipping version of HC so the user can't set userlevel > 2
and get confused by all the undocumented power.
But it is easy to remove the shackles!  
  1:  Go Home (if you aren't already there)
  2:  Go Last (takes you to the last card of the home stack)
  3:  Go Message (opens the message box)
  4:  type "magic" and press return
Viola!  You now have a full-function HyperCard.ck on a button, he can

**** From Planet BMUG, the FirstClass BBS of BMUG.  The message contained in
**** this posting does not in any way reflect BMUG's official views.