Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Modern day equivalent to HyperCard?
148 points by merubin75 20 days ago | hide | past | favorite | 88 comments
My son is 11 and his school uses Scratch to learn basic programming concepts.

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.




1. Decker is the closest modern equivalent https://beyondloom.com/decker/

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.


Bubble doesn’t seem too much to do with HyperCard and as coder I find it almost unusable. I understand it but it’s so finicky…

I would say a modern HyperCard is LiveCode (outside Decker).


Thanks for sending me down the Decker rabbit hole. Another 4 hours of my life vanished, but I had a great time. The retro look covering a really interesting language has me hooked.


Scratch is far better and deeper than most people think. It's also interesting because the developer interface forces thinking for yourself on things like how to manage complexity in your project, or how to get different modules to communicate - and that's useful (if only helpers thought to point that out).

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.


> A web browser and javascript is fine too.

There seem to be many online environments where you can type your {html, css, javascript} code and run it. For example, MDN has one at

https://developer.mozilla.org/en-US/play

(Unfortunately it has advertisements... which I suppose is incentive to learn how to use custom stylesheets.)

I wish there were an offline environment like that built into firefox. You can bring up a javascript console, but it's not really a friendly development environment. And something like visual studio code is capable but large and complicated.

Unfortunately for javascript in browsers, the browser DOM is complicated and unwieldy. It's hard for beginners to figure out the right subset/features of (html, css, javascript, DOM) that they could use to create simple apps and games.


not sure it counts as "HyperCard" but for environments there's p5js.org (https://editor.p5js.org/)

> I wish there were an offline environment like that built into firefox. You can bring up a javascript console, but it's not really a friendly development environment. And something like visual studio code is capable but large and complicated.

That seems like a day project in electron. At least to MVP. Use CodeMirror or Monaco. As long as you pass the right options you can run the user's code in an iframe in a separate process. That way you can kill it even if it has an infinite loop.


> I wish there were an offline environment like that built into firefox. You can bring up a javascript console, but it's not really a friendly development environment. And something like visual studio code is capable but large and complicated.

I use BBEdit whenever I do web stuff (caveat: not a pro web dev) — if someone wanted to learn HTML/JS from scratch, I'd suggest a plain text editor like that.


Agreed. It would be nice if more apps would build scripting in.

Krita has: https://scripting.krita.org/lessons/introduction

while for Inkscape there is: https://inkscape.org/~pakin/%E2%98%85simple-inkscape-scripti...


> I wish there were an offline environment like that built into firefox

Webmaker[1] isn't built in, but it does offer an offline code playground

[1] https://webmaker.app/


It is deeper, of course it's turing-complete, and I do applaud how easy it is just to get started, and make something, which is absolutely the key to getting kids interested and keeping them so.

But I take huge issue with some of the 'deliberate' limitations. No function returns? No way to share code blocks? These are some of the fundamentals of code.

In my experience these limitations present a big barrier to kids who want to just get some things done, and teaches a very hacky style to those who are willing to learn the complex workarounds to overcome the barriers. Ultimately it leads to the majority being 'confined' to doing typical simple scratch projects, and a small 'elite' who go beyond. Possibly the opposite of what was intended.


Take a look at Snap. It was originally a scratch mod, but does allows for all sorts of advanced things. https://snap.berkeley.edu


Yes, snap is great. Unfortunately it's far more daunting than Scratch, if only just in the number of blocks and the way they are presented, using a smaller font, etc, so it's not so good for younger kids just starting out.

But it works as a next step for sure.


Next step is usually into regular code. We stepped into Godot, in our case. After working with scratch on one serious project you realize its limitations and their associated pains. And moving to regular programming language relieves most of this.


That's one thing scratch really needs: a quick way to switch back and forth between "visual" programming and text based programming.


Sure. But it's now easy to move on to the next bigger thing. A kid, club or school, can onboard with Scratch, and any laptop can also run python et al. By the time a kid notices all the cool stuff that seems possible and that they could achieve total world domination, they are in a decent situation to pick another language: python, javascript, whatever. And they can do that on their own - they don't even need the school anymore.


Well there's quite a big jump in complexity moving to python or whatever.

It's complex to even decide what to jump to, then there's setting up the environment, learning text editing and syntax, usually much more complex (and completely unfamiliar) graphics libraries, etc. And then they can't share projects so easily and aim to be curated, etc.

I like lua and love2d as the next step, as it's much simpler and cleaner than kitchen-sink Python (don't get me started on significant-whitespace), but it's still a big jump from Scratch. I wish there was a Thonny for lua though.


It is a big step. But the kid is now older and knows what programming overall is about. Less likely to get discouraged then. But sure, Lua will work.

I agree though that debuggers are usually too complicated - print-based troubleshooting will be enough to start with.


I do elementary school Robotics, we program the robot in a version of scratch / blockly. There is a huge amount what you can do.

The programming club does some pretty cool game things.


Are there any good starter kits that you'd recommend on the hardware side that work well with the software stack you all use?


Also onterested


VEXIQ is what we use. It has a little sister called VexGO it’s limit is the 4 channel brain. All of the mechanical parts are interchangeable, so do some VexGO, then add more motors, sensors, etc with VexIQ


Thanks for the pointer, these look awesome (not cheap, but well designed to not be too frustrating for kids).

Trying to figure out if it can handle proper full res camera input, looks like the optical sensor is a bit limited. Maybe these ports don't have enough bandwidth, tho. EDIT: Looks like the Exp level has the "AI Vision Sensor"


You would be surprised what you can do without the camera. The EXP/V5 camera is a closed garden, for example it can't do April tags yet.

Two schools of thought are 1)Software is the key to robotics - so the more powerful brain / camera is the selling point 2) Mechanical interfaces to the physical world is the key - the VIQ ecosystem makes this practical at a pretty low cost. If you root around on ebay for HEXBUG VEX ROBOTICS you can see lots of the plastic kits for sale that can give you parts that make something that you can later frankenmash into other things.

Good luck with your adventures!


lol awesome. Yeah, I’m kind of considering looking around for something more generic/open, but if it makes it too hard to do the basics, that might kill the enthusiasm well before we get anywhere near needing a camera. And I really like what I see of the mechanical aspects of this system. Thank you so much for letting me know about all this stuff. This is really cool.


> Scratch is far better and deeper than most people think.

Scratch has no local variables, no recursion, no pointers or references, and no data structures, correct?


Check out https://pytch.org/ which is a great way for kids (or anyone) to transition from Scratch to Python. Built by a friend of mine.


I really wish Livecode hadn't pulled their opensource/Community Edition (and I'd be very glad for someone to do something with that code).

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:

https://ryven.org/

and

https://nodezator.com/

What sort of coding, on what sort of projects do you want to do?

FURTHER EDIT: Two other programming environments to consider:

https://www.nodebox.net/

and

https://processing.org/


How have I never seen that OpenScad Graph Editor!!!!

I work a lot with openscad for projects with my 3d printer and it’s been a real pain adapting some things I find to save any time, because the language is a bit odd and using libraries came really obfuscate what’s going on…

Thank you so much for sharing it!


My pleasure!

It's a favourite tool of mine (donated so that the Mac version could get code signed) and I'd be very glad to see it more widely used.


First, thank you for the suggestions.

To answer your question: I really don’t know yet. The request comes from wanting to do a project together, and also for him to learn valuable future skills. He loves Legos, Spider Man, and Star Wars, so we will have to wait and see where his imagination goes.


For Lego bricks, is it an option to do Mindstorms?


I think you and your kid would have fun designing a Choose Your Own Adventure game in Twine. https://twinery.org/

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.


I cut my teeth on HyperCard and I'd say that the web (HTML, JavaScript) is a pretty good successor. Getting an image on a page and then linking between pages is quite satisfying when you're starting out. Something like a basic web page is great for a beginner but there's the whole gamut from there up to 3d games and virtual machines (wasm) to advance to when you're ready.


In the beginning of the Web the connections between Hypercard and the Web were known and intentional -- many early web browsers also included HTML editors because it was thought the Web would be a two-way street with users both reading pages and writing their own. The author of ViolaWWW (an early 1990s web browser) originally created it as an attempt to bring something like Hypercard to UNIX

https://en.wikipedia.org/wiki/ViolaWWW


Hypercard for coding was interesting because it relied on message-passing with a handler hierarchy that introduced modularity questions.

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.


Hatch (https://hatch.one) has many of the characteristics of HyperCard plus its "projects" are full featured, shareable and remixable (if you want) web pages.

- 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.


My suggestions would be Tcl/Tk or Pico 8.

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.


Tk was well designed and implemented. I'm still nostalgic for the Tk canvas object.

Python/tkinter isn't bad either.



Probably the correct answer. (I loved HyperCard as a kid and built a ton of stuff with it.) My only complaint about Decker as-is (last time I played with it) is that it has no ability out-of-the-box to make any kind of network connection to do anything. e.g. grabbing some data, triggering some webhook, etc. is all a no-go. Decker is completely self-contained and oblivious about the internet (a lot like HyperCard was).

Theoretically, it's possible to add network fetching to Decker, but it's an exercise left to the reader.

Leaving out networking feels very intentional in Decker, and if you start to go down that rabbit hole, I imagine it quickly devolves into all the pain and complexity of modern webdev.

(Would be happy if I'm wrong and happy to find out it's all there in Decker now.)


It does, now! If you build from source and turn on the Danger Zone, you can call out to the shell, including curl.

https://itch.io/post/9447223

https://beyondloom.com/decker/decker.html#thedangerzone


Awesome! Probably a fair compromise. Also, the "why no networking?" question has also been asked and answered by the developer here: https://beyondloom.com/blog/responses.html#doesdeckerhavenet...


Haven’t seen downpour mentioned, it’s pretty neat https://downpour.games/


Seconded! It’s mobile-first, very friendly, and very much designed for beginners. Lots of fun toys and games out there!


Scratch is basically HyperCard on steroids. I don't think there's anything you can do in HC that you can't do in Scratch.


Try hyperscript. It’s like HyperTalk for the web. Pairs w htmx.

See https://hyperscript.org/


LiveCode is about the closest literal logical successor to HyperCard.

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.

https://scratch.mit.edu


Excel

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.


That sort of thing makes me wonder why pyspread isn't more popula:

https://pyspread.gitlab.io/

and if mito will become popular:

https://www.trymito.io/

and whether maybe Jupyter Notebooks aren't the solution to this sort of thing.


I like Mathematica notebooks a lot and have thought about using it to teach computing to kids, its great to have every possible kind of data, from colors to star positions in the sky built in, plus its got lots of great graphics primatives can can even generate 3D scenes from code


I miss the Mathematica license my NeXT Cube had.


raspberry pi's NOOBS package includes Mathematics with a free personal use license


Powerpoint is the first thing that came to mind for me. Obviously it misses some of the simplicity of hypercard, but from a slide/card based point of view, it's pretty similar and is very powerful in ways that most people don't realize.


Livecode is the commercial version. It used to have a community edition (free) but that was discontinued in 2021. The various other alternatives (Supercard was clunky and apparently doesn't run on 64-bit systems, PythonCard is dead, Shoes is effectively dead) besides Decker would be something like Delphi (ObjectPascal). There used to be a wxWindows-based system but that seems to have died also.

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).



The web is distributed HyperCard. A website is basically a hypercard stack (albeit more text-centric than bitmap-centric) it's visual, card/page based, scriptable, and hyperlinked.

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.


Not Hypercard but there is a company still making a Visual Basic 5 clone: https://www.xojo.com

When I was young I found it a great way to get into programming since it's visual with immediate feedback.


Aye; that used to be called REALbasic, and I had good experiences with that in the late 90s/early 00s during my GCSEs/A-levels thanks to finding it on a cover CD of some Mac magazine in my local newsagent.


VB 5 (and, especially, 6) were some of the best UI builders ever designed, IMO.

Yeah, there was a crap language underneath, but I've never seen anything better at whipping up a serviceable GUI in a hurry.

Back in the day I sometimes wrote the UI for Windows C and C++ programs using VB6. It was that good.


In addition to LiveCode, you might also look at other “interactivity authoring” tools like Tumult Hype, Twine, and Roblox Studio, and even the retro https://hcsimulator.com.


My son, around the same age, liked p5.js the most out of several things I introduced him to


Surprised no one has mentioned Squeek Etoys? If its good enough for Alan Kay...? Or has Scratch completely superceded it?

http://www.squeakland.org/


EToys and Scratch were made by the same people but with different goals. EToys was made to allow children to express scientific ideas while Scratch was made to allow the participants of MIT's Media Lab computer clubhouses to express themselves creatively as part of the remix culture.

In EToys, as in the earlier Vivarium project, children were supposed to create all their own objects from scratch (ironically). In Scratch the use of clip art, scanned material and other people's project is encouraged. In fact, "scratch" is a dj term for a certain way of mixing music. I can't find the exact definition since Google insists on pointing me to the software instead.


I don't have any suggestions for today, but I feel like web components that try to reveal themselves & be programmable would be by far the easiest clearest most obvious path towards such a user malleable system.


If he wants to advance in the game space then he can either keep in the "visual coding" area using something like https://www.construct.net/en or start heading down the text coding path with https://godotengine.org/ or https://www.lexaloffle.com/pico-8.php


If your kid is already doing Scratch, Blockly is a really easy next step.

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.


Given so many HyperCard-like product exists - why is it that none have taken off and become common like HyperCard once was? What is missing or has changed?


HyperCard itself would not have had the role it did if Apple hadn't bundled it with every Mac. This is sort of like the Basic that came with older computers - any language that you had to get separately would get a tiny fraction of the popularity of the default option.


The World Wide Web.

HyperCard is an early hypermedia system predating the web.


It doesn't exist yet, but I want to make a programmable LOGO turtle for VR/AR.

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.)


Maybe not the same, but I find Red lang ( https://www.red-lang.org/), Rebol like language, somewhat similar in spirit.


A bit off topic, but something to consider perhaps is using something like Game Maker and extending a sample game. It has drag and drop control flow elements to ease into coding.

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 was a HyperCarder too.

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 know the authoring experience is a bit different, but I wonder if a bunch of .html files in a folder isn't a close modern equivalent.

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.


You might try out Plang, plang.is, not hypercard like but the syntax is natural language,

For the kids, they can write the the code in their own language, so non-english

Bit of self promo, as I created it


Blueprints inside the Unreal game engine would provide complexity and motivation. But it’s not for 2d cards but behaviours of agents in a 3d world.



get him a shell account on an open access Unix box. Just learning how those tools work (start with “more” and “man” “ls” and “cd”) teaches a lot about what programming really is: creating abstractions to solve problems. A shell account also gives you access to other people doing interesting things in that space. And maybe play rogue, as a treat :-)



Unfortunately, not really an option since it's still 32-bit:

https://www.supercard.us/purchase.html

>SuperCard remains a 32-bit application and will continue to be for the foreseeable future. This means it is not compatible with Catalina (macOS 10.15) or later versions of macOS.


Same with HyperStudio, which is a shame.


That's a shame.



Xojo is kind of like VB6 and allows Win/Mac/Linux + Web. I think it's free for EDU use.



I haven't tried racket myself, but it seems like a great first language.


Power Automate can be fun, and Adaptive Cards inside Teams work well.


No, not at all. Nothing with the system integration Hypercard had on the Mac and IIgs. It's pretty shitty that they took Hypercard and BASIC from the people. But we wouldn't have all these trillion dollar software companies these days if the user-developer had remained the core of computing.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: