HyperCard was the single greatest inspiration in my programming career. I learned it when I was about 12, the age of the kids in The Wonder Years show. So it had a huge effect on my brain's development.
It's a little hard to explain what's so great about it. What I remember is that it was my first real exposure to scripting vs systems programming. So for example, I played with the little MIDI-style music generator forever. It blew me away that such simple notation controlled the complexity of the music chip. I sort of knew that somehow computers used binary and converted bytes to the shape of sine waves and stuff, because I was also using an old program called SoundEdit to kind of draw sound using commands like "envelope" and "FM synthesis" if I remember correctly. But being able to command that complexity from a conversational or human standpoint really blew me away.
And everything in HyperCard was like that. You could dial the modem, speak text, make your own calculator or rolodex, just on and on and on, in probably the smallest amount of code that I've ever encountered. And my parents could even read the code, without ever learning how to program!
So what that ended up creating was a feeling that the computer was full of easter eggs. For example, I didn't have access to array functionality (or more accurately, wouldn't have known how to use such a construct). I needed it to store the piece locations for the walls in a Gauntlet-style game I was making. So I ended up storing the coordinates like (100,200) as lines in a text field, and then seeing if that text "contains" the coordinate I was trying to move onto. But see, the text search functionality even on an 8 MHz Mac Plus is so fast as to be effectively infinite from a human frame of reference. So even though I was full-text searching these text fields, the game ran in real time and was a lot of fun. I still use this technique today in languages like PHP, where I know that the language is slow, but I can call down to any system call or compiled C function, and it will generally be faster than I need it to be.
The only downside is that it opened my eyes to how tech could serve humanity, only to see that vision inverted so that we ended up at the present day where humanity serves tech. I know that the direction that tech is going is wrong, but I have trouble articulating how or why. And it kind of haunts me that something as revolutionary as HyperCard could be written in the 80s in Pascal, such a primitive language by today's standards, but we keep missing the mark with all of our modern tools.
What's the next tool like HyperCard that could free humanity from this tedious labor? I just don't know, and that bothers me. I think loosely that it will work like J.A.R.V.I.S. on Ironman, but I know that all of the current approaches like Alexa and Siri are coming at it from the wrong direction. They're trying to find use cases for consumers from a profit motive perspective. But digital assistants need to work more like wolframalpha.com, and give users access to all of the capabilities in their computer (only in a notation that isn't terrible, no offense to Wolfram Alpha). I do know that some of the prerequisites are blocked by corporations though, like we should have had a cross-platform scripting language like HTML/Javacript long before the arrival of the internet. Apple and Microsoft would never allow that though, obviously. It should have been more of a hybrid between AppleScript and VBScript, only not terrible. Even AppleScript is a profoundly worse language than HyperTalk, and I don't know why. These deep questions get glossed over by everyone, and I hear quips and solutions for this or that. But remarkably, everyone is wrong, or else we'd be using that next better thing.
It's a little hard to explain what's so great about it. What I remember is that it was my first real exposure to scripting vs systems programming. So for example, I played with the little MIDI-style music generator forever. It blew me away that such simple notation controlled the complexity of the music chip. I sort of knew that somehow computers used binary and converted bytes to the shape of sine waves and stuff, because I was also using an old program called SoundEdit to kind of draw sound using commands like "envelope" and "FM synthesis" if I remember correctly. But being able to command that complexity from a conversational or human standpoint really blew me away.
And everything in HyperCard was like that. You could dial the modem, speak text, make your own calculator or rolodex, just on and on and on, in probably the smallest amount of code that I've ever encountered. And my parents could even read the code, without ever learning how to program!
So what that ended up creating was a feeling that the computer was full of easter eggs. For example, I didn't have access to array functionality (or more accurately, wouldn't have known how to use such a construct). I needed it to store the piece locations for the walls in a Gauntlet-style game I was making. So I ended up storing the coordinates like (100,200) as lines in a text field, and then seeing if that text "contains" the coordinate I was trying to move onto. But see, the text search functionality even on an 8 MHz Mac Plus is so fast as to be effectively infinite from a human frame of reference. So even though I was full-text searching these text fields, the game ran in real time and was a lot of fun. I still use this technique today in languages like PHP, where I know that the language is slow, but I can call down to any system call or compiled C function, and it will generally be faster than I need it to be.
The only downside is that it opened my eyes to how tech could serve humanity, only to see that vision inverted so that we ended up at the present day where humanity serves tech. I know that the direction that tech is going is wrong, but I have trouble articulating how or why. And it kind of haunts me that something as revolutionary as HyperCard could be written in the 80s in Pascal, such a primitive language by today's standards, but we keep missing the mark with all of our modern tools.
What's the next tool like HyperCard that could free humanity from this tedious labor? I just don't know, and that bothers me. I think loosely that it will work like J.A.R.V.I.S. on Ironman, but I know that all of the current approaches like Alexa and Siri are coming at it from the wrong direction. They're trying to find use cases for consumers from a profit motive perspective. But digital assistants need to work more like wolframalpha.com, and give users access to all of the capabilities in their computer (only in a notation that isn't terrible, no offense to Wolfram Alpha). I do know that some of the prerequisites are blocked by corporations though, like we should have had a cross-platform scripting language like HTML/Javacript long before the arrival of the internet. Apple and Microsoft would never allow that though, obviously. It should have been more of a hybrid between AppleScript and VBScript, only not terrible. Even AppleScript is a profoundly worse language than HyperTalk, and I don't know why. These deep questions get glossed over by everyone, and I hear quips and solutions for this or that. But remarkably, everyone is wrong, or else we'd be using that next better thing.