LAMPSON: I used to think that undergraduate computer-science education was bad, and that it should be outlawed. Recently I realized that position isn’t reasonable. An undergraduate degree in computer science is a perfectly respectable professional degree, just like electrical engineering or business administration. But I do think it’s a serious mistake to take an undergraduate degree in computer science if you intend to study it in graduate school.
INTERVIEWER: Why?
LAMPSON: Because most of what you learn won’t have any long-term significance. You won’t learn new ways of using your mind, which does you more good than learning the details of how to write a compiler, which is what you’re likely to get from undergraduate computer science. I think the world would be much better off if all the graduate computer-science departments would get together and agree not to accept anybody with a bachelor’s degree in computer science. Those people should be required to take a remedial year to learn something respectable like mathematics or history, before going on to graduate-level computer science. However, I don’t see that happening.
As far as I remember, progression was Hypercard -> Metacard -> Runtime Revolution -> Livecode.
I was a kid when this progression first happened, my older brother Tuviah Snyder (now at Apple), was responsible for much of these updates and changes first at Metacard and then at its acquirer Runtime Revolution.
I even wrote some of my first programs as Hypercard compatible stacks. Was quite fun to see my apps on download.com, back in the day when that meant something :).
I always joked it required please and thank you due to its verbosity, but was super simple, accessible, and worked!
How nice, that even today one can take their legacy Hypercard Stacks and run them in the web, mobile, etc. Or create something new in what was more structured vibecoding before vibecoding :).
You can open your HyperCard stacks, or MetaCard stacks, or Runtime/Livecode Stacks in their IDE, code, edit, etc, similar to what you would have back in Hypercard days, but with modern features, updates, and additions.
It's backwards compatible with HyperTalk, its current language is an updated HyperTalk (i.e. an updated MetaTalk), that incorporates all that was, but adds new features for today.
Your Livecode apps can be deployed and run as cross-platform desktop applications (Mac, Win, *nix) , mobile applications, and as far as I remember, web applications with HTML5 deployment (so they say).
Not affiliated with them in any way, just sharing my understanding and memories.
I remember in elementary school, I had some computer lab classes where the whole class worked in hypercard on some task. Multiply that by however many classrooms did something like that in the 80s and 90s. That's a lot of brains that can be influenced and have been.
We can judge it as a success in its own right, even if it never entered the next paradigm or never had quite an equivalent later on.
I was on the team that built Ruby (no relation to the programming language), which became the "Visual" side of Visual Basic.
Alan Cooper did the initial design of the product, via a prototype he called Tripod.
Alan had an unusual design philosophy at the time. He preferred to not look at any existing products that may have similar goals, so he could "design in a vacuum" from first principles.
I will ask him about it, but I'm almost certain that he never looked at HyperCard.
Cooper's solution to this problem didn't click until late 1987, when a friend at Microsoft brought him along on a sales call with an IT manager at Bank of America. The manager explained that he needed Windows to be usable by all of the bank's employees: highly technical systems administrators, semi-technical analysts, and even users entirely unfamiliar with computers, like tellers. Cooper recalls the moment of inspiration:
In an instant, I perceived the solution to the shell design problem: it would be a shell construction set—a tool where each user would be able to construct exactly the shell that they needed for their unique mix of applications and training. Instead of me telling the users what the ideal shell was, they could design their own, personalized ideal shell.
Thus was born Tripod, Cooper's shell construction kit.Modern continual versioning and constant updates means there is no finish line. No Bible could ever be printed. Ah, nostalgia.
Also, this might happen in a few years if AI improves enough to be trusted to make things by novices. Hard to imagine, but just maybe.
- watch
- busy
- hand
- arrow
- iBeam
- cross
- plus
Look up hyperland, it's a early 90s documentary by Douglas Adams and the guy from doctor who about the then-future hypermedia revolution. I can remember the web resembling that a long time ago but the modern web is very far removed from anything remotely resembling hypertext.
https://www.goodreads.com/book/show/192405005-hypermedia-sys...
which maybe argues for a return to early ideas of the web as a successor to Hypercard...
(More seriously: I can still recall using ResEdit to hack a custom FONT resource into a HyperCard stack, then using string manipulation in a text field to create tiled graphics. This performed much better than button icons or any other approach I could find. And then it stopped working in System 7.)
What actually are the best successors now, at least for authoring generic apps for the open web? (Other than vibe coding things)
This is what kids do to be creative.
Slightly more serious (and therefore less succesful): - Logo/Turtle Graphics - Scratch - HyperStudio
HyperCard was both graphic design and hypertext (links). These two modalities got separated, and I think there are practical reasons for that. Because html/css design actually sucks and never became an amateur art form.
For writing and publishing we got Wiki, Obsidian et al, Blogs (RIP), forums, social media. Not meant to be interactive or programmable, but these fulfill people's needs for publishing.
I had to drop into BlockSCAD to rough out an arc algorithm for my current project:
https://github.com/WillAdams/gcodepreview
(see the subsubsection "Arcs for toolpaths and DXFs")
Jupyter Notebooks come close to allowing a seamless blending of text and algorithm, but they are sorely missing on the graphic design and vector graphics front --- which now that I write that, makes me realize that that is the big thing which I miss when trying to use them. Makes me wish for JuMP, a Jupyter Notebook which incorporates METAPOST --- if it also had an interactive drawing mode, it would be perfect.... (for my needs).
Why use it rather than Livecode (aside from the licensing of the latter) or Hypernext Studio?
Unlike LiveCode (or so far as I am aware HyperNext), Decker is free and open-source: https://github.com/JohnEarnest/Decker
HyperNext doesn't appear to be actively developed; the most recent updates I see are from last year, and it can't be used on modern computers. Decker's most recent release was yesterday morning.
I'd be happy to go into more detail if you like.
I guess I want a Flash replacement....
It's not just "View Source", but "Edit Source" with a built-in, easy to use, scriptable, graphical, interactive WYSIWYG editor that anyone can use.
HyperCard did all that and more long before the web existed, was fully scriptable years before JavaScript existed, was extensible with plug-in XCMDs long before COM/OLE/ActiveX or even OpenDoc/CyberDog or Java/HotJava/Applets, and was widely available and embraced by millions of end-users, was used for games, storytelling, art, business, personal productivity, app development, education, publishing, porn, and so much more, way before merely static web page WYSIWYG editors (let alone live interactive scriptable extensible web application editors) ever existed.
LiveCard (HyperCard as a live HTTP web app server back-end via WebStar/MacHTTP) was probably the first tool that made it possible to create live web pages with graphics and forms with an interactive WYSIWYG editor that even kids could use to publish live HyperCard apps, databases, and clickable graphics on the web.
HyperCard deeply inspired HyperLook for NeWS, which was scripted, drawn, and modeled with PostScript, that I used to port SimCity to Unix:
Alan Kay on “Should web browsers have stuck to being document viewers?” and a discussion of Smalltalk, HyperCard, NeWS, and HyperLook
https://donhopkins.medium.com/alan-kay-on-should-web-browser...
>"Apple’s Hypercard was a terrific and highly successful end-user authoring system whose media was scripted, WYSIWYG, and “symmetric” (in the sense that the “reader” could turn around and “author” in the same high-level terms and forms). It should be the start of — and the guide for — the “User Experience” of encountering and dealing with web content.
>"The underlying system for a browser should not be that of an “app” but of an Operating System whose job would be to protectively and safely run encapsulated systems (i.e. “real objects”) gotten from the web. It should be the way that web content could be open-ended, and not tied to functional subsets in the browser." -Alan Kay
>[...] This work is so good — for any time — and especially for its time — that I don’t want to sully it with any criticisms in the same reply that contains this praise.
>I will confess to not knowing about most of this work until your comments here — and this lack of knowledge was a minus in a number of ways wrt some of the work that we did at Viewpoints since ca 2000.
>(Separate reply) My only real regret about this terrific work is that your group missed the significance for personal computing of the design of Hypertalk in Hypercard.
>It’s not even that Hypertalk is the very best possible way to solve the problems and goals it took on — hard to say one way or another — but I think it is the best example ever actually done and given to millions of end users. And by quite a distance.
>Dan Winkler and Bill Atkinson violated a lot of important principles of “good programming language design”, but they achieved the first overall system in which end-users “could see their own faces”, and could do many projects, and learn as they went.
>For many reasons, a second pass at the end-user programming problem — that takes advantage of what was learned from Hypercard and Hypertalk — has never been done (AFAIK). The Etoys system in Squeak Smalltalk in the early 2000s was very successful, but the design was purposely limited to 8–11 year olds (in part because of constraints from working at Disney).
>It’s interesting to contemplate that the follow on system might not have a close resemblance to Hypertalk — perhaps only a vague one ….
SimCity, Cellular Automata, and Happy Tool for HyperLook (nee HyperNeWS (nee GoodNeWS))
https://donhopkins.medium.com/hyperlook-nee-hypernews-nee-go...
>HyperLook was like HyperCard for NeWS, with PostScript graphics and scripting plus networking. Here are three unique and wacky examples that plug together to show what HyperNeWS was all about, and where we could go in the future!
>The Axis of Eval: Code, Graphics, and Data
>Hi Alan! Outside of Sun, at the Turing Institute in Glasgow, Arthur van Hoff developed a NeWS based reimagination of HyperCard in PostScript, first called GoodNeWS, then HyperNeWS, and finally HyperLook. It used PostScript for code, graphics, and data (the axis of eval). [...]
>What’s the Big Deal About HyperCard?
>"I thought HyperCard was quite brilliant in the end-user problems it solved. (It would have been wonderfully better with a deep dynamic language underneath, but I think part of the success of the design is that they didn’t have all the degrees of freedom to worry about, and were just able to concentrate on their end-user’s direct needs.
>"HyperCard is an especially good example of a system that was “finished and smoothed and documented” beautifully. It deserved to be successful. And Apple blew it by not making the design framework the basis of a web browser (as old PARC hands advised in the early 90s …)" -Alan Kay
HyperLook SimCity Demo Transcript
https://donhopkins.medium.com/hyperlook-simcity-demo-transcr...
>[...] All this is written in PostScript, all the graphics. The SimCity engine is in C, but all the user interface and the graphics are in PostScript.
>The neat thing about doing something like this in HyperLook is that HyperLook is kind of like HyperCard, in that all of the user interface is editable. So these windows we’re looking at here are like stacks, that we can edit.
>Now I’ll flip this into edit mode, while the program’s running. That’s a unique thing.
>Now I’m in edit mode, and this reset button here is just a user interface component that I can move around, and I can hit the “Props” key, and get a property sheet on it.
>I’ll show you what it really is. See, every one of these HyperLook objects has a property sheet, and you can define its graphics. I’ll zoom in here. We have this nice PostScript graphics editor, and we could turn it upside down, or sideways, or, you know, like that. Or scale it. I’ll just undo, that’s pretty useful.
https://news.ycombinator.com/item?id=34134403
DonHopkins on Dec 26, 2022 | parent | context | favorite | on: The Psychedelic Inspiration for Hypercard (2018)
Speaking about HyperCard, creating web pages, and publishing live interactive HyperCard stacks on the web, I wrote this about LiveCard:
https://news.ycombinator.com/item?id=22283045
DonHopkins on Feb 9, 2020 | parent | context | favorite | on: HyperCard: What Could Have Been (2002)
Check out this mind-blowing thing called "LiveCard" that somebody made by combining HyperCard with MacHTTP/WebStar (a Mac web server by Chuck Shotton that supported integration with other apps via Apple Events)! It was like implementing interactive graphical CGI scripts with HyperCard, without even programming (but also allowing you to script them in HyperTalk, and publish live HyperCard databases and graphics)! Normal HyperCard stacks would even work without modification. It was far ahead of its time, and inspired me to integrate WebStar with ScriptX to generate static and dynamic HTML web sites and services!
https://news.ycombinator.com/item?id=16226209
MacHTTP / WebStar from StarNine by Chuck Shotton, and LiveCard HyperCard stack publisher:
CGI and AppleScript:
http://www.drdobbs.com/web-development/cgi-and-applescript/1...
>Cal discusses the Macintosh as an Internet platform, then describes how you can use the AppleScript language for writing CGI applications that run on Macintosh servers.
https://news.ycombinator.com/item?id=7865263
MacHTTP / WebStar from StarNine by Chuck Shotton! He was also VP of Engineering at Quarterdeck, another pioneering company.
https://web.archive.org/web/20110705053055/http://www.astron...
http://infomotions.com/musings/tricks/manuscript/0800-machtt...
http://tidbits.com/article/6292
>It had an AppleScript / OSA API that let you write handlers for responding to web hits in other languages that supported AppleScript.
I used it to integrate ScriptX with the web:
http://www.art.net/~hopkins/Don/lang/scriptx/scriptx-www.htm...
https://medium.com/@donhopkins/1995-apple-world-wide-develop...
The coolest thing somebody did with WebStar was to integrate it with HyperCard so you could actually publish live INTERACTIVE HyperCard stacks on the web, that you could see as images you could click on to follow links, and followed by html form elements corresponding to the text fields, radio buttons, checkboxes, drop down menus, scrolling lists, etc in the HyperCard stack that you could use in the browser to interactive with live HyperCard pages!
That was the earliest easiest way that non-programmers and even kids could both not just create graphical web pages, but publish live interactive apps on the web!
Using HyperCard as a CGI application
https://web.archive.org/web/20060205023024/http://aaa-protei...
https://web.archive.org/web/20021013161709/http://pfhyper.co...
http://www.drdobbs.com/web-development/cgi-and-applescript/1...
https://web.archive.org/web/19990208235151/http://www.royals...
What was it actually ever used for? Saving kid's lives, for one thing:
>Livecard has exceeded all expectations and allows me to serve a stack 8 years in the making and previously confined to individual hospitals running Apples. A whole Childrens Hospital and University Department of Child Health should now swing in behind me and this product will become core curriculum for our medical course. Your product will save lives starting early 1997. Well done.
- Director, Emergency Medicine, Mater Childrens Hospital
The earliest Flash projects were these artful assemblages of scripts dangling from nested timelines, like an Alexander Calder mobile. They were at times labyrinthine, like they are in many similar tools, but there were ways to mitigate that. Later on, AS3 code was sometimes written like Java, because we wanted to be taken seriously.
Many Flash community members wanted to share their source, wanted a space where interested people could make changes. We did the best we could, uploading FLA files and zipped project directories. None of it turned out to be especially resilient.
It's one of the things I admire about Scratch. If you want, you can peek inside, and it's all there, for you to learn from and build off of, with virtually no arbitrary barriers in place.
I think the reason those apps never became mainstream is that they didn't have a good solution for sharing data. There were some ways you could use them to access database servers, but setting them up was so difficult that they were for all intents and purposes limited to local, single user programs.
HTML, CSS, PHP and MySQL had a learning curve, but you could easily make multi-user programs with them. That's why the web won.
In yet another alternate timeline, someone thought to add something like URLs with something like GET, PUT, etc. to HyperCard, and Tim Berners-Lee's invention of the Web browser never happened because Hypercard already did it all.
on openbackground --merryxmas
merryxmas "on openbackground --merryxmas"
end openbackground
(And now I'm curious if this post will trip anyone's antivirus software...)We had a lot of fun last night with Vibecode Karaoke, where you code an app at the same time as you sing a song.
Makes you think if lambda expressions would be more consistent with the rest if they were reversed.
[0] https://en.wikipedia.org/wiki/HyperTalk#Fundamental_operatio...
DonHopkins on Feb 10, 2020 | parent | context | favorite | on: HyperCard: What Could Have Been (2002)
Do you have the first commercial HyperCard stack ever released: the HyperCard SmutStack? Or SmutStack II, the Carnal Knowledge Navigator, both by Chuck Farnham? SmutStack was the first commercial HyperCard product available at rollout, released two weeks before HyperCard went public at a MacWorld Expo, cost $15, and made a lot of money (according to Chuck). SmutStack 2, the Carnal Knowledge Navigator, had every type of sexual adventure you could imagine in it, including information about gays, lesbians, transgendered, HIV, safer sex, etc. Chuck was also the marketing guy for Mac Playmate, which got him on Geraldo, and sued by Playboy.
https://www.zdnet.com/article/could-the-ios-app-be-the-21st-...
>Smut Stack. One of the first commercial stacks available at the launch of HyperCard was Smut Stack, a hilarious collection (if you were in sixth grade) of somewhat naughty images that would make joke, present a popup image, or a fart sound when the viewer clicked on them. The author was Chuck Farnham of Chuck's Weird World fame.
>How did he do it? After all, HyperCard was a major secret down at Cupertino, even at that time before the wall of silence went up around Apple.
>It seems that Farnham was walking around the San Jose flea market in the spring of 1987 and spotted a couple of used Macs for sale. He was told that they were broken. Carting them home, he got them running and discovered several early builds of HyperCard as well as its programming environment. Fooling around with the program, he was able to build the Smut Stack, which sold out at the Boston Macworld Expo, being one of the only commercial stacks available at the show.
https://archive.org/stream/MacWorld_9008_August_1990/MacWorl...
Page 69 of https://archive.org/stream/MacWorld_9008_August_1990
>Famham's Choice
>This staunch defender was none other than Chuck Farnham, whom readers of this column will remember as the self-appointed gadfly known for rooting around in Apple’s trash cans. One of Farnham ’s myriad enterprises is Digital Deviations, whose products include the infamous SmutStack, the Carnal Knowledge Navigator, and the multiple-disk set Sounds of Susan. The last comes in two versions: a $15 disk of generic sex noises and, for $10 more, a personalized version in which the talented Susan moans and groans using your name. I am not making this up.
>Farnham is frank about his participation in the Macintosh smut trade. “The problem with porno is generic,” he says, sounding for the briefest moment like Oliver Wendell Holmes. “When you do it, you have to make a commitment ... say you did it and say it’s yours. Most people would not stand up in front of God and country and say, ‘It’s mine.’ I don’t mind being called Mr. Scum Bag.”
>On the other hand, he admits cheerily, “There’s a huge market for sex stuff.” This despite the lack of true eroticism. “It’s a novelty,” says Farnham. Sort of the software equivalent of those ballpoint pens with the picture of a woman with a disappearing bikini.
https://archive.org/stream/NewComputerExpress110/NewComputer...
Page 18 of https://archive.org/stream/NewComputerExpress110
>“Chuck developed the first commercial stack, the Smutstack, which was released two weeks before HyperCard went public at a MacWorld Expo. He’s embarrassed how much money a silly collection of sounds, cartoons, and scans of naked women brought in. His later version, the Carnal Knowledge Navigator, was also a hit.
I've begged Chuck to dig around to see if he has an old copy of the floppy lying around and upload it, but so far I don't know of a copy online you can run. Its bold pioneering balance of art and slease deserves preservation, and the story behind it is hilarious.
Edit: OMG I've just found the Geraldo episode with Chuck online, auspiciously titled "Geraldo: Sex in the 90's. From Computer Porn to Fax Foxes", which shows an example of Smut Stack:
https://visual-icon.com/lionsgate/detail/?id=67563&t=ts
I love the way Chuck holds his smirk throughout the entire interview. And Geraldo's reply to his comment: "I was a fulfillment house for orders."
"That sounds sexual in itself! What was a fulfilment house?"
It is a custom system that didn’t require any code (if you don’t count the very minor bits of regex (just a lot of stuff like… ^\s- .).
Is it a good system, probably not, but we’ll see where it goes.
LLMs inspired vibe coding - that’s our timeline.
I knew who he was at the time, but for some reason I felt I was more or less beholden to conversing only about color-related issues and how they applied to a computer workflow. Having retired, I have been kicking myself for some time not just chatting with him about ... whatever.
He was at the time I met him very in to a kind of digital photography. My recollection was that he had a high-end drum scanner and was in fact scanning film negatives (medium format camera?) and then going with a digital workflow from that point on. I remember he was excited about the way that "darks" could be captured (with the scanner?). A straight analog workflow would, according to him, cause the darks to roll off (guessing the film was not the culprit then, perhaps the analog printing process).
He excitedly showed us on his computer photos he took along the Pacific ocean of large rock outcroppings against the ocean — pointing out the detail that you could see in the shadow of the rocks. He was putting together a coffee table book of his photos at the time.
I have to say that I mused at the time about a wealthy, retired, engineer who throws money at high end photo gear and suddenly thinks they're a photographer. I think I was weighing his "technical" approach to photography vs. a strictly artistic one. Although, having learned more about Ansel Adams technical chops, perhaps for the best photographers there is overlap.
Maybe I should show some initiative! See, for a little while now I've wanted to just chat with you about whatever.
At this moment I'm working on a little research project about the advent of color on the Macintosh, specifically the color picker. Would you be interested in a casual convo that touches on that? If so, I can create a BlueSky account and reach out to you over there. :)
Hilariously though, I did get handed the color pickers to "port" to PowerPC. In fact one of the first times I thought I was in over my head being at Apple was when I was staring at 68030 assembly and thinking, "Fuck, I have to rewrite this in C perhaps."
From your username, I feel like we've chatted before (but I don't know your real name).
Did you ever get hit with a paper airplane as you did? ;)
Thanks for this reply, and if you're who I think you are, thank you for all the good work you did alongside these other folks :D
Seems that, without the color/Bayer thing, you could get an extra stop or two for low-light.
I had a crazy notion to make a camera around an astronomical CCD (often monochrome) but they're not cheap either — at least one with a good pixel count.
Comparisons and advantages: https://www.photigy.com/school/sigma-foveon-sensor-review-dp...
For black and white photography, the best high-end camera seemed to be the Leica M Monochrom (https://en.wikipedia.org/wiki/Leica_M_Monochrom), but to my mind, it's trounced by the Foveon:
https://www.stevehuffphoto.com/2013/01/14/quick-comparison-l...
THIS is the photo that really sold it for me:
https://www.fredmiranda.com/forum/topic/1806915/0&year=2023#...
That's from a modified DP1m, but the SD Quattro H has an easily-removable IR filter and a huge sensor.
Sometimes it’s just nice to talk about the progress of humanity. Nothing better than being a part of it, the gears that make the world turn.
I adore this hybrid workflow, because I can pick how the photo will look, color palate, grain, whatever by picking my film, then I can use digital to fix (most if not all of) the inherent limitations in analog film.
Sadly, film is too much of a pain today, photography has long been about composition for me, not cameras or process - I liked film because I got a consistent result, but I can use digital too, and I do today.
Duchamp would like a word.
Seriously though, as someone this describes to a T (though “suddenly” in this case is about 19 years), I was afraid to call myself any sort of artist for well over a decade, thinking I was just acquiring signal with high end gear. I didn’t want to try to present myself as something I’m not. After all, I just push the button, the camera does all the work.
I now have come to realize that this attitude is toxic and unnecessary. Art (even bad art!) doesn’t need more gatekeeping or gatekeepers.
I am a visual artist. A visual artist with perhaps better equipment than my skill level or talent justifies, but a visual artist nonetheless.
I think this says more about you than it does about him
I was about to argue but then I saw this part
> The cost outweighs any benefit.
And this is absolutely true - there is a benefit but it doesn’t mean it’s worth it
Either way my bad, I should have elaborated and been more gentle instead of just that quip
Power tools definitely have it!
I was though being honest about how I felt at that time — debated whether to keep it to myself or not today (but I always foolishly error on the side of being forthcoming).
Perhaps it's a strange thing to imagine that someone would pursue in their spare time, especially after retired, what they did professionally.
But the irony isn’t lost on me that I myself shouldn’t have been so mean about it
> One of Bill Atkinson’s amazing feats (which we are so accustomed to nowadays that we rarely marvel at it) was to allow the windows on a screen to overlap so that the “top” one clipped into the ones “below” it. Atkinson made it possible to move these windows around, just like shuffling papers on a desk, with those below becoming visible or hidden as you moved the top ones. Of course, on a computer screen there are no layers of pixels underneath the pixels that you see, so there are no windows actually lurking underneath the ones that appear to be on top. To create the illusion of overlapping windows requires complex coding that involves what are called “regions.” Atkinson pushed himself to make this trick work because he thought he had seen this capability during his visit to Xerox PARC. In fact the folks at PARC had never accomplished it, and they later told him they were amazed that he had done so. “I got a feeling for the empowering aspect of naïveté”, Atkinson said. “Because I didn’t know it couldn’t be done, I was enabled to do it.” He was working so hard that one morning, in a daze, he drove his Corvette into a parked truck and nearly killed himself. Jobs immediately drove to the hospital to see him. “We were pretty worried about you”, he said when Atkinson regained consciousness. Atkinson gave him a pained smile and replied, “Don’t worry, I still remember regions.”
Windows partly obscured would have rows that may not begin at 0, may not continue to width-of-window. Window regions could even have holes if a skinnier window was on top and within the width of the larger background window.
The cleverness, I think, was then to write fast routines to add, subtract, intersect, and union regions, and rectangles of this structure. Never mind quickly traversing them, clipping to them, etc.
https://github.com/historicalsource/supermario/blob/9dd3c4be...
As far as I can tell, it's a bounding box (in typical L/T/R/B format), followed by a sequence of the X/Y coordinates of every "corner" inside the region. It's fairly compact for most region shapes which arise from overlapping rectangular windows, and very fast to perform hit tests on.
My guess is it asks each application that overlapped those areas to redraw only those areas (in case the app is able to be smart about redrawing incrementally), and also clips the following redraw so that any draw operations issued by the app can be "culled". If an app isn't smart and just redraws everything, the clipping can still eliminate a lot of the draw calls.
He said they drew a lot of inspiration from Woz on the hardware side. Woz was well known for employing lots of little hacks to make things more efficient, and the Macintosh team had to apply the same approach to software.
Per-pixel sorting while racing the beam is tricky, game consoles usually did it by limiting the number of objects (sprites) per-line, and fetching+caching them before the line is reached.
The very characteristic horizontally stretched graphics of the Atari 2600 are due to this - the CPU was actually too slow, in a sense, for the electron beam which means your horizontal graphic elements had a fairly large minimum width - you couldn't change the output fast enough.
I strongly recommend:
https://en.wikipedia.org/wiki/Racing_the_Beam
... which goes into great detail on this topic and is one of my favorite books.
There was a discussion here a couple of weeks ago (with a typo in the title): https://news.ycombinator.com/item?id=44110219
It’s on all of us to keep the history of this field alive and honor the people who made it all possible. So if anyone would nerd out on this, I’d love to be able to remember him that way.
(I did read this https://www.folklore.org/I_Still_Remember_Regions.html but might be not understanding it fully)
Back at the time, there wouldn't be enough memory to hold a copy of the full contents all possible windows. In fact, there were actually zero abstraction layers: each application was responsible to draw itself directly into the framebuffer (array of pixels), into its correct position. So how to handle overlapping windows? How could each application draw itself on the screen, but only on the pixels not covered by other windows?
QuickDraw (the graphics API written by Atkinson) contained this data structure called "region" which basically represent a "set of pixels", like a mask. And QuickDraw drawing primitives (eg: text) supported clipping to a region. So each application had a region instance representing all visible pixels of the window at any given time; the application would then clip all its drawing to the region, so that only the visibile pixels would get updated.
But how was the region implemented? Obviously it could have not been a mask of pixels (as in, a bitmask) as it would use too much RAM and would be slow to update. In fact, think that the region datastructure had to be quick at doing also operations like intersections, unions, etc. as the operating system had to update the regions for each window as windows got dragged around by the mouse.
So the region was implemented as a bounding box plus a list of visible horizontal spans (I think, I don't know exactly the details). When you represent a list of spans, a common hack is to use simply a list of coordinates that represent the coordinates at which the "state" switches between "inside the span" to "outside the span". This approach makes it for some nice tricks when doing operations like intersections.
Hope this answers the question. I'm fuzzy on many details so there might be several mistakes in this comment (and I apologize in advance) but the overall answer should be good enough to highlight the differences compared to what computers to today.
> Obviously it could have not been a mask of pixels
To be more specific about your explanation of too much memory: many early GUIs were 1 bit-per-pixel, so the bitmask would use the same amount of memory as the window contents.
There was another advantage to the complexity of only drawing regions: the OS could tell the application when a region was exposed, so you only had to redraw a region if it was exposed and needed an update or it was just exposed. Unless you were doing something complex and could justify buffering the results, you were probably re-rendering it. (At least that is my recollections from making a Mandelbrot fractal program for a compact Mac, several decades back.)
The source code describes it as "an unpacked array of sorted inversion points". If you can read 68k assembly, here's the implementation of PtInRgn:
https://github.com/historicalsource/supermario/blob/9dd3c4be...
It’s a sorted list of X coordinates (left to right). If you group them in couples, they are begin/end intervals of pixels within region (visibles), but it’s actually more useful to manipulate them as a flat array, as I described.
I studied a bit the code and each scanline is prefixed by the Y coordinates, and uses an out of bounds terminator (32767).
Reminds me of the story where some company was making a new VGA card, and it was rumored a rival company had implemented a buffer of some sort in their card. When both cards came out the rival had either not actually implemented it or implemented a far simpler solution
I teach this lesson to my mentees. Knowing that something is possible gives you significant information. Also, don't brag - It gives away significant information.
Just knowing something is possible makes it much, much easier to achieve.
This isn't really stupid though as explained in the pdf
> Paradise had stuck a read FIFO between display memory and the video output stage of the VGA, allowing the video output to read ahead, so that when the CPU wanted to access display memory, pixels could come from the FIFO while the CPU was serviced immediately. That did indeed help performance--but not as much as Tom’s write FIFO.
VRAM accesses are contended, so during the visual display period the VGA circuitry has priority. CPU accesses result in wait states - a FIFO between the VRAM and the VGA means less contention and more cycles for CPU accesses
Why improve read performance though? Games accessing VRAM I presume would be 99% write. Perhaps it was to improve performance in GUIs like Windows?
Former Ion Storm employees later revealed that Dominion’s E3 1996 demo was pre-rendered, with actors pretending to play, not live gameplay.
(for ref, diablo III is also in my top 3 :)
But that's not a recipe for personal happiness for most people, and most of us would not end up contributing revolutionary improvements even if done so. World needs awesome workers, and we also need ie awesome parents or just happy balanced content people (or at least some part of those).
Naturally I don’t expect to do such things for a living.
Some people are competing, and need to make things happen that can’t be done when you check out at 5. Or more generally: the behaviour that achieves the best outcome for a given time and place, is what succeeds and forms the legends of those companies.
If you choose one path, know your competitors are testing the other paths. You succeed or fail partly based on what your most extreme competitors are willing to do, sometimes with some filters for legality and morality. (I.e. not universally true for all countries or times.)
Edit: I currently go home at 5, but have also been the person who actually won the has-no-life award. It’s a continuum, and is context specific. Both are right and sometimes one is necessary.
And I don't think anyone said that that's the only way to be
That seed crystal of software shaped hundreds of thousands of students that to this day continue to rave about this program (although the last bits of HyperCard retired permanently about 12 years ago, nowadays it's primarily web based tech).
HyperCard's impact on teaching students to program starship simulators, and then telling compelling, interactive, immersive, multi-player dramatic stories in those ships is something enabled by Atkinson's dream in 1985.
May your consciousness journey between infinite pools of light, Bill.
Also, if you've read this far, go donate to Pancreatic Cancer research.[1]
[0]: https://spacecenter.alpineschools.org [1]: https://pancan.org
https://thoriumsim.com is a modern incarnation of the same software.
* <= Lick This Spot
(You may be one of the Lucky 20!)
Here's a little 6 minute clip: An acid trip, and the origins of Hypercard.
An unthinkable future, but they thought it. And yet, most folks have never heard of General Magic.
Also, it's here in the documentary that someone expresses the excitement anticipating the smart phone. It's hard to watch for me now and not shake my head, "Oh, it's not quite as wonderful as you imagined."
It's really sad to see desktop apps adopt hamburger menus and things that make sense on mobile but make life harder on a desktop built for WIMP.
Thank you, Bill! Some days I'd rather be using your interface.
https://www.folklore.org/Joining_Apple_Computer.html
https://www.folklore.org/Negative_2000_Lines_Of_Code.html --- something to bring up whenever lines of code as a metric is put forward
https://www.folklore.org/Rosings_Rascals.html --- story of how the Macintosh Finder came to be
https://www.folklore.org/I_Still_Remember_Regions.html --- surviving a car accident
This lesson stuck with me for years. Final results alone are measurable, not productivity.
> Final results alone are measurable
Not even those, for individuals
Mostly we work in teams. I myself like to work in "plumbing" that is arbitrarily far from "final results"
Code that’s 4K and took slightly less time to write but runs slightly faster than code that’s 400 bytes that took another 30m to write still doesn’t get the best score.
What about correctness, robustness, readability, clarity, maintainability?
I was amazed by Bill's software seeing it on a Mac back then - MacPaint mostly, then HyperCard. I was not even 10, but I was already programming, and spent hours trying to figure out how to implement MacPaint's Lasso on my humble ZX Spectrum. (With some success, but not quite as elegant...)
If you want to experience HyperCard, John Earnest (RodgerTheGreat on HN[0]) built Decker[1] that runs on both the web and natively, and captures the aesthetic and most stuff perfectly. It uses Lil as a programming language - it is different than HyperTalk, but beautiful in its own right. (It doesn't read as English quite the way HyperTalk does, but it is more regular and easier to write - it's a readable/writable vector language, quite unlike those other ones ...)
For whomever submits stories like this, please say who the person was. Very few people are so famous that everyone in tech knows who they were, and Mr. Atkinson was not one of them. I've heard of his accomplishments, but never the man himself.
Atkinson was a brilliant engineer. As critical to the launch of A Macintosh as anyone — efficient rendering of regions, overlapping windows, etc.
And last but not least, Mac Paint. Every computer painting program in existence owes Atkinson a nod.
This gave rise both to the Science Citation Index and to various hypertext systems. For example the famous 1968 presentation https://www.youtube.com/watch?v=yJDv-zdhzMY, now known as "The Mother of All Demos", demonstrated a working hypertext system among the other jaw-dropping accomplishments.
HyperCard brought hypertext to commodity hardware. The Web made a distributed hypertext system viable. Google's PageRank recombined hypertext and the Science Citation Index to make the web more usable. And all of the key insights trace back to Vannevar Bush. Who was able to have such deep insights in 1945 because he had been working in, and thinking about, computing at least since 1927.
The history of important ideas in computing generally goes far deeper than most programmers are aware.
on mouseDown
answer "HyperTalk!" with "OK"
end mouseDown
HyperCard was really cool and I miss it. Its most important feature IMO was to enable non-programmers to rather easily author useful software. As happend with Excel.
The idea that information can be hyperlinked is much older than HyperCard. Check out Ted Nelson and his https://en.wikipedia.org/wiki/Project_Xanadu which predates HyperCard by more than a decade.
And then there was the https://en.wikipedia.org/wiki/Symbolics_Document_Examiner, or GNU Texinfo and its precursors besides many other attempts.
[1] - https://www.nytimes.com/2025/06/07/technology/bill-atkinson-...
What a tribute! He was famous at the time, though now perhaps an unsung hero in leading us into a GUI world.
He and his associated printed and sent tons of photography all around the world.
The was loved among photographers as well. https://apps.apple.com/us/app/photocard-by-bill-atkinson/id3...
I will continue to admire him and his way of problem solving, speaking about your past work -- successes and lessons learned
rip
Also, perhaps the General Magic documentary is a fun watch too: https://youtu.be/JQymn5flcek
Steve turned to look at Bill. "Bill, how long did you spend writing Quickdraw?"
"Well, I worked on it on and off for four years", Bill replied.
Steve paused for a beat and then turned back to the Byte reporter. "Twenty-four man-years. We invested twenty-four man-years in QuickDraw."
Obviously, Steve figured that one Atkinson year equaled six man years, which may have been a modest estimate.
http://folklore.org/StoryView.py?story=Mythical_Man_Year.txt
RIP to a legend
I'm yet another child of HyperCard. It opened my mind to what computers could be for, and even though the last two decades have been full primarily of disappointment, I still hold onto that other path as a possibility, or even as a slice of reality---a few weeds growing in the cracks of our dystopian concrete.
Thanks for everything, Bill — Rest in Peace.
Can we get a better link maybe on the homepage ?
https://daringfireball.net/linked/2025/06/07/bill-atkinson-r...
I spent countless hours building HyperCard stacks and creating artwork in MacPaint, in college. A true legend.
RIP. Fat Bits forever.
I think a subtle factor is that when learning HC (or Visual Basic, or LabVIEW), you started using objects before you learned how to create them. All of these packages came with lots of pre-written objects that were easy to use. In the case of VB, you had to buy a special version if you wanted to create your own objects, and very few people did.
I think when teaching newer languages like Python, this is done as a matter of course. For instance if you show someone how to calculate a function and graph it, you're probably using objects from something like Matplotlib, before being shown how to create your own. And once again, among casual programmers, relatively few people define their own classes.
I find that I'm less interested in defining my own classes today than I was 10 or so years ago. https://us.pycon.org/2012/schedule/presentation/352/ left a big impression on me (though I didn't see it until a fair bit after the fact).
A digression: the roster of Apple-related pancreatic cancer victims is getting longer -- Jef Raskin (2005), Steve Jobs (2011), now Bill Atkinson (2025). The overall pancreatic cancer occurrence rate is 14 per 100,000, so such a cluster is surprising within a small group, but the scientist in me wants to argue that it's just a coincidence, signifying nothing.
Maybe it's the stress of seeing how quickly one's projects become historical footnotes, erased by later events. And maybe it's irrational to expect anything else.
RIP Mr Bill Atkinson
He was a good man and great engineer.
RIP
Bill on Steve Jobs and HyperCard:
https://youtu.be/kzKCZN3UsRQ?si=eNIsysWdrjp2tHwd
Black bar, please.
DonHopkins on Dec 13, 2019 | parent | context | favorite | on: Bill Atkinson: Reflections on the 40th anniversary...
I recently posted these thoughts about Bill Atkinson, and links to articles and a recent interview he gave to Brad Myers' user interface class at CMU: https://news.ycombinator.com/item?id=21726302
Bill Atkinson is the humblest, sweetest, most astronomically talented guy -- practically the opposite of Rony Abovitz! I think they're on very different drugs. The Psychedelic Inspiration For Hypercard, by Bill Atkinson, as told to Leo Laporte.
"In 1985 I swallowed a tiny fleck of gelatin containing a medium dose of LSD, and I spent most of the night sitting on a concrete park bench outside my home in Los Gatos, California." ...
https://www.mondo2000.com/2018/06/18/the-inspiration-for-hyp...
Full interview with lots more details about the development of HyperCard:
https://twit.tv/shows/triangulation/episodes/247?autostart=f...
Bill Atkinson's guest lecture in Brad Meyer's CMU 05-640 Interaction Techniques class, Spring 2019, Feb 4, 2019:
https://scs.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=...
Including polaroids of early Lisa development.
About PhotoCard:
https://web.archive.org/web/20110303033205/http://www.billat...
PhotoCard by Bill Atkinson is a free app available from the iTunes App store, that allows you to create custom postcards using Bill's nature photos or your own personal photos, then send them by email or postal mail from your iPad, iPhone or iPod touch.
Bill Atkinson, Mac software legend and world renowned nature photographer, has created an innovative application that redefines how people create and send postcards.
With PhotoCard you can make dazzling, high resolution postcards on your iPad, iPhone or iPod touch, and send them on-the-spot, through email or the US Postal Service. The app is amazingly easy to use. To create a PhotoCard, select one of Bill's nature photos or one of your own personal photos. Then, flip the card over to type your message. For a fun touch, jazz up your PhotoCard with decorative stickers and stamps. If you're emailing your card, it can even include an audible greeting. When you've finished your creation, send it off to any email or postal address in the world!
pvg on Dec 13, 2019 | prev [–]
Was this bit about LSD and Hypercard covered before what seems like a 2016 interview and some later articles? So much has been written about HyperCard (and MacPaint and QuickDraw) I'm wondering if I somehow managed to miss it in all that material.
DonHopkins on Dec 13, 2019 | parent | next [–]
As far as I know, the first time Bill Atkinson publically mentioned that LSD inspired HyperCard was in an interview with Leo Laporte on Apr 25th 2016, which claims to be "Part 2". I have searched all over for part 1 but have not been able to find it. Then Mondo 2000 published a transcript of that part of the interview on June 18 2018, and I think a few other publications repeated it around that time.
And later on Feb 4, 2019 he gave a live talk to Brad Myers' "05-640: Interaction Techniques" user interface design class at CMU, during which he read the transcript.
http://www.cs.cmu.edu/~bam/uicourse/05440inter2019/schedule....
It's well worth watching that interview. He went over and explained all of his amazing Polaroids of Lisa development, which I don't think have ever been published anywhere else.
See Bill Atkinson's Lisa development polaroids:
http://www.cs.cmu.edu/~bam/uicourse/05440inter2019/Bill_Atki...
Then at 1:03:15 a student asked him the million dollar question: what was the impetus and motivation behind HyperCard? He chuckled, reached for the transcript he had off-camera, and then out of the blue he asked the entire class "How many of you guys have done ... a psychedelic?" (Brad reported "No hands", but I think some may have been embarrassed to admit it in front of their professor). So then Bill launched into reading the transcript of the LSD HyperCard story, and blew all the students' minds.
See video of Bill's talk:
https://scs.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=...
The next week I gave a talk to the same class that Bill had just traumatized by asking if they'd done illegal drugs, and (at 37:11) I trolled them by conspiratorially asking: "One thing I wanted to ask the class: Have any of you ever used ... (pregnant pause) ... HyperCard? Basically, because in 1987 I saw HyperCard, and it fucking blew my mind." Then I launched into my description of how important and amazing HyperCard was.
See video of Don's talk:
https://scs.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=...
Here is an index of all of the videos from Brad Myers' interaction techniques class, including Rob Haitani (Palm Pilot), Shumin Zhai (text input and swipe method), Dan Bricklin (spreadsheets, Demo prototyping tool), Don Hopkins (pie menus), and Bill Atkinson (Mac, HyperCard):
https://scs.hosted.panopto.com/Panopto/Pages/Sessions/List.a...
Why isn't the black bar up atop the site?
This post is only an hour old as I’m writing this, so give it time. It’s a weekend, and as far as I’m aware there are only 2 mods, unless there are others empowered to turn on the black bar in their absence.
https://www.nytimes.com/2018/03/26/lens/the-superfund-sites-...
“A 60-year-old male in the US can expect to live until about age 82”
Pancreatic cancer usually is hard to detect until it’s reached an advanced stage. We really should invest more into research
You don't know for how long he did have that disease, if anything, resources might have afforded him many more years of life at first place.So your comment strikes me as odd, given the fact that you can't judge how long did he live with such disease.
One of my friend's dad died from the same kind of cancer. Between the diagnosis and their death, 2 months passed, and that person had plenty of "resources"...
It happened during a family reunion for Christmas, so at least everyone was present.
And some people with no resources, no reason to live, but have incredible genetics will linger for many years beyond what people think is possible, like a weed.