[Cialug] GUI Programming

Don Ellis don.ellis at gmail.com
Thu Mar 7 21:51:52 CST 2013


This looks like a job for syntactic sugar!

Some time ago, I wrote a few programs using HyperCard (MacOS visual
programming language before OSX). Each object on the screen could have
scripts attached to it, so any object could receive a signal and either act
on it or pass it on to the next layer (or both). In that context, the
location of the script was a cue as to what scope it acted on, and included
the signal it was expecting to receive.

Since most HC apps were written inside organizations and not published at
large, there was no indication of the scope of its use, and no incentive to
continue it.

This is another example [of many] of a powerful paradigm that was
implemented, but that did not get passed on to the world at large. Later
implementations often have less powerful/useful features than those that go
before.

Long before that, I saw a database manager that allowed description of
input screens in a manner that tied descriptive text to input fields. No
implementations I have seen since have come close to the ease of use of
that product (late '70s), even though it used animation in a text-based
input screen.

What I'm getting at is that there have been better ways to describe
relationships, and some current techniques are not adequate for that
process.

Ah, the Good Old Days!

--Don Ellis


On Thu, Mar 7, 2013 at 9:25 PM, Todd Walton <tdwalton at gmail.com> wrote:

> Thanks, Don, for trying to clarify this.  But let me make this real.
> I've pasted in below some Java that I've composed to show a little
> spaceship on the screen that floats down with time-incremented
> "gravity", or moves up or sideways based on key presses.  The
> keyPressed() and timeStep() methods are event driven, the first one by
> key presses, obviously, and the second one by ticks of the clock.  I
> understand (now) that that's what they're doing.
>
> But look at those methods with the eye of a novice and tell me one way
> in which they differ from any other method that isn't event driven,
> that are explicitly called by some other bit of code?  There isn't a
> difference.  The syntax is exactly the same.
>
> *That's* what is confusing.  How am I supposed to know what's going on
> with this if there's nothing to indicate what's going on??  I have
> more learning to do, and I have a feeling that an essential component
> of it will involve simple rote recognition/memorization, versus logic.
>  That's fine.  We are dealing with machines here, after all.  But I
> have yet to have an instructor or a book that explained it in a way
> that conveyed what I need to know.  So if the language isn't going to
> indicate it, and the books don't indicate it, it just means the going
> is difficult.
>
> For my mind anyway.


...


More information about the Cialug mailing list