Decker, a platform that builds on the legacy of Hypercard and classic macOS

4 years ago (beyondloom.com)

If you knew Hypercard, then you still might be blown away by viewing the tour [1]; written in C, OSS under the MIT license. This one's a keeper!

[1] https://beyondloom.com/decker/tour.html

How did we manage to lose GUI editing of HTML, as in Dreamweaver, and GUI editing of user interfaces, as in Visual Basic?

  • We also lost GUI editing of interactive vector animation, as in Flash.

    • I know. It used to be common to build the 2D UIs of games in Flash. The Adobe design tools were OK, and there are third-party libraries for running Flash. There's even a Flash runtime in Rust.

      1 reply →

  • It's tricky to do GUI editing when your design is expected to be responsive to different aspect ratios, input methods, and screen sizes. :(

    • Not tricky if you spend the time. I'm always speechless when people claim that lack of responsive screen adjustment was the death knell of Flash/AS3. Any language or stack is going to suck on some screens unless you test it on those screens and write code accordingly. Nothing had better performance in this than Flash, up until Google decided to stop letting Chrome fire off new window boundaries on resize until the click/drag was let up. I wrote practically a whole operating system with window managers and apps in a resizable browser window in 2008 using that tool in under 300k. And large portions of the graphical elements were done through the GUI. Do you realize how much more boring and time consuming it is to write every media size CSS subclass and have to test it compared with just drawing multiple sizes of things and changing their positions and filters?

      2 replies →

  • We didn't, of either.

    If you have a WordPress blog, you would be surprised how much you can edit in GUIs. .NET/Delphi/etc. are still around. Heck, you can GUI edit a Swing app right now if you want.

    The trouble is that GUI editing is super limited, so it is worth learning to write the code yourself. And frankly, HTML with CSS3 is not that hard to make by hand; organize div and spans and other tags around what you need, then open the page in Chromes dev tools and adjust margins etc., until it looks like what you want, then save the CSS file it generates.

    This is much better than fighting with a GUI tool.

    • It’s better than fighting with a gui tool if you care about gui. I just need something to work and then give it to someone. I still haven’t found anything productive outside something like retool (cannot use cloud for the work I do) that works for me. Most wysiwyg tools now use drag and drop to containers that are responsive etc which I find impossible and tedious to use. I want to throw stuff on a canvas and hook it up to the backend I made, test it and then throw the code to a frontend colleague. Found nothing usable like Delphi (used it for 10 years in the 90s/00s) but for html for that yet; it’s all tedious, slow and usually incredibly buggy.

      I am a senior (30 years+) software engineer and html/css really doesn’t work for me. I can do it but I find it boring and annoying.

      1 reply →

  • Livecode offers exactly what you're describing: GUI editing of a live user interface, with code able to be built-in to every object. https://livecode.com

    It's based on HyperCard, so the language isn't to everyone's taste. But it's updated to include color, unicode, more advanced coding techniques, database access, multi-platform and more. But the basic concept -- I want a button here, and a field there, and a slider there -- is still 100% there.

  • Professionals in every domain like to maintain a certain level of difficulty to keep amateurs out. The tools of a trade can never be too easy, the tax code can never be simplified, legal writing and procedure has to be opaque etc. as professionals subconsciously reject job security threating ideas.

    This sabotage is subtle: A wide variety of technical decisions can be made at any time, with complex trade-offs, bounded by what the majority of developers is willing and able to handle. As we move our servers to the cloud to make our lives easier and get admins fired, the exact right level of complexity shows up in AWS and Azure to enable stable and well-paid cloud expert jobs. For that difficulty-goldilocks-zone, Visual Basic was too easy, and things like functional programming are too hard.

    • This is nonsense. The tax code is complex to close loopholes that smart money-motivated people find in it. Similarly, programs are complex because they solve complex problems. Of course you can write very simple programs, but they simply don't solve the complex problems. None of this is about gatekeeping anyone, all of this is about what value we actually provide.

      3 replies →

    • > Professionals in every domain like to maintain a certain level of difficulty to keep amateurs out.

      Not all of us. I fervently wish that implementing the various platform-specific accessibility APIs, and the corresponding tricks for canvas-based GUIs in web applications, was easier, so more GUIs would be accessible. I wish I wasn't one of maybe a few hundred people in the world who had substantial experience with the UI Automation API on Windows, for instance. I'm working on an open-source project to try to package up that specialized knowledge in a reusable implementation. But it takes work to make inherently complicated things easier.

Awesome project, and the C source code is very cool. Distinct APL influence in how it emphasizes code density.

Slightly off tangent, maybe... but boy do I miss Macromedia Director. It was a big part on the beginning of my career.

Director allowed quick development of Multimedia catalogs and even games. I wonder nowadays, what has taken its place? Let's say that I want to throw together some media assets, sincronize it's behavior, add some functional logic and package it all as a standalone binary to distribute, what should I use? An Engine like Unreal o other? Is there any authoring tools for that?

This are totally honest questions. I don't know the "state of the art" nowadays and if is even possible with an acceptable learning curve for someone to do that kind of things we use to do with Director

And then there was HyperStudio on the Mac. I'm pretty sure it had native color before HyperCard. Later versions were able to export as html5. Ted Nelson remarked, "HyperStudio was a paradigm challenge of a serious nature"

  • FWIW, HyperCard never had native color. There were some plug-ins to allow it to render color graphics, which enabled Myst, if I recall correctly, but HyperCard’s native tools and language couldn’t interact with the resulting renders.

I’m suddenly obsessed with the idea of building a HyperCard in Decker and then exporting it as a webpage. Can you?

  • How about re-implementing it for the editable Web? (Wiki-like, but with additional controls and some web-based editor?)

Hypercard was the way that I learned visual programming when I was young. For years, I've wondered why nobody had created anything similar. This is a wonderful modernization of the Hypercard idea and a love letter to the original software.

The thing that hypercard completely missed was the hyperlink.

The second thing was that hypercard was a program html was a format.

Another case of worse is better? shrug.

  • You all probably know this… Contemporary computing behavior is for the cursor to change to a little hand as it rolls over a link or button. This was first introduced by HyperCard, so it is there as an everyday reminder of its legacy.

  • HyperCard absolutely had hyperlinks, and later versions had them in recognizable form before the web did — you could link from an arbitrary range of text in a text field.

    • You could link to content _in another Stack_ (file) , for that matter. HyperCard absolutely had hyperlinks :) They were just called Buttons, but you could not only directly link to something, but also attach scripting to do additional stuff, pretty much exactly like the <a> tag we use and attach click events to today. I mean, I guess it wasn't like a piece of inline text, but you would just overlay a transparent button. That's a method I used, but there were probably better ways to link text. It was a long time ago, tough to even remember haha

      5 replies →

  • The thing html missed out on (which was part of the original vision, to be fair) was using the same program for editing and viewing.