Live data from Hacker News

Malleable computing, Emacs, and you

yummymelon.com

31–40 of 57 posts

Re: Malleable computing, Emacs, and you

#31

Earlier quoted context omitted.

I genuinely do wonder why that has been the trajectory. When you look at the almost futuristic vision of interacting with living, programmable software objects and environments that evolve over time and you get a glimpse of it in Emacs, Pharo or Oberon (worth mentioning Free Oberon, fun to play around with https://free.oberon.org/en/ think it was on the frontpage recently), how did we go back to dead text files again…

The Smalltalk approach doesn't really integrate well with anything else. If you treat data and code the same, it's hard to separate code from data. If you're writing a program for a single machine on which it should be used, that's fine, but if you want to write your code once and run it across many machines, that's a problem. ERP systems are a bit like this; system owners (businesses) are often able to change any pa…

There are image distribution ways, and already on the 1990's there was image based SCM products.

Most of those ERP systems are a pain, because all those changes where spread across several contractors, each doing their own little silo while keeping everything else running.

SaaS products are basically the Smalltalk approach, and they aren't going away, in fact they are doubling down with iPaaS and AI agentic tooling.

In such business domains, classical backend coding is almost gone, what is left are serverless, microservices, many of which are slowly being exposed as MCP tools.

Re: Malleable computing, Emacs, and you

#32
post #8

Yet another one rediscovers the way Lisp machines, Smalltalk, Cedar and Oberon were envisioned, and we never really got it in mainstream computing. Nice article.

NGL, whenever I work with Cocoa APIs, I wistfully think of another timeline where we get a system-level SmallTalk style REPL and ecosystem accessing all of it.

This is pretty much what COM is under Windows.

Re: Malleable computing, Emacs, and you

#34
This sort of thing is why the terminal commands pbpaste and pbcopy in NeXTstep/Mac OS X as well as Services are so powerful.

That said, I wonder what the successor to emacs looks like (or what the next generation of it will improve).

Re: Malleable computing, Emacs, and you

#35

Earlier quoted context omitted.

I genuinely do wonder why that has been the trajectory. When you look at the almost futuristic vision of interacting with living, programmable software objects and environments that evolve over time and you get a glimpse of it in Emacs, Pharo or Oberon (worth mentioning Free Oberon, fun to play around with https://free.oberon.org/en/ think it was on the frontpage recently), how did we go back to dead text files again…

The Smalltalk approach doesn't really integrate well with anything else. If you treat data and code the same, it's hard to separate code from data. If you're writing a program for a single machine on which it should be used, that's fine, but if you want to write your code once and run it across many machines, that's a problem. ERP systems are a bit like this; system owners (businesses) are often able to change any pa…

> The Smalltalk approach doesn't really integrate well with anything else.

That's not true. GToolkit (built on Pharo Smalltalk) integrates tightly with Git for VCS and Rust via FFI for external libraries. It integrates with external Python and JavaScript through IPC. The same IPC mechanism is used to work around the GIL (the same way Python used to do with the multiprocessing library).

Squeak descendants are also not the only Smalltalks available. Smalltalk/X is polyglot, supports Java and C code inline, and has a native AOT compiler (through C). Smalltalk/X and VisualWorks have built-in version control, namespaces, and packages with visibility modifiers.

TL;DR: a live Smalltalk environment doesn't have to be an isolated island. The most popular open-source Smalltalks come from education and hobbyist coding, so they tend to miss a lot of "programming in the large" conveniences, but that's just a historical accident. There's no technical reason why a Smalltalk that's integrated into a wider ecosystem and suited for large teams couldn't exist.

Re: Malleable computing, Emacs, and you

#37

Earlier quoted context omitted.

Meh, it's better than nothing. Though not a great interface or DSL.

Hammerspoon (Mac) is much better. It's basically Lua, with access to all the MacOS automation APIs.

Hammerspoon is amazing, and LLMs are very good at writing configuration for it. I'm quite happy with my config.

Re: Malleable computing, Emacs, and you

#38
post #17

Earlier quoted context omitted.

If you're into malleable computing you'd never have been a "Mac person"

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 Shneiderman dragged Steve Jobs over to the Sun booth, and I gave him a NeWS demo for about half an hour: HyperTIES, UniPress Emacs, pie menus, PostScript windows in arbitrary shapes — the Hubble Space Telescope in orbit, Bill Joy's head popping up when you pointed at it, that kind of thing. Jobs has RELIGION about UI, and he argued wonderfully. He also has volume. On the show floor, in a suit and tie, he was jumping up and down yelling:

"That sucks! That sucks! Wow, that's neat! That sucks!"

Not discouraged, I figured one neat to three sucks was a good score from Steve Jobs. When I explained how flexible NeWS was -- programmable PostScript in the window system, malleable windows, extensible UI, transforming all menus of all apps into pie menus, etc -- he told me:

"I don't need flexibility -- I got my window system right the first time!"

Okay, agree to disagree. Then I gave him a free NeWS "NeRD" button, which he gracefully accepted, then he departed leaving my reality intact and undistorted.

So empthought's joke isn't far from the design philosophy. NeXT was world-class software, but malleability for the user was exactly what Jobs was proud of not offering. That's a big part of why the Emacs / NeWS / PostScript / Smalltalk / Self / Oberon / JavaScript / AJAX branch of computing and the Mac / NeXT / Display PostScript / Objective C / Cocoa branch diverged.

More context from that week:

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

Also, during the conference I was giving essentially the same rolling demos to anyone who walked by, and some scruffy looking dude was hanging out and watched the whole series until it looped back to Emacs, then he finally remarked "I used to use EMACS on ITS." (i.e. the original TECO version)

...I said "Wow, what was your user name? Mine was A2DEH@AI!" and he replied "WNJ".

Only then did I realize I had been giving demos to Bill Joy, the author of VI, of UniPress Emacs for NeWS, and of HyperTIES embedded graphical pop-up links demo with his own inflatable pop-up head. I didn't recognize him because he'd shaved his beard!

HyperTIES founders storyboard: https://donhopkins.com/home/ties/emacs/founders.st0

Bill Joy's Head Target: https://donhopkins.com/home/ties/emacs/obj/founder.curly.tn0

NeWS PostScript pop-up target class: https://donhopkins.com/home/ties/target.ps

At least it wasn't RMS, who would have immediately objected strongly to the "Evil Software Hoarder" version of Emacs I was using.

Here are some examples of not-locked-down NeWS user interfaces:

HCIL Demo - HyperTIES Browsing:

https://www.youtube.com/watch?v=fZi4gUjaGAM

HCIL Demo - HyperTIES Authoring with UniPress Emacs on NeWS:

https://www.youtube.com/watch?v=hhmU2B79EDU

Just the Pie Menus from All the Widgets:

https://www.youtube.com/watch?v=mOLS9I_tdKE

Ben Shneiderman, Don Hopkins, and pie menus in Spring 1989 on a Sun Workstation, running NeWS:

https://www.youtube.com/watch?v=8Fne3j7cWzg

Nelson Spins Pip While Emacs Watches:

https://www.youtube.com/watch?v=aRaD5zH3Qdg

(Oops that was a different Emacs, my cat.)

Re: Malleable computing, Emacs, and you

#40
post #3

There’s an interesting middle ground: not fully malleable software, where the end user has full customisation ability but requires full programming skill, but eg the Unix tool model where prebuilt utilities can be composed with a simple syntax. Pre-existing (or importable) ELisp functions are kinda similar, just a slightly higher level of user skill.

Another approach to this is "build mechanism, not policy" (also of Unix philosophy fame). Encapsulate the hard parts in libraries, ship the topmost layer as codegen templates that depend on those libraries, and let agents / devs modify that topmost layer to their heart's content. This often beats putting everything in libraries and having to expose customization points everywhere. This is the approach taken by the Sh…

> Another approach to this is "build mechanism, not policy" (also of Unix philosophy fame).

Might be more recognized from the X Window System design principles rather:

> Provide mechanism rather than policy. In particular, place user interface policy in the clients' hands.

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

It wasn't part of the original Unix philosophy, but I see that went through several revisions.

Post reply on HN