I remember being introduced to HyperCard in the late 80’s/early 90’s. Does a modern day equivalent exist?
Caveat: I’m a marketer, not a coder (said in my best “Bones” McCoy voice). But I thought this would be a fun father-son thing to learn together and help expand his coding skills.
2. Bubble is easy for non-coders. https://bubble.io/
3. Gambas BASIC is a bit more technical, but will give you hard 90's vibes (Linux only) https://gambas.sourceforge.net/en/main.html
I think the advent of LLMs might make these types of tools more accessible to non-coders, or at least I hope so.
It's very unlikely the school is digging deep in Scratch. Most likely they are keeping to the very basics - and a kid can go deeper on their own... or not.
As the next step, moving to python or whichever other language is okay. And I doubt very much that at 11 they are already exhausting Scratch. A web browser and javascript is fine too.
Gambas is something I keep wanting to try and seems promising. EDIT: Other BASIC options include Twinbasic (looks to be stalled though) and Small Visual Basic.
I did one small app w/ Python and TKinter, but it was a dense wall of text/code when I was finished and not something I was interested in revisiting. I keep seeing suggestions that Python w/ QT support is supposed to be quite good.
One unlikely option is Google's Blockly (which I wish had a stand-alone desktop implementation which would make graphical programs), which has a nifty version implementing OpenSCAD:
https://www.blockscad3d.com/editor/
which I've used a fair bit. Moving on from there, there is: https://github.com/derkork/openscad-graph-editor which has the advantage of encompassing the entirety of OpenSCAD. It's also possible to wrap up Python using PythonSCAD.org
If you're willing to consider other node/line connection systems two promising options are:
and
What sort of coding, on what sort of projects do you want to do?
FURTHER EDIT: Two other programming environments to consider:
and
FWIW, there are a bunch of simple modern GUI builders, including GUI builders for the web, but none of them are popular, due to the sweet spot of supply and demand that Hypercard hit.
When Hypercard launched, it came with every Mac, it was free, and there was nothing else like it available on the Mac. On the Mac, the alternative to Hypercard was to layout UI widgets in code, with no GUI builder at all, or eventually to pay $$$ for a professional-grade IDE like CodeWarrior. As an entry-level user with no budget, if you wanted a GUI builder for the Mac, you got Hypercard, or nothing. This created a community of Hypercard enthusiasts.
Furthermore, when Hypercard launched, Macs had a standard screen resolution. Every Mac sold had a screen resolution of 512x342 pixels, so you could know for sure how your cards would look on any Mac. Supporting resizable GUIs is one of the hardest things to do in any GUI builder. (How should the buttons layout when the screen gets very small, like a phone? Or very wide, like a 16:9 monitor?) Today, Xcode uses a sophisticated constraint solver / theorem prover to allow developers to build resizable UIs in a GUI; it works pretty well, I think, but it's never going to be as easy to learn as "drag the button onto the screen and it's going to look exactly like that everywhere."
The last issue is the real killer for modern Hypercard wannabes: it's a small step from a web GUI builder to raw HTML/CSS. You don't have to pay big bucks to have access to professional-grade HTML, CSS, and JavaScript. Sure, they're not that easy to learn, but you can teach a kid to write interactive web pages, no problem.
As a result, the demand for a simple GUI builder is lower than it was for Hypercard, and even when you do capture a user, they tend to outgrow your product, and there are a zillion competitors, so none of them can build a community with real traction.
Small, accessible and visual languages are interesting for learning to the extent they enable you (your son) to explore on his own. But they're very frustrating because the delta between what you want and what you can do is so large, especially now that we're miles beyond hypercard/scratch in functionality.
The essential idea of coding is encoding: what behavior do you want, and how can you (most economically) represent the data and processes required?
Consider whether thought experiments would be a better way for your son and you (as a marketer) together to learn about encoding. If you focus together on learning how to think like a coder, it could be fun (instead of frustrating to drag through arcane syntax of toy languages).
The most powerful encodings are scale-invariant; the most interesting are generative. So you could start by thinking about the game of life, or fractals.
The other thing for an 11-year-old is teaching them to learn how to learn. Go with him down a rabbit hole of programming tiktoks/videos, and then step back to reflect on each, try to come up with categories, figure out how to find related topics and approaches, and summarize your results - then review them later and pull them into conversations to reinforce them. Start to see the math and encoding of life situations. Build mental models for getting frustrated (and reward systems generally), the game theory of competition, etc. -- things that will be relevant in teen years.
- Easy drag-and-drop interface with a library of images, audio, video, etc.
- Programmable with Visual Scripting for an easy on ramp to adding logic and behaviors.
- Programmable with Javascript if that's what you want to learn.
- HTML "components" if you want to dig into HTML, CSS and all that good stuff.
- A few tutorials to help get started with physics, animation, etc.
- Free.
- Super fun! Ok, I'm highly biased as one of its creators.
Tcl/Tk is still the easiest way I have found to make small gui apps and the language and standard library is small enough to keep in your head easily.
Pico 8 is my recent love. It's a great way to make small retro style games. There's a free educational edition or you can pay $15 for the full version which has some extra export options. I've been playing with it for the past couple months and my kids from 6-11 have started to get involved. It's programmed in Lua and I and my kids prefer it at the moment to our previous attempts at Scratch.
https://en.wikipedia.org/wiki/LiveCode?wprov=sfti1
That said, I think Scratch is a better learning environment these days and you can develop workable apps in the style of HyperCard. There are plenty of tutorials, documentation, and examples to work from.
I just went through the tutorials for a first time in about a decade (the Make Your First Pivot Table template on the home screen) and was really surprised at how they used slides with buttons (insert > shape, then right click and link to a cell reference) jumping to the next worksheet, reminded me of hypercard
from a market adoption standpoint, nothing else in this thread has much traction in allowing non-programmers at large to do compututation with their computer.
These days most folks would push you towards HTML / CSS / Javascript and possibly Node.js or Deno. In my mind Hypercard was the bridge between desktop programming and web development. Realistically that's not really bad advice.
For desktop programming, Dart/Flutter (Google recently laid off parts of those teams) are viable as are Python/Kivy (or even Python/Tkinter since Tkinter comes bundled with Python). You might also want to look at the DragonRuby Game Toolkit (Ruby).
Get him to put together a hello world page from scratch and get it published on a live domain and he will be hooked for life.
When I was young I found it a great way to get into programming since it's visual with immediate feedback.
https://developers.google.com/blockly
Critically, Blockly can emit JavaScript and Python, plus it supports plugins for extended functionality. So the kid can stay inside the blockly universe for as long as they like, but easily peer under the hood and get into Python or JavaScript as soon as they like.
Besides teaching programming, I think it could become a scripting tool to help create experiences in VR/AR.
My first introduction to programming was via LOGO writer (although I didn't even realize I was learning programming until much later.)
That's kind of how I got into it at least. It's quite fun to modify the gravity variable of a platformer and see the effect, as an example.
I would say the answer is none of the below/above...
GDevelop is an app for making games. Your son will love it. It has a very cute visual programming language, not too far from Scratch.
I watched a few 10 minute tutorial videos and "got it"... you two will too.
p.s No connection to the company.
I originally learned the basics from a book in the 90's. It was easy to get into, and those basics haven't fundamentally changed.
For the kids, they can write the the code in their own language, so non-english
Bit of self promo, as I created it