• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

Hypercard Programing

uliwitness

Active member
BTW -- if anyone has HyperTalk/HyperCard questions, feel free to point me at threads here. I'm working on a HyperCard clone for modern computers in my spare time, so I might know a thing or two that is hard to find out.
 

MrFahrenheit

Well-known member
BTW -- if anyone has HyperTalk/HyperCard questions, feel free to point me at threads here. I'm working on a HyperCard clone for modern computers in my spare time, so I might know a thing or two that is hard to find out.

Have you checked out LiveCode?
 

cheesestraws

Well-known member
I'm working on a HyperCard clone for modern computers in my spare time, so I might know a thing or two that is hard to find out.

Oooh, I'd like to hear about that... you should create a thread about it :)

Have you checked out LiveCode?

What do you think of LiveCode, @MrFahrenheit ? It somehow never clicked with me, despite being very fond of HyperCard itself. But you have more recent and in-depth experience with HC than I do, so I'd like to hear your take.
 

Crutch

Well-known member
I would also love to know anyone’s thoughts on LiveCode or similar approaches.

HyperCard always seemed to me to fill an obvious need: give me a tool non-programmers can use to create simple, workable UIs and share them. I really would love to know what tool fills that niche today … if a 15-year-old kid wants to create an experiential app of some sort, what’s the most straightforward way he/she can do it in 2021? Is it really LiveCode?
 

uliwitness

Active member
Obviously I'm biased, but IMO LiveCode is a valiant effort at creating an accessible open-source programming language, and it can import and run HyperCard stacks, but that is what it is: A programming environment.

It completely misses the point of HyperCard being a software erector set. Something that anyone can build something interactive from without much knowledge, something where you look at someone else's stack and immediately understand how to do the same thing. It makes up its own strange metaphors instead of using metaphors users are already familiar with.

Like, in LiveCode, I frequently grouped a bunch of objects, and suddenly they showed up on all cards. Because some engineer thought "a group of objects is a container for objects. A background is a container for objects. So let's just make the two the same thing, and make groups default to being shared between cards, like backgrounds." LiveCode is full of bizzarre stuff like that. There is a lot of alternative syntax to make LiveCode easier for professionals, confusing beginners when they wonder what the difference between comments starting with -- and comments starting with // is ... In HyperCard, you could think of variables as "everything is a string". In LiveCode, if you use array syntax, you get things like the following:

put "Hey" into foo[1]
put "You" into foo[2]
put foo is "" into message box -- outputs true
put foo[1] is "" into message box -- outputs false

Because despite containing something, the array itself is empty. In HyperCard, there would have been a text representation of all items in "foo" itself, to maintain the illusion that arrays are just strings.

To be fair, they've worked on fixing a lot of things, but they're just so far from what I think HyperCard was all about.
 

uliwitness

Active member
Regarding a new HyperCard?

I think Hopscotch and Scratch are completely different but try to scratch the same itch.

Of course, a lot of things one used to use HyperCard for are now included with a modern OS. There is no need for the address book stack, because Address Book is an app that comes with the OS. Keynote/PowerPoint and Excel fulfill a lot of the advanced uses these days I would have used HyperCard for. Like, since people kept abusing Excel as a thing for keeping tables and lists (instead of math spread sheets), maintaining and sorting lists is now actually a feature of Excel.

Does that help?
 

Crutch

Well-known member
Thanks, this is interesting perspective.

I think I’m asking a more fundamental question though.

If your 12-year-old said “I have an idea for a simple app/game/thing I’d like to create on [platform of choice], how should I do it?” … what would you tell them?

In 1991, on a Mac, the answer would have been 100% obvious: use HyperCard! It’s amazing, you can include any graphics or sound you want, you can connect them with buttons, you can create simple logic making it all work with scripting, and you can get arbitrarily fancy down the road if you want. Plus everybody has a copy, so it’s easy to share whatever you create.

The loss of a clear obvious answer to that question in 2021, to me, feels like something has been lost. So I’m sure I’m just missing something and there’s a great answer here I am not aware of.
 

NJRoadfan

Well-known member
Quite a lot of folks did exactly that in the late 90s-early-00s using...... Macromedia Flash! Like HyperCard, it's now dead too.
 

DracheMitch

Well-known member
HyperCard didn’t have sprite animation, though. You could use QuickTime images to fake animation like Myst or Prince Interactive did. Not that Apple ever made making games easy on any of their platforms.

HyperCard’s scripting language was used as the basis for AppleScript, which is still (barely) a thing, so there’s that.
 

Crutch

Well-known member
Not natively, for sure. It would have been straightforward to implement double-buffered sprite animation with a few XMCDs. I wonder if anybody did.
 

register

Well-known member
Wow, 10 years resurrection!
:)
As members of the 68kMLA we are in the business of resurrection, aren't we?

Edit: I just stumbled upon changes in the visibility of posts in this thread and replied to a post I had already replied to, before. I apologize for repeating myself. Cheers!
 

Crutch

Well-known member
Thinking about HyperCard a bit lately thanks to these threads, it’s interesting to think of what happened to the genre of “multimedia”.

In the mid ‘90s I’m sure we all thought that by now, we’d be reading e-books with embedded videos, hyperlinks, sound clips, 3D-rotatable diagrams, simulations of historic battles, whatever.

That largely seems not to have happened. Sure all that content is readily available — but it’s rarely curated by anyone in practice it seems. Even on Wikipedia, viewing embedded videos feels awkward and there is no real “interactivity” to speak of. People with serious interest in a topic, I think, tend to read an old-fashioned book about it then maybe follow up with some unguided research online. E-books are just scanned & searchable versions of old-fashioned books you can scroll through on a Kindle or iPad. The notion of creating and accessing an experiential version of a story, history, or encyclopedia (as was briefly in fashion through the CD-ROM boom of the ‘90s) seems to have faded away somewhat.

I wonder why that is, or if I’m wrong.
 

MrFahrenheit

Well-known member
Oooh, I'd like to hear about that... you should create a thread about it :)



What do you think of LiveCode, @MrFahrenheit ? It somehow never clicked with me, despite being very fond of HyperCard itself. But you have more recent and in-depth experience with HC than I do, so I'd like to hear your take.

To be honest, I don't use the LiveCode GUI for programming. I use the Linux server engine, and I generate the code with that. I write CGIs and I code HTML as my app front-end. All of the apps I do with it are web apps. It also supports command-line programming. So, for example, I want to take a massive text file with data, I can write a text document app that loads that file, and processes it, and spits out the result back on the command line.

At work I have coded a 'database' that utilizes text files. There are about a million records. If I want to search for something odd or particular, I can write a program in minutes that loads a batch of whatever type of files I need, processes it, and spits a result back on the terminal command line in a matter of under a minute. If an audit by the government requires finding out all customers who bought an XY widget, or if we need need to know how many VZ widgets we bought from all suppliers between a date range, it can be written and executed in under 15 minutes.

Overall, some customer invoicing, purchase orders, and accounting is done using LiveCode CGIs in a web browser app, and display returned back to the client using HTML generated from templates. The CGI loads a particular template file, populates the data, and draws it on the client screen.

Very powerful. Very fast. Very flexible (using HTML for web apps), all using the exact same engine.
 

MrFahrenheit

Well-known member
HyperCard didn’t have sprite animation, though. You could use QuickTime images to fake animation like Myst or Prince Interactive did. Not that Apple ever made making games easy on any of their platforms.

HyperCard’s scripting language was used as the basis for AppleScript, which is still (barely) a thing, so there’s that.

You could, however, create a MacroMedia Director 2.0 animation file, and play it back inside HyperCard using a VideoWorks XCMD. Once I found the XCMD inside a Microsoft Works 2.0 tutorial HyperCard stack, I was amused with creating animations within HyperCard. It's not sprite animation, but it's better than HyperCard's tools.
 

MrFahrenheit

Well-known member
Thanks, this is interesting perspective.

I think I’m asking a more fundamental question though.

If your 12-year-old said “I have an idea for a simple app/game/thing I’d like to create on [platform of choice], how should I do it?” … what would you tell them?

In 1991, on a Mac, the answer would have been 100% obvious: use HyperCard! It’s amazing, you can include any graphics or sound you want, you can connect them with buttons, you can create simple logic making it all work with scripting, and you can get arbitrarily fancy down the road if you want. Plus everybody has a copy, so it’s easy to share whatever you create.

The loss of a clear obvious answer to that question in 2021, to me, feels like something has been lost. So I’m sure I’m just missing something and there’s a great answer here I am not aware of.

HyperCard was simple AND powerful. The power of poking the code of a cool stack you found, and seeing how they did it, was great. In middle school, I went to the weekly HyperCard club meetings. The teacher would inspire us each week for something new that he taught and left us to our own devices to create and share stuff. HyperCard has never been fully recreated in any product, ever (ease of use, availability [it was free most of the time], and utter simplicity).
 

DracheMitch

Well-known member
You could, however, create a MacroMedia Director 2.0 animation file
That's what Apple used for their mouse practise thing that came with my IIsi, I remember it being in 2-bit even on my 256 gray screen (all my grandma could afford, even though I wanted a colour Iici). I remember it being about underwater, which felt weird,
 

uliwitness

Active member
HyperCard didn’t have sprite animation, though. You could use QuickTime images to fake animation like Myst or Prince Interactive did. Not that Apple ever made making games easy on any of their platforms.

HyperCard’s scripting language was used as the basis for AppleScript, which is still (barely) a thing, so there’s that.
HyperCard had types of animation, but they were a bit limited. The two most common approaches (that were fully supported) were page-flip animations and icon animations.

Page-flip animations:

Drawing each frame on a new page (card) and then just doing "go next" to flip through them (pretty sure that's why it has the "show all cards" command too -- to make it easy to create a flipbook).

Icon animations:

Each button could be assigned an icon. You could then change a button's "icon" property to change that image. If you did that a couple times per second, you could achieve something like Sprite animation. Since the button were "vector objects" floating above the card picture, you could change a button's "location" property to move it around on the card as well.

The downside of this approach was that icons were limited to a size of 32x32 pixels (and of course black and white, like everything in HyperCard).

There was also a third, lesser-known approach, which was the "icon -1 trick":

Icon -1:

HyperCard introduced a trick in one of the 2.x releases: If you set a button's icon ID to -1, and had a PICT resource in your stack's resource fork with the same name as your button, your button would show this PICT resource (in B/W) centered in your button's rectangle, not unlike an icon. Now Quickdraw had no alpha channel, so if you created the PICT resource using Photoshop, it would be an opaque rectangle, but if you used MacDraw II, for instance, you could create a PICT resource with a mask (100% transparent or opaque pixels), just like an icon. Just that PICTs were not limited to 32x32 pixels, but rather could be larger.

So now you could perform the same style of icon-flipping animation by changing your button's name and flipping through PICTs.

Colored animation:

HyperCard had no built-in color, and all color that was added using plugins (like the included AddColor Color Tools) was so slow, that people generally didn't use that for animations. So if people wanted color animations, they usually switched to Director completely, or ran their Director animations, PICS animation files or QuickTime movies using a plugin in HyperCard, drawing over all of HyperCard's graphics until the animation was done.
 
Last edited:

uliwitness

Active member
That's what Apple used for their mouse practise thing that came with my IIsi, I remember it being in 2-bit even on my 256 gray screen (all my grandma could afford, even though I wanted a colour Iici). I remember it being about underwater, which felt weird,
There was a color version of that mouse tutorial, but AFAIR it used the B/W version for everything except 256 colors. (and probably thousands and millions when that became an option). I ran on 16 greys, which was actually good enough to show most color as nice shading, and many apps of the time (and this one) would first switch over to 16 colors (which ruined the nice range of 16 white-to-grey gradients), and then display everything as 1 bit because they didn't have enough color differentiation anymore...
 

Crutch

Well-known member
That’s a nice overview. “PICT resource with a mask” wasn’t really a thing, though. A PICT resource was just a sequence of QuickDraw instructions that were followed to the letter. So if you pasted your PICT from an object-oriented “draw” program like MacDraw, and those instructions didn’t include whiting out the drawing area, you would get a transparent PICT. (Whereas if you pasted your image from MacPaint, you’d get a bitmap inside your PICT, which by definition whites out all the white pixels as part of rendering the bitmap.)

If you pasted a bitmap into MacDraw then copied that into a PICT resource, you would still get an opaque bitmap.

Of course QuickDraw made it possible to draw bitmaps with a mask in general, which one could have accessed in HyperCard via an XCMD. I’m sure someone must have created a way to do this at some point.
 
Top