26 comments

[ 3.1 ms ] story [ 64.9 ms ] thread
I love blog articles like this. Someone posted one recently that had the mechanisms of a watch beautifully programmed and very smooth. This one was captivating in a general sense but I'm a little ashamed to admit I don't quite grok the significance of the programming portal in the way it is being celebrated in this article, but it does give me warm feelings about old Macromedia software the way that they're presented. What a pleasure to read. Thanks to those involved for making this!
This was really interesting. I am surprised arguably the best modern example of this didn't get mentioned. Excel.

Now I'm curious how easy it is to get at the python bits of Blender during a session instead of having to pre-build addins to handle your needs since I know about its scripting layer.

That surprised me too. Any serious user of Excel has typed in a text-based formula. More proficient users can drop down into VBA and write code that interacts with the spreadsheet using a DOM-like object model - which seems to exactly match the definition of "programming portal" described in the article. And this VBA code doesn't just have to be a simple macro to save a few keystrokes - it can be a full-blown GUI application that connects to a database or controls another program.
It really fascinates me how many conceptual areas the idea of portals appears, and it often entails this idea of a breakaway society, a way of life separate from the mainstream.
Don’t forget the console on Doom, Quake, and many games since like Minecraft. Small though they are they do let you program and change the parameters of the game while it is running.
She missed the biggest ‚programming portal‘ of all: Smalltalk! Pharo (https://pharo.org/) and Squeak (https://squeak.org/) are the best-known modern incarnations.

Inspecting objects, ‚live‘ coding, a GUI that's intimately tied to its CLI - that's exactly Smalltalk!

The Morphic UI: http://wiki.squeak.org/squeak/1870 and https://en.wikipedia.org/wiki/Morphic_(software)

Making an app: https://codingitwrong.com/2021/04/28/creating-a-smalltalk-ap...

And a nice entry from someone else's digital garden: https://becca9941.github.io/2019/09/01/making-a-ladybug-in-p...

Apple borrowed Smalltalk's paradigm from Xerox PARC and commercialized it (iPad and iOS, with their (pay)walled gardens and locked interfaces), but Smalltalk really pushed the limit with interactivity.

There's still room for Alan Kay's Dynabook, as a portal to programming.

Aside from the content (which is fantastic), this is one of the most graphically pleasing blogs I have come across in a long time.

* Clean design. No loud colors, animations, popups or clutter.

* Sensible CSS usage. Good colors, contrast, margins.

* Large text size. I don't know why so many sites (including HN) mess this up. I don't want to have to magnify a site 3-4x just to read the text from a reasonable distance.

* Rich content when needed (images, GIFs, video embeds), all serving to complement the writing rather than getting in the way.

* Reads very well on mobile devices.

* Loads quickly.

Sites like these are a perfect response to many different sides of the web design debate – including those who preach that plain HTML with six tags and no CSS/JS is the only acceptable answer for a functional website.

I agree. One additional detail to notice is the use of horizontal space. There are several different widths being used, depending on the type of content. (I'm on desktop.) I like the varying "full-width" image sizes, as well as the footnotes on the side. But most exciting to me is how the content gets wider for side-by-side image and text components, such as the early MS-DOS CLI screenshot. This component uses the extra horizontal space that it needs to, while maintaining flow with the rest of the writing above and below it. It's elegant and I believe it's an innovation. After experiencing this post, the typical blog or article layout crammed into a fixed-size column seems straitjacketed. It's inspiring.
> Sites like these are a perfect response to many different sides of the web design debate – including those who preach that plain HTML with six tags and no CSS/JS is the only acceptable answer for a functional website.

For what it's worth, it breaks Dark Reader.

You forgot the gorgeous hand-drawn illustrations. Maggie's website convinced me to make my own illustrations on my website too.
Something weird going on with my phone's webview. The site jumps around constantly, making it unusable. Looks like the superscripts and their hidden references constantly re-render. Can't debug cos webview.

Works fine in Android Firefox though.

The fonts are way too big.

The answer to your problem is for you to increase your default zoom level to a comfortable level, not for individual web sites to use non-standard big font sizes.

I disagree about the text size. Completely. HN, like other sites, uses a font that's approximately the same size as other text on my screen. User interface elements, command prompts, text editors, ... . Essentially everything has that same approximate size.

Is that not the case on your system? Or if it is, why do you want websites to have a larger font than other text on your screen?

Oh hang on, I see you mention mobile devices. I was assuming reading on desktop. Yeah, that's a different matter. I can see how the text on HN is too small on mobile devices. It's easy enough to make the right size for both mobile and desktop though, I would think.

My mind immediately went to the scripting systems, visual or text based that allow level designers to create the game experience in a programming portal that many are unfamiliar with.

The blueprints of Unreal Engine. The shader graphs. All of the best allow for working interactively.

Smalltalk's vision is partially embodied in Unity where live editing works for many things and the feedback loop is often instant.

But nothing really achieves fully what has been envisioned.

One of the reasons why utopias don't exist for programing portals for serious work is the flipside of programming - debugging.

If and when they succeed for anything more than the simplest uses, they can come up against a lack of good systems to collectively inspect and reason over failed functionality or performance.

I still love things in this vein. Shadertoy and Graphtoy come to mind.

This is an interesting idea. I work on video creation applications, and what I’ve found is that there is a very small sliver of users who want programmatic access to the data model, and the rest not only don’t want it, but are turned off by it.

A problem with adding it is that it opens up a lot of ways to mess up your application, so you have to do a lot of work to make it work properly for users. Given how awful every developer tool I’ve used over the last 40 years is, I have to believe that making developer tools is a very difficult thing to do. Now making one that non-programmers can use, seems even more difficult. It does leave users with a lot of power, though. I can’t argue that.

The linked 2013 Notion demos look incredible. I really wonder what made them drop all of those features.
> the GUI or graphical user interface. A place where every available feature was visibly laid out before you

Android designers: "but what if we could make a GUI where you need a youtube tutorial to access any feature?"

I actually added a whole procedural generation system integrating LiveScript and p5.js into my NFT generator with little tabs that open right next to the place where the trait images are uploaded. Each trait has their own code for trait definition, pre draw and post draw. They can reference other layers easily. As far as I know, no one except me has ever used it. https://algonfts.art

If I ever have time I might make something similar but more along the lines of Unreal Engine Blueprints or Houdini.

I think the next interesting developments for user interfaces will involve AR/VR and AI. For example, you could visualize a large retro computer game collection with a 300 foot bookshelf if you wanted. Or suppose that some components had haptic interfaces and could literally snap together if you were using controller or haptic gloves.

Or maybe a debugger could show each step of a program state as a separate offset 3d layer and you could just lean forward slightly to peek at a previous step.

Maybe command menus could be navigated with slight gestures and finger arrangements.

A good haptic glove and AR display could provide a highly customized keyboard and set of buttons specific to each application if desired.