Josh Justice | LIVE 2021 | Oct 19
User-Modifiable Software
Smalltalk and HyperCard
User-Modifiable Software:
Software that the user can inspect and modify
in the same environment they run it in.
Josh Justice
Web Platform Lead
Big Nerd Ranch
Smalltalk
Researching Smalltalk to learn
about the foundations of
dynamically-typed object-oriented
programming languages
Smalltalk
“Dynamic” means:
• Inspect the state of running objects and send messages to them
• Source for every class is available for inspection
• Modify or extend a class from within the system and it affects the live instances
HyperCard
HyperCard
• Send messages to the current card
• UI and scripts are available for inspection
• Modify a UI element or script from within the system for immediate effect
Questions To Answer:
• How did these two different user-modifiable systems emerge?
• Motivation
• Properties
• Challenges
• What insights can we gain from them to apply to new user-modifiable systems?
https://usermodifiable.softwa
re
Seven Insights about
User-Modifiable Systems
1. Think outside the box.
Smalltalk and HyperCard took significantly different
approaches to creating user-modifiable platforms.
•Starts with Code
•No Barriers
•Written In Itself
Smalltalk
•Starts with UI
•Explicit User Levels
•Written in Pascal
HyperCard
1. Think outside the box.
There are many ways a user-modifiable system can work.
2. Focus on a vision.
These systems were driven by simple visions,
not detailed up-front designs.
HyperCard:
The Software Erector Set
HyperCard:
Software LEGOs
Bill Atkinson, "The Legacy of HyperCard"
“The cleanest, simplest set of tools that
would empower a lot of different things.”
The set of tools:
•Graphics
•Text
•Buttons
Dan Ingalls, "Design Principles Behind Smalltalk"
“The purpose of the Smalltalk project is to provide computer support
for the creative spirit in everyone.
If a system is to serve the creative spirit, it must be entirely
comprehensible to a single individual… Any barrier that exists
between the user and some part of the system will eventually be a
barrier to creative expression.”
Ted Kaehler, email interview
“We were devoted to letting users ‘see’ their code better
and more simply…
We avoided putting code in files so the user would not
have to think about or manage files.”
2. Focus on a vision.
Following a simple vision can yield better results
than following a detailed plan.
3. Eat your own dogfood.
These systems grew in featuresets as
their creators used them for their own work.
Smalltalk Development Tools
• “Larry Tesler created the ‘Code Browser’ to let users see the classes and methods
of the entire system.
• Dan Ingalls implemented the first opaque overlapping windows to let users see
more code and other objects on the screen.
• Dan invented pop-up menus to put editing commands where the user was working
at that moment.
Ted Kaehler, email interview
The HyperCard
Help Stack
Ted Kaehler, email interview
“Development [of HyperCard] was partly driven by the requirements of
the HyperCard Help Stack, which my wife Carol Kaehler was making.
She needed an unchanging background for a group of cards. She
needed multiple backgrounds in a stack. She needed scripting to make
buttons navigate between cards. She needed scripts to show what each
paint tool could do.”
3. Eat your own dogfood.
Make your system practically useful for you.
4. Open-source it.
One reason Smalltalk evolved and HyperCard died
is the availability of the source code.
4. Open-source it.
• HyperCard was commercial software.
• It was discontinued by its manufacturer.
• Because the source is not available, making a successor requires a rewrite.
4. Open-source it.
• “the Smalltalk compilers, tools and libraries were provided in source form; only the
VMs were closed source.” — Gilad Bracha, “Bits of History, Words of Advice”
• “the Blue Book contains a Smalltalk description of the virtual machine” which was
translated to C — Dan Ingalls, “Back to the Future: The History of Squeak, a
Practical Smalltalk Written in Itself”
Squeak Smalltalk came from open source:
4. Open-source it.
One way to ensure user-modifiable software stays available to
users is to open-source it.
5. Put it out into the world.
The reason we know about these systems is because they
took steps to get into business’ and consumers’ hands.
Bill Atkinson, "Legacy of HyperCard"
“It was an exchange medium… You want
people to be sharing stuff. They all have to have
the software that it takes at least to play it, but
hopefully to be able to author it also. So I
worked out an arrangement with Apple that it
would be bundled free, be in the box with every
Mac…”
Adele Goldberg, "Oral History of Adele Goldberg"
“I knew we had something important that met the
goal of empowering people. But we didn’t
understand enough about what this did to empower
people, and we really needed to learn. And the only
way was to just get out there commercially.”
A contradiction:
1. “Smalltalk and/or HyperCard are important,” and
2. “The only thing that matters is research.”
5. Put it out into the world.
One way to increase your system’s impact is
getting your system into consumers’ or businesses’ hands.
6. Get it in the box.
Bettencourt, "The xTalk Interviews"
“What made HyperCard the ubiquitous product it was in the
early 90’s… was the fact that it was included free with every
Macintosh sold. So anybody could use it to create something,
then share their creation with somebody else with the
confidence that the other person would be able to run it.”
What is the box today?
What is available on
every computing device
without requiring any action,
purchase, or download?
6. Get it in the box.
Find ways to make the system
immediately available to users.
7. Appreciate spin-offs.
Some of the biggest impacts these systems had
are the other systems they inspired.
HyperCard as a
Successor to Smalltalk
Ted Kaehler, interview
“HyperCard evolved a lot during its development and
Alan Kay was advising Bill Atkinson. Bill had very clear
goals for HyperCard, but Alan and I did try to push it in
certain directions… Alan and I argued for generalized
objects and classes, but Bill wanted to keep it very
concrete. He was right.”
The Web as a
Successor to HyperCard
Bill Atkinson, "The Legacy of HyperCard"
“There was a little difference [from the web] that
HyperCard was always an authoring environment, never
just a browser. I didn’t separate the guys who consume
the information from the guys who create it.”
Web IDEs as
User-Modifiable Systems
7. Appreciate spin-offs.
The biggest impact your system has
may be inspiring another system.
Principles from Smalltalk and HyperCard
1. Think outside the box.
2. Focus on a vision.
3. Eat your own dogfood.
4. Open-source it.
5. Put it out into the world.
6. Get it in the box.
7. Appreciate spin-offs.
Thank you! Questions?
1. Think outside the box.
2. Focus on a vision.
3. Eat your own dogfood.
4. Open-source it.
5. Put it out into the world.
6. Get it in the box.
7. Appreciate spin-offs.
User-Modifiable Software: Smalltalk and HyperCard | Josh Justice | LIVE 2021 | Oct 19

User-Modifiable Software: Smalltalk and HyperCard

  • 1.
    Josh Justice |LIVE 2021 | Oct 19 User-Modifiable Software Smalltalk and HyperCard
  • 2.
    User-Modifiable Software: Software thatthe user can inspect and modify in the same environment they run it in.
  • 3.
    Josh Justice Web PlatformLead Big Nerd Ranch
  • 4.
    Smalltalk Researching Smalltalk tolearn about the foundations of dynamically-typed object-oriented programming languages
  • 5.
    Smalltalk “Dynamic” means: • Inspectthe state of running objects and send messages to them • Source for every class is available for inspection • Modify or extend a class from within the system and it affects the live instances
  • 6.
  • 7.
    HyperCard • Send messagesto the current card • UI and scripts are available for inspection • Modify a UI element or script from within the system for immediate effect
  • 8.
    Questions To Answer: •How did these two different user-modifiable systems emerge? • Motivation • Properties • Challenges • What insights can we gain from them to apply to new user-modifiable systems?
  • 9.
  • 10.
  • 11.
    1. Think outsidethe box. Smalltalk and HyperCard took significantly different approaches to creating user-modifiable platforms.
  • 12.
    •Starts with Code •NoBarriers •Written In Itself Smalltalk •Starts with UI •Explicit User Levels •Written in Pascal HyperCard
  • 13.
    1. Think outsidethe box. There are many ways a user-modifiable system can work.
  • 14.
    2. Focus ona vision. These systems were driven by simple visions, not detailed up-front designs.
  • 15.
  • 16.
  • 17.
    Bill Atkinson, "TheLegacy of HyperCard" “The cleanest, simplest set of tools that would empower a lot of different things.”
  • 18.
    The set oftools: •Graphics •Text •Buttons
  • 19.
    Dan Ingalls, "DesignPrinciples Behind Smalltalk" “The purpose of the Smalltalk project is to provide computer support for the creative spirit in everyone. If a system is to serve the creative spirit, it must be entirely comprehensible to a single individual… Any barrier that exists between the user and some part of the system will eventually be a barrier to creative expression.”
  • 20.
    Ted Kaehler, emailinterview “We were devoted to letting users ‘see’ their code better and more simply… We avoided putting code in files so the user would not have to think about or manage files.”
  • 21.
    2. Focus ona vision. Following a simple vision can yield better results than following a detailed plan.
  • 22.
    3. Eat yourown dogfood. These systems grew in featuresets as their creators used them for their own work.
  • 23.
    Smalltalk Development Tools •“Larry Tesler created the ‘Code Browser’ to let users see the classes and methods of the entire system. • Dan Ingalls implemented the first opaque overlapping windows to let users see more code and other objects on the screen. • Dan invented pop-up menus to put editing commands where the user was working at that moment. Ted Kaehler, email interview
  • 24.
  • 25.
    Ted Kaehler, emailinterview “Development [of HyperCard] was partly driven by the requirements of the HyperCard Help Stack, which my wife Carol Kaehler was making. She needed an unchanging background for a group of cards. She needed multiple backgrounds in a stack. She needed scripting to make buttons navigate between cards. She needed scripts to show what each paint tool could do.”
  • 26.
    3. Eat yourown dogfood. Make your system practically useful for you.
  • 27.
    4. Open-source it. Onereason Smalltalk evolved and HyperCard died is the availability of the source code.
  • 28.
    4. Open-source it. •HyperCard was commercial software. • It was discontinued by its manufacturer. • Because the source is not available, making a successor requires a rewrite.
  • 29.
    4. Open-source it. •“the Smalltalk compilers, tools and libraries were provided in source form; only the VMs were closed source.” — Gilad Bracha, “Bits of History, Words of Advice” • “the Blue Book contains a Smalltalk description of the virtual machine” which was translated to C — Dan Ingalls, “Back to the Future: The History of Squeak, a Practical Smalltalk Written in Itself” Squeak Smalltalk came from open source:
  • 30.
    4. Open-source it. Oneway to ensure user-modifiable software stays available to users is to open-source it.
  • 31.
    5. Put itout into the world. The reason we know about these systems is because they took steps to get into business’ and consumers’ hands.
  • 32.
    Bill Atkinson, "Legacyof HyperCard" “It was an exchange medium… You want people to be sharing stuff. They all have to have the software that it takes at least to play it, but hopefully to be able to author it also. So I worked out an arrangement with Apple that it would be bundled free, be in the box with every Mac…”
  • 33.
    Adele Goldberg, "OralHistory of Adele Goldberg" “I knew we had something important that met the goal of empowering people. But we didn’t understand enough about what this did to empower people, and we really needed to learn. And the only way was to just get out there commercially.”
  • 34.
    A contradiction: 1. “Smalltalkand/or HyperCard are important,” and 2. “The only thing that matters is research.”
  • 35.
    5. Put itout into the world. One way to increase your system’s impact is getting your system into consumers’ or businesses’ hands.
  • 36.
    6. Get itin the box.
  • 37.
    Bettencourt, "The xTalkInterviews" “What made HyperCard the ubiquitous product it was in the early 90’s… was the fact that it was included free with every Macintosh sold. So anybody could use it to create something, then share their creation with somebody else with the confidence that the other person would be able to run it.”
  • 38.
    What is thebox today?
  • 39.
    What is availableon every computing device without requiring any action, purchase, or download?
  • 41.
    6. Get itin the box. Find ways to make the system immediately available to users.
  • 42.
    7. Appreciate spin-offs. Someof the biggest impacts these systems had are the other systems they inspired.
  • 43.
  • 44.
    Ted Kaehler, interview “HyperCardevolved a lot during its development and Alan Kay was advising Bill Atkinson. Bill had very clear goals for HyperCard, but Alan and I did try to push it in certain directions… Alan and I argued for generalized objects and classes, but Bill wanted to keep it very concrete. He was right.”
  • 45.
    The Web asa Successor to HyperCard
  • 47.
    Bill Atkinson, "TheLegacy of HyperCard" “There was a little difference [from the web] that HyperCard was always an authoring environment, never just a browser. I didn’t separate the guys who consume the information from the guys who create it.”
  • 48.
  • 50.
    7. Appreciate spin-offs. Thebiggest impact your system has may be inspiring another system.
  • 51.
    Principles from Smalltalkand HyperCard 1. Think outside the box. 2. Focus on a vision. 3. Eat your own dogfood. 4. Open-source it. 5. Put it out into the world. 6. Get it in the box. 7. Appreciate spin-offs.
  • 52.
    Thank you! Questions? 1.Think outside the box. 2. Focus on a vision. 3. Eat your own dogfood. 4. Open-source it. 5. Put it out into the world. 6. Get it in the box. 7. Appreciate spin-offs. User-Modifiable Software: Smalltalk and HyperCard | Josh Justice | LIVE 2021 | Oct 19

Editor's Notes

  • #4 I’m not actually in academia; I work at a consultancy named Big Nerd Ranch. But thankfully it’s a consultancy that places a high value on learning, so they supported me learning about user-modifiable software.
  • #6 This seemed familiar. Reminded me of a system I had used as a kid…
  • #8 Now I had a pattern: user-modifiable systems. That I wanted to investigate
  • #11 Patterns in what happened with Smalltalk and HyperCard that I think we can apply to future systems
  • #14 So, they have significant differences Your system may be different again Don't be constrained by what's come before
  • #21 When you read what Goldberg, Ingalls, Kay, and Kaehler say about Smalltalk, they usually talk like this. They don't describe a great labor to break out of the constraints of conventional thinking about software. They talk as though the innovative properties of Smalltalk fell out automatically. This is not to minimize any of their innovation, but just to say, that innovation is applied in clear thinking.
  • #22 In other words, commitment to the vision, not to an implementation.
  • #24 There's a reason many of Smalltalk's greatest innovations were in software development tooling.
  • #26 The Help Stack required more features to work, and those features in turn needed to be documented in the Help stack as well.
  • #27 Dogfooding is a reality check. It reminds us that although our systems are theoretically interesting, they may not yet have reached the point of being practically useful.
  • #31 User-modifiable systems are not generally seen as big money-makers.
  • #34 Referring to founding ParcPlace Systems The goal was to learn. The means to that end was commercial release
  • #35 If you say both of these things, I would propose that it's a contradiction. Here's why. The reason we know about Smalltalk and HyperCard is because they had a broad impact.
  • #36 Don’t leave this as an exercise for the reader. It doesn't have to be you who puts it out into the world. If someone else does it, support them.
  • #37 Here's what I mean
  • #39 Let me say it another way
  • #41 Not quite the same in terms of discoverability. Don’t overlook the web when it comes to accessibility to users.
  • #45 Check out that humility: this person who did something different did it better
  • #47 Two early web browsers Viola, the creator says he copied the UI from HyperCard Mosaic acknowledged the influence of HyperCard
  • #48 But some projects are taking this farther
  • #50 Replit, CodeSandbox, Glitch.com Preconfigured development environment Accessible in a web browser with no installation Allows forking and modifying others' projects There is still a build vs run distinction but it reduces the barrier
  • #51 This is the opposite of a single vision. If your system is impactful, it will inspire other systems that don't have the same vision as yours. But if those systems advance the state of computing and empower users, consider that a win. You may not get the credit.
  • #52 If we apply these things to our user-modifiable systems, they will likely have a bigger impact.
  • #53 If we apply these things to our user-modifiable systems, they will likely have a bigger impact.