Live data from Hacker News

Malleable computing, Emacs, and you

yummymelon.com

41–50 of 57 posts

Re: Malleable computing, Emacs, and you

#41

Earlier quoted context omitted.

How was OSA/AppleScript not an OS-level malleable computing layer?

I don't know first hand of anyone who ever used it for anything. Maybe I knew the wrong Mac users (mostly teachers).

Re CharlesW: OSA was an OS-level malleable-computing layer, on paper. Apple Events exposed scriptable objects; OSA let multiple scripting dialects share the same runtime. The gap was who actually shipped working product.

Dave Winer's Frontier (UserTalk) is the piece these threads usually skip. Frontier 1.0 shipped in January 1992 -- the same month Apple finally held its one-day scripting developer conference, after years of canceling and restarting AppleScript.

Winer's history:

http://scripting.com/dwiner/historyOfFrontier.html

UserTalk wasn't bolted on. It was registered as an OSA dialect: Script Editor, HyperCard, Nisus ("Do Script"), and other OSA hosts could run UserTalk, not only Frontier.

Manual:

http://scripting.com/frontier/manual/chapter01.html

UserTalk as OSA dialect:

https://sbc.apeth.com/frontierDef/ch34.html

What made it malleable in practice: syntax is an outline (code and data are the same tree); object DB + interpreter + outliner in one app; and one of the most complete Apple Events client/server stacks on the Mac -- I used Frontier and Radio Userland to automate other apps heavily, often before their AppleScript dictionaries caught up.

So yes: OSA/AppleScript was malleable computing at the OS layer if you count UserTalk and HyperCard and scriptable apps, not only Apple's English-like syntax. AppleScript won the namespace; that doesn't mean nobody used the layer. SoftTalker's teachers weren't the crowd wiring Finder, FileMaker, HyperCard, and CGI with UserTalk.

Later the same core powered Manila, Radio Userland, RSS, OPML, XML-RPC. Short timeline:

https://eclecticlight.co/2025/02/22/a-brief-history-of-scrip...

I've posted about this at length before on HN — ThinkTank, MORE, UserTalk, Apple Events, Radio Userland, the whole outline-as-language lineage. Two long ones:

https://news.ycombinator.com/item?id=30871497

(on Excel / visual data models — why we still need "Google Trees", and how Frontier got there from MORE)

https://news.ycombinator.com/item?id=26217472

(on Xanadu open source, Hugh Daniel in the winged cap, and why hypertext without a scripting language is hyper-crap)

Index post linking several of these threads:

https://news.ycombinator.com/item?id=21170434

Excerpts from the first (30871497):

The thing that's missing from "Google Docs" is a decent collaborative outliner called "Google Trees", that does to "NLS" and "Frontier" what "Google Sheets" did to "VisiCalc" and "Excel".

And I don't mean "Google Wave", I mean a truly collaborative extensible visually programmable spreadsheet-like outliner with expressions, constraints, absolute and relative xpath-like addressing, and scripting like Google Sheets, but with a tree instead of a grid. That eats drinks scripts and shits JSON and XML or any other structured data.

Dave Winer ... originally developed a wonderful outliner on the Mac originally called "ThinkTank" and then "MORE", which later evolved into the "Frontier" programming language, and ultimately the "Radio Free Userland" desktop blogging and RSS syndication tool.

More was great because it had a well designed user interface and feature set with fluid "fahrvergnügen" that made it really easy to use with the keyboard as well as the mouse.

After the success of MORE, he went on to develop a scripting language whose syntax (for both code and data) was an outline. Kind of like Lisp with open/close triangles instead of parens! It had one of the most comprehensive implementation of Apple Events client and server support of any Mac application, and was really useful for automating other Mac apps, earlier and in many ways better than AppleScript.

Then XML came along, and he integrated support for XML into the outliner and programming language, and used Frontier to build "Aretha", "Manila", and "Radio Userland".

He used Frontier to build a fully programmable blogging and podcasting platform, with a dynamic HTTP server, a static HTML generator, structured XML editing, RSS publication and syndication, XML-RPC client and server, OPML import and export, and much more.

Excerpts from the second (26217472):

I was a "random turist" high school kid visiting the AI lab on a pilgrimage. That was when I first met Hugh Daniel: this energetic excited big hairy hippie guy in a Xanadu baseball cap with wings, who I worked with later, hacking NeWS. Hugh and I worked together for two different companies porting NeWS to the Mac.

The fact that Xanadu didn't have a built-in extension language was a disappointment, since extensibility was an essential ingredient to the success of Emacs, HyperCard, Director, and the World Wide Web.

Anyway, my take on all this hyper-crap is that it's useless without a good scripting language. I think that's why Emacs was so successful, why HyperCard was so important, what made NeWS so interesting, why HyperLook was so powerful, why Director has been so successful, how it's possible for you to read this discussion board served by Frontier, and what made the World Wide Web what it is today: they all had extension languages built into them.

If you're into malleable computing and you've never looked at outline-as-language systems (Frontier/UserTalk, MORE, later outliner-programming ideas), you're missing half the Mac story — the half that shipped before AppleScript stabilized.

Re: Malleable computing, Emacs, and you

#42

Earlier quoted context omitted.

Yeah, NeXTSTEP is notoriously a locked-down, untweakable OS. It's not like anyone was able to use it to program anything of consequence.

I had an argument with Steve Jobs about pie menus at the Educom conference in Washington DC, October 26 1988 -- right after he finally shipped NeXTSTEP (people had been teasing it as vaporware with "NeVRSTEP" t-shirts). I was demonstrating the work I'd done at the UMD Human Computer Interaction Lab on a color Sun 3/60 that Sun lent me to use at their booth, which happened to be right across from the NeXT booth. Ben S…

Thanks for sharing this! You are a legend!

Re: Malleable computing, Emacs, and you

#44
post #43

OP here. Happy to answer any questions about my post in this thread.

Did you look into the existing org-sync package? I know the use case is slightly different but I think it still works.

Wasn't aware of org-sync until now. That said for my use case I still would not use it as I didn't want to setup another GH authentication token for another client. YMMV.

Re: Malleable computing, Emacs, and you

#45
post #43

Earlier quoted context omitted.

Did you look into the existing org-sync package? I know the use case is slightly different but I think it still works.

Wasn't aware of org-sync until now. That said for my use case I still would not use it as I didn't want to setup another GH authentication token for another client. YMMV.

Definitely understandable, the proliferation of api creds and ways of passing them in is a major pain point.

Re: Malleable computing, Emacs, and you

#46
post #4

JavaScript did this for the Web back in the day. I work on a malleable git-compatible SCM right now. First I put all the performance-critical parts into a native lib, then happily built my own git(hub) in JavaScript. Tastes differ, someone else may build it completely differently. I believe this is the right architecture for the LLM age. https://github.com/gritzko/beagle

I love the look of the status output.

Re: Malleable computing, Emacs, and you

#47
post #4

JavaScript did this for the Web back in the day. I work on a malleable git-compatible SCM right now. First I put all the performance-critical parts into a native lib, then happily built my own git(hub) in JavaScript. Tastes differ, someone else may build it completely differently. I believe this is the right architecture for the LLM age. https://github.com/gritzko/beagle

I love the look of the status output.

Thanks! It is mathematically rigorous https://replicated.live/blog/status

Re: Malleable computing, Emacs, and you

#48
post #2

This is a good discussion of these principles. Largely inspired by Emacs, I built an interpreted lisp which runs in a web server and stores the AST Postgres. It gives me this kind of malleable computing and a Lispy feel with very little overhead. Instead of calling an API, agents can just use functions in a REPL. They can also write new views and improve the program if they run into an issue. Honestly, pretty amazing…

This sounds so cool! Do you have this shared somewhere?

https://pricklypear.rocks/

Thank you for checking it out! Fair warning, it's vibeslop and I really don't have a clue what I'm doing. I have very little background in compilers or FP or really anything. I'm honestly just shocked at how well it works.

If you want to kick the tires on it or even if you just find it interesting, please feel free to reach out! I'm kind of obsessed with this thing now, and would love and appreciate any feedback

Re: Malleable computing, Emacs, and you

#50

OP here. Happy to answer any questions about my post in this thread.

Could you elaborate on BIBO? The wiki article is a bit above my pay grade

Sure. My reference to BIBO borrows the idea from control theory that if you put bounds on your input, your output will likewise be bounded given your system is BIBO-stable. Applying this to software, if you constrain the range of input to values that will be correctly processed, then you could exploit this to write less code (example: relax building type-checking and error handling code if you know the input is going to be an integer). I’ll caveat that this is not guidance, but more observation, particularly for the case where the audience is one as opposed to many.
Post reply on HN