1. 32

  2. 8

    I did a fairly major project in HyperCard back in the day (1986 maybe?). We were making an “expert system for the rest of us” product where you would build a rule set in a standard Mac application (written in Object Pascal and MacApp), then package it up for end users by building a UI in HyperCard. Which I still think is a good idea, btw!

    In addition to building a HyperCard extension to do IPC to the rule engine, I had to do a lot of glue code and utilities in HyperTalk. I ended up hitting the stack script limit of 32,000 characters repeatedly and having to find clever workarounds to the incredibly verbose language. Also, it turned out if you hit an error anywhere in a script that large, you would just be taken to line 1 of the giant script, so I searched for the error by sprinkling “play sound” commands around — the auditory equivalent of printf debugging.

    So I know a lot about HyperTalk, and yeah — if you’re an actual programmer, it was super annoying. Aside from x.y.z being z of y of x, it has “barewords” like Perl, so put foo into bar will change meaning when you define something called foo.

    1. 4

      hey, I am an actual programmer and I don’t find it annoying. It is very verbose but I find it quite clear and friendly. As for interfacing beyond the language, in the case of LiveCode there is something called “LiveCode Builder Language” which is a language like HyperTalk but that is statically compiled and used to interface with foreign libraries: https://livecode.com/docs/9-0-4/extending-livecode/livecode-builder-language-reference/

      You’d use that to extend LiveCode and bind into c, objc, java, whatever. It is a familiar language for those who know LiveCode and lowers the barrier of entry for writing libraries that do FFI in our ecosystem.

      I remember script limits quite well, they are really annoying I remember breaking scripts into multiple objects and calling each other to circunvent it 15 years ago. In the case of LiveCode you have many features that were not present in HyperCard such as behaviors which are scripts that can be bound to objects similar to a prototype chain and no script limits.

      1. 6

        Sorry for the “actual programmer” crack. The theory behind Hypertalk seemed to be that non-programmers would find it easier to understand, but in my experience on that project, Hypertalk actually made things more confusing for non-programmers because it was hard to tell what you could and couldn’t do. Having a syntax that looks English-like, but is really just a strict grammar using English words, was kind of the “uncanny valley” of programming (e.g., put newStr into character pos to (pos + the length of pattern) - 1 of inStr). And if on the other hand you were a programmer used to those aspects from more “normal” computer languages, it seemed like you might as well just use one of those instead.

        1. 3

          The uncanny valley is real is quite real this case. Thats why I keep saying english-like, it is not natural language processing, it is just a more verbose grammar. It is easy to teach though and easy to understand by reading examples.

          1. 1

            Having a syntax that looks English-like, but is really just a strict grammar using English words, was kind of the “uncanny valley” of programming (e.g., put newStr into character pos to (pos + the length of pattern) - 1 of inStr).

            I never had the chance to use HyperCard/Hypertalk in its prime, but that’s the essence of my discomfort with AppleScript.

        2. 1

          I’ve always found hypertalk / applescript to be a (the only?) read-only language. Sure I can edit an existing script, but there’s no way I could ever sit down and reach for it to create something “ex nihilo” as it were. Which I’ve always found to be a great shame, before Automator got the boot.

        3. 5

          There’s a lot of good things to copy in HyperCard, and it’s great to see that happening.

          However, hypertalk is emphatically not one of them. eep.

          1. 2

            I kinda like HyperTalk to be honest. I find it very friendly.

          2. 3

            Microsoft recently made a HyperCardy thing called PowerApps. It feels like a combination of Powerpoint and Excel. Each “slide” is a page in the app. And Excel-style formulas are one of several ways logic can be added to the objects in the pages. Their business model is to sell licenses to whole companies. The idea is to get a whole company on the platform so employees can share the apps they make. It’s bizarre for me; I’d prefer a model where you buy a license individually. Anyway, what I’m trying to say is that the HyperCard legacy is very much alive.


            1. 1

              This looks like Visual Basic stuff I did back in 03