All programming environments do that for programmers. Not all do that for people who aren't software developers.
Case in point: Some of the finance people I work with build incredible spreadsheets. Formulas upon formulas that turn their special spreadsheet into what is really an application. They're programming, but that isn't how they think about it (I've asked). They're just Excel power users.
HyperCard aficionados were the same way. They were programming with the assumption that they just knew HyperCard really well.
It was even clear from the terminology: anyone who made stacks in Hypercard was called an "Author" -- which comprised both "developers" AND users. That naming couldn't be more to the point about the intention of the system.
As an example, a decade ago I taught art students how to code. They had Macintoshes. I had them download Emacs then taught them Emacs Lisp. As insane as that sounds, it was interactive, easy to install, and interesting. They were able to write programs in the REPL after the first class. I wouldn't have dared to have put them in front of XCode or some equivalent IDE.
A fair question. An easy answer is that I thought Lisp was pretty cool, and that the students were capable of it. And, pragmatically, I was experienced with it, unlike MaxMSP or Processing.
But there was something philosophical: I liked the idea of introducing them to the feel of fundamental computer science, rather than a nice layer over computers for artists. (And what artists actually use those nice layers?) I wanted them to experience an open source ecosystem (unlike Max), and I felt that the Java-base of Procesing was off aesthetically -- too many layers over the machine.
Thinking about the OP, I do wonder what it would have been like to teach coding-for-artists with Hypercard. One thing I love about Emacs Lisp is that it is only grudgingly visual. That it returns computers to something which sends output to a TTY. It gives people who have grown up with a GUI a vision of what computers were like before. I like that Emacs (and Lisp) are things with a history and touch on earlier eras of computer culture.
Swift is absolutely targeted as an introductory programming language. The same audience that was scripting in Hypercard could grab Apple's Swift Playgrounds iPad app and start learning Swift using neat interactive tutorials today and graduate to writing full-fledged programs. Not only that, but Xcode Playgrounds on the desktop are also a great interactive environment for playing with code, just without the awesome interactive tutorials that Swift Playgrounds on the iPad has.
> The same audience that was scripting in Hypercard could grab Apple's Swift Playgrounds iPad app and start learning Swift using neat interactive tutorials today and graduate to writing full-fledged programs.
You're correct in that some software developers got their first taste of programming with HyperCard, but you're incorrect in that 99%+ of HyperCard users would have zero interest in developing in Xcode (regardless of language).
They are completely different experiences designed for completely different types of users.
But I also disagree. The people who just dragged around icons in Hypercard and never actually did any scripting, they wouldn't do anything with Xcode, but they're also not the people we're talking about. The people who did learn Hypercard scripting absolutely could do the exact same thing by dragging around buttons in Xcode's Interface Builder and hooking them up with a little bit of Swift scripting. That tutorial about making a calculator in Hypercard, you could do very nearly the same thing in Xcode except for the missing "eval" operator, but that's ok because you can just run each operator immediately (like normal calculators do) instead of building up a long string and then eval'ing the whole thing.
You did, but (as you note) Swift Playgrounds don't get you anywhere near the interactive, self-contained experience that users could create and share with HyperCard.
> The people who did learn Hypercard scripting absolutely could do the exact same thing by dragging around buttons in Xcode's Interface Builder and hooking them up with a little bit of Swift scripting.
What you're saying is analogous to saying, "People who learned Excel and VBA could do the exact same thing by creating a web app in Visual Studio Code and hooking it up with a little bit of JavaScript". Yes, conceptually both are "just" programming. In reality, they're worlds apart.
“Swift Playgrounds don't get you anywhere near the interactive, self-contained experience that users could create and share with HyperCard.”
This. I remember trying Playgrounds when it came out, and it took only minutes to reveal itself as an embarrassing fraud. It pretends to be a persistent environment in the style of Smalltalk systems but it isn’t. Edit a single line of code, and re-executes all of them. Every single time. Utterly useless for exploring stateful systems. Utterly useless as an open environment that users can shape and grow to suit themselves.†
Worse than useless, actually, because it lies to those users just as Tim Cook does.
Hypercard may have had its problems, not least its dour unappealling 1-bit graphic shell, but it was built up from, around, and for users; a depth of design that both reveals and proves itself in use. Software that fits itself to its users; not the other way about. Swift Playgrounds may bring all the shiny, but scratch its surface, step beyond the picturesque preplanned boundaries, and it reveals itself a hollow shell. Canned hype-ware; a dumb monkey-trainer, nothing more. Seymour Papert would’ve garroted it, were he not spinning in his grave instead.
--
†Bonus irony: Swift’s command-line REPL implemented persistency absolutely fine, so there was absolutely no excuse for Playgrounds’ botched cheat. (OTOH, the REPL completely buggers up the “P” bit, making it equally dreadful for non-trivial interactive coding.)
There is nothing “introductory” about Swift. It’s a C++ descendant with all the complexity and inconsistency to prove it. All the Playgrounds lipstick in the world doesn’t change the fact it’s a pig, and Tim Cook on stage telling edu customers that Apple created Swift to teach kids to code is just a reminder that Cook is an absolute hack at sales.
..
As for Hypercard, it died because nobody knew how to sell it. No customers, no revenue; no product. Doesn’t matter if you’ve the best technology in the world, it ain’t worth squat if it doesn’t put bums on seats. And while users who did “get” HC really got it, and absolutely adored it as a result, there wasn’t anywhere enough of them to justify its continued existence as part of the Apple product line.
A basic rule of business: learn how to fire your customers. Scrapping niche-appeal distractions that will never drive your major markets is just a subset of that.
All sorts of non-techies were able to do that with Hypercard. I remember a shop that had some sort of stock control system the owner had built himself.
Things like PHP, VB and to some extent Excel had some success, but only by forcing the non-technical to become technical. In actuality they're just regular programming with a slightly less steep learning curve. Only Excel escapes this somewhat.
Most IDEs, and XCode have no pretence at catering to user-friendliness or the non-technical. Apart from anything else you have to search for, find, and install XCode from the app store - I know it's not hard, but that's not the point. The learning version of PyCharm for instance just integrates some tutorials. You still have to become a techie to succeed.
There's a distinct hole in the experience in not having Hypercard, or even the simple BASIC of 8 bits ready to go, with examples. It both reflects and reinforces the position as consumption device, and has distanced creation.
Far more were able to dip into a little ugly BASIC to knock up a menu, calculator or whatever, just as many were able to build surprisingly complex things in Hypercard without ever thinking they made that leap.
I think slowmovintarget has it by saying they never acknowledged they were programming at all. I'd liken it to the kids who were terrible at, and hated maths, but could do frighteningly quick and accurate mental arithmetic when working weekend at their parent's market stall or shop.
Maybe the magic is the ability to hide that you're doing something somewhat technical.
I haven't done so recently, but for some time I would look at the latest Mac development tools. They were always just too forbidding. "Hello world" can't require 1000 lines of code, or several pages of instructions to get it working.
Hypercard was a breath of fresh air. Not only could I write useful programs quickly, but I could share them with others, with little risk of mishap. I even wrote software to control rudimentary hardware gadgets using a couple of code resources that I wrote in Pascal.
Today, the point may be moot if Python and Javascript work well enough on a Mac.
That's the thing. In the late 90s if I wanted to make a GUI application that could do a large share of what the overall computing system could do, I had Hypercard. And one didn't even need to study, exactly: all stacks were inspectable and therefore examples of themselves, and examples for learners. You could copy and paste buttons in context. Hypertalk was designed to be easily read (rather than written). Today if a regular user wants to make even a simple GUI, they need to learn a full-fledged programming language just to get started. What a shame!
> if Python and Javascript work well enough on a Mac.
They absolutely do not. Even getting started with a GUI app is a major undertaking in either one of those ecosystems.
And that term "ecosystem" indicates the problem, HyperCard was an application for making applications when "application" was just a fancy word for a program with a GUI. Nobody wants to download and learn an ecosystem just to build an app. There should be an app for that, but there's not. We don't have app-building apps on every iPhone because Apple chose not to put app-building apps on every iPhone. It's not hard to see why.
On Android, the closest thing to an "app building app" is Tasker. It's meant for end-user automation, scripting without much typing, but it's powerful enough to build whole GUI apps (and it wisely offers an option to export such creations as standalone .apks).
It's definitely not Hypercard, but it shares its spirit, and is still a very useful thing. Like, e.g. last weekend I though I'd like to run a sampling profiler on myself - i.e. every now and then pop up a notification to record what I'm doing at any given moment, and store that data in a format I could later use for analysis. I managed to build one in 30 minutes in Tasker - complete with showing the list on a smartwatch and recording to CSV; after first spending the same amount of time looking for existing solutions and failing to find any. That's to show how easy it is to do, straight on your smartphone. It's something you could easily do on a bus or a train - and more importantly, it's something a regular non-tech person could do too.
Thanks. Interesting, looks like it's being developed by the Beeminder people. I probably would've given it a go if I found it (discoverability of PlayStore sucks), but now my 30-minutes solution is actually more feature-full than this (in particular, it works on a smartwatch).