SlideShare a Scribd company logo
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

More Related Content

What's hot

JLL-V3
JLL-V3JLL-V3
Become a cloud superhero with Code, Community & Culture
Become a cloud superhero with Code, Community & CultureBecome a cloud superhero with Code, Community & Culture
Become a cloud superhero with Code, Community & Culture
Angel Diaz
 
RIP I.T. - Moving from Information Technology to Technology Integration
RIP  I.T.  - Moving from Information Technology to Technology IntegrationRIP  I.T.  - Moving from Information Technology to Technology Integration
RIP I.T. - Moving from Information Technology to Technology Integration
Jay Kuri
 
Designing Connected Products - Web Directions 2015 Sydney
Designing Connected Products - Web Directions 2015 SydneyDesigning Connected Products - Web Directions 2015 Sydney
Designing Connected Products - Web Directions 2015 Sydney
Martin Charlier
 
World in Transformation
World in TransformationWorld in Transformation
World in Transformation
Cisco Canada
 
Go out and play: why software isn't what the internet of things needs the most.
Go out and play: why software isn't what the internet of things needs the most.Go out and play: why software isn't what the internet of things needs the most.
Go out and play: why software isn't what the internet of things needs the most.
Alexandra Deschamps-Sonsino
 
Disrupting Business: the rise of citizen developers
Disrupting Business: the rise of citizen developers Disrupting Business: the rise of citizen developers
Disrupting Business: the rise of citizen developers
Daryl Pereira
 
What Digital Technology Does to Design & Innovation
What Digital Technology Does to Design & InnovationWhat Digital Technology Does to Design & Innovation
What Digital Technology Does to Design & Innovation
Fing
 
Google x
Google xGoogle x
Google x
Rahul Shakya
 
IDX @ Digital Literacy Forum, State Library Queensland
IDX @ Digital Literacy Forum, State Library QueenslandIDX @ Digital Literacy Forum, State Library Queensland
IDX @ Digital Literacy Forum, State Library Queensland
IDX Initiative
 
Innovating the smart city (by Dany Robberecht)
Innovating the smart city (by Dany Robberecht)Innovating the smart city (by Dany Robberecht)
Innovating the smart city (by Dany Robberecht)
Verhaert Masters in Innovation
 
Stop looking for designers. Become one! (On why developers should learn design)
Stop looking for designers. Become one! (On why developers should learn design)Stop looking for designers. Become one! (On why developers should learn design)
Stop looking for designers. Become one! (On why developers should learn design)
Emanuele Libralato
 
Rethinking OSS In An Era of Cloud and ML
Rethinking OSS In An Era of Cloud and MLRethinking OSS In An Era of Cloud and ML
Rethinking OSS In An Era of Cloud and ML
Peter Wang
 
Disruption is Change is Future
Disruption is Change is FutureDisruption is Change is Future
Disruption is Change is Future
Anatole Tresch
 
Effective Management of Docker Containers
Effective Management of Docker ContainersEffective Management of Docker Containers
Effective Management of Docker Containers
Jason Bloomberg
 
​ Insight Types That Influence Enterprise Decision Makers (Christian Rohrer a...
​ Insight Types That Influence Enterprise Decision Makers (Christian Rohrer a...​ Insight Types That Influence Enterprise Decision Makers (Christian Rohrer a...
​ Insight Types That Influence Enterprise Decision Makers (Christian Rohrer a...
Rosenfeld Media
 
UX Alive Conference speaker is Sophie Kleber (Huge) presentations
UX Alive Conference speaker is Sophie Kleber (Huge) presentationsUX Alive Conference speaker is Sophie Kleber (Huge) presentations
UX Alive Conference speaker is Sophie Kleber (Huge) presentations
UX Alive Conference
 
How the Cloud Fixes Bimodal IT
How the Cloud Fixes Bimodal ITHow the Cloud Fixes Bimodal IT
How the Cloud Fixes Bimodal IT
Jason Bloomberg
 
NetHope Chairman Report -- 2012 NetHope Global Member Summit
NetHope Chairman Report -- 2012 NetHope Global Member SummitNetHope Chairman Report -- 2012 NetHope Global Member Summit
NetHope Chairman Report -- 2012 NetHope Global Member Summit
NetHopeOrg
 
Aux slides for session 3
Aux slides for session 3Aux slides for session 3
Aux slides for session 3
International Innovation Centers
 

What's hot (20)

JLL-V3
JLL-V3JLL-V3
JLL-V3
 
Become a cloud superhero with Code, Community & Culture
Become a cloud superhero with Code, Community & CultureBecome a cloud superhero with Code, Community & Culture
Become a cloud superhero with Code, Community & Culture
 
RIP I.T. - Moving from Information Technology to Technology Integration
RIP  I.T.  - Moving from Information Technology to Technology IntegrationRIP  I.T.  - Moving from Information Technology to Technology Integration
RIP I.T. - Moving from Information Technology to Technology Integration
 
Designing Connected Products - Web Directions 2015 Sydney
Designing Connected Products - Web Directions 2015 SydneyDesigning Connected Products - Web Directions 2015 Sydney
Designing Connected Products - Web Directions 2015 Sydney
 
World in Transformation
World in TransformationWorld in Transformation
World in Transformation
 
Go out and play: why software isn't what the internet of things needs the most.
Go out and play: why software isn't what the internet of things needs the most.Go out and play: why software isn't what the internet of things needs the most.
Go out and play: why software isn't what the internet of things needs the most.
 
Disrupting Business: the rise of citizen developers
Disrupting Business: the rise of citizen developers Disrupting Business: the rise of citizen developers
Disrupting Business: the rise of citizen developers
 
What Digital Technology Does to Design & Innovation
What Digital Technology Does to Design & InnovationWhat Digital Technology Does to Design & Innovation
What Digital Technology Does to Design & Innovation
 
Google x
Google xGoogle x
Google x
 
IDX @ Digital Literacy Forum, State Library Queensland
IDX @ Digital Literacy Forum, State Library QueenslandIDX @ Digital Literacy Forum, State Library Queensland
IDX @ Digital Literacy Forum, State Library Queensland
 
Innovating the smart city (by Dany Robberecht)
Innovating the smart city (by Dany Robberecht)Innovating the smart city (by Dany Robberecht)
Innovating the smart city (by Dany Robberecht)
 
Stop looking for designers. Become one! (On why developers should learn design)
Stop looking for designers. Become one! (On why developers should learn design)Stop looking for designers. Become one! (On why developers should learn design)
Stop looking for designers. Become one! (On why developers should learn design)
 
Rethinking OSS In An Era of Cloud and ML
Rethinking OSS In An Era of Cloud and MLRethinking OSS In An Era of Cloud and ML
Rethinking OSS In An Era of Cloud and ML
 
Disruption is Change is Future
Disruption is Change is FutureDisruption is Change is Future
Disruption is Change is Future
 
Effective Management of Docker Containers
Effective Management of Docker ContainersEffective Management of Docker Containers
Effective Management of Docker Containers
 
​ Insight Types That Influence Enterprise Decision Makers (Christian Rohrer a...
​ Insight Types That Influence Enterprise Decision Makers (Christian Rohrer a...​ Insight Types That Influence Enterprise Decision Makers (Christian Rohrer a...
​ Insight Types That Influence Enterprise Decision Makers (Christian Rohrer a...
 
UX Alive Conference speaker is Sophie Kleber (Huge) presentations
UX Alive Conference speaker is Sophie Kleber (Huge) presentationsUX Alive Conference speaker is Sophie Kleber (Huge) presentations
UX Alive Conference speaker is Sophie Kleber (Huge) presentations
 
How the Cloud Fixes Bimodal IT
How the Cloud Fixes Bimodal ITHow the Cloud Fixes Bimodal IT
How the Cloud Fixes Bimodal IT
 
NetHope Chairman Report -- 2012 NetHope Global Member Summit
NetHope Chairman Report -- 2012 NetHope Global Member SummitNetHope Chairman Report -- 2012 NetHope Global Member Summit
NetHope Chairman Report -- 2012 NetHope Global Member Summit
 
Aux slides for session 3
Aux slides for session 3Aux slides for session 3
Aux slides for session 3
 

Similar to User-Modifiable Software: Smalltalk and HyperCard

Ficod 2011 (keynote file)
Ficod 2011 (keynote file)Ficod 2011 (keynote file)
Ficod 2011 (keynote file)
Tim O'Reilly
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
Jennifer Lim
 
Perspectives on Open
Perspectives on OpenPerspectives on Open
Perspectives on Open
Tim O'Reilly
 
Introduction to Hacking for University Hack Day
Introduction to Hacking for University Hack DayIntroduction to Hacking for University Hack Day
Introduction to Hacking for University Hack Day
Christian Heilmann
 
From 🤦 to 🐿️
From 🤦 to 🐿️From 🤦 to 🐿️
From 🤦 to 🐿️
Ori Pekelman
 
Future Interface : What the last 50+ Years of Modern Computing History May Te...
Future Interface : What the last 50+ Years of Modern Computing History May Te...Future Interface : What the last 50+ Years of Modern Computing History May Te...
Future Interface : What the last 50+ Years of Modern Computing History May Te...
CA API Management
 
The Ideal Collaborative Workspace
The Ideal Collaborative WorkspaceThe Ideal Collaborative Workspace
The Ideal Collaborative Workspace
ibdrii
 
Choosing the right Technologies for your next unicorn.
Choosing the right Technologies for your next unicorn.Choosing the right Technologies for your next unicorn.
Choosing the right Technologies for your next unicorn.
Gladson DSouza
 
Derrick De K Brainframes Of Web 2.0
Derrick De K Brainframes Of Web 2.0Derrick De K Brainframes Of Web 2.0
Derrick De K Brainframes Of Web 2.0
New Media Days
 
Things will Change - Usenix Keynote UCMS'14
Things will Change - Usenix Keynote UCMS'14Things will Change - Usenix Keynote UCMS'14
Things will Change - Usenix Keynote UCMS'14
Erica Windisch
 
Hackability - What it means, why it’s important
Hackability - What it means, why it’s importantHackability - What it means, why it’s important
Hackability - What it means, why it’s important
Tristan Nitot
 
Hackability - What it means, why it’s important
Hackability - What it means, why it’s importantHackability - What it means, why it’s important
Hackability - What it means, why it’s important
Tristan Nitot
 
Rapid Product Design in the Wild
Rapid Product Design in the WildRapid Product Design in the Wild
Rapid Product Design in the Wild
Michele Ide-Smith
 
Blockchain Experience Design Meetup #1
Blockchain Experience Design Meetup #1Blockchain Experience Design Meetup #1
Blockchain Experience Design Meetup #1
Gendry Morales
 
Designing Structure: Interaction Design
Designing Structure: Interaction DesignDesigning Structure: Interaction Design
Designing Structure: Interaction Design
Christina Wodtke
 
Ar design reality2018
Ar design reality2018Ar design reality2018
Ar design reality2018
Anselm Hook
 
IoT and xAPI - ADL Design Cohort xAPIGnome
IoT and xAPI - ADL Design Cohort xAPIGnomeIoT and xAPI - ADL Design Cohort xAPIGnome
IoT and xAPI - ADL Design Cohort xAPIGnome
TorranceLearning
 
Dharma Drum Univ Digital Philanthropy
Dharma Drum Univ Digital PhilanthropyDharma Drum Univ Digital Philanthropy
Dharma Drum Univ Digital Philanthropy
Joy Tang
 
Emerging Technologies in Libraries
Emerging Technologies in LibrariesEmerging Technologies in Libraries
Emerging Technologies in Libraries
Michael Sauers
 
Emerging Technologies in Libraries
Emerging Technologies in LibrariesEmerging Technologies in Libraries
Emerging Technologies in Libraries
Jennifer Koerber
 

Similar to User-Modifiable Software: Smalltalk and HyperCard (20)

Ficod 2011 (keynote file)
Ficod 2011 (keynote file)Ficod 2011 (keynote file)
Ficod 2011 (keynote file)
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
Perspectives on Open
Perspectives on OpenPerspectives on Open
Perspectives on Open
 
Introduction to Hacking for University Hack Day
Introduction to Hacking for University Hack DayIntroduction to Hacking for University Hack Day
Introduction to Hacking for University Hack Day
 
From 🤦 to 🐿️
From 🤦 to 🐿️From 🤦 to 🐿️
From 🤦 to 🐿️
 
Future Interface : What the last 50+ Years of Modern Computing History May Te...
Future Interface : What the last 50+ Years of Modern Computing History May Te...Future Interface : What the last 50+ Years of Modern Computing History May Te...
Future Interface : What the last 50+ Years of Modern Computing History May Te...
 
The Ideal Collaborative Workspace
The Ideal Collaborative WorkspaceThe Ideal Collaborative Workspace
The Ideal Collaborative Workspace
 
Choosing the right Technologies for your next unicorn.
Choosing the right Technologies for your next unicorn.Choosing the right Technologies for your next unicorn.
Choosing the right Technologies for your next unicorn.
 
Derrick De K Brainframes Of Web 2.0
Derrick De K Brainframes Of Web 2.0Derrick De K Brainframes Of Web 2.0
Derrick De K Brainframes Of Web 2.0
 
Things will Change - Usenix Keynote UCMS'14
Things will Change - Usenix Keynote UCMS'14Things will Change - Usenix Keynote UCMS'14
Things will Change - Usenix Keynote UCMS'14
 
Hackability - What it means, why it’s important
Hackability - What it means, why it’s importantHackability - What it means, why it’s important
Hackability - What it means, why it’s important
 
Hackability - What it means, why it’s important
Hackability - What it means, why it’s importantHackability - What it means, why it’s important
Hackability - What it means, why it’s important
 
Rapid Product Design in the Wild
Rapid Product Design in the WildRapid Product Design in the Wild
Rapid Product Design in the Wild
 
Blockchain Experience Design Meetup #1
Blockchain Experience Design Meetup #1Blockchain Experience Design Meetup #1
Blockchain Experience Design Meetup #1
 
Designing Structure: Interaction Design
Designing Structure: Interaction DesignDesigning Structure: Interaction Design
Designing Structure: Interaction Design
 
Ar design reality2018
Ar design reality2018Ar design reality2018
Ar design reality2018
 
IoT and xAPI - ADL Design Cohort xAPIGnome
IoT and xAPI - ADL Design Cohort xAPIGnomeIoT and xAPI - ADL Design Cohort xAPIGnome
IoT and xAPI - ADL Design Cohort xAPIGnome
 
Dharma Drum Univ Digital Philanthropy
Dharma Drum Univ Digital PhilanthropyDharma Drum Univ Digital Philanthropy
Dharma Drum Univ Digital Philanthropy
 
Emerging Technologies in Libraries
Emerging Technologies in LibrariesEmerging Technologies in Libraries
Emerging Technologies in Libraries
 
Emerging Technologies in Libraries
Emerging Technologies in LibrariesEmerging Technologies in Libraries
Emerging Technologies in Libraries
 

More from Josh Justice

Effective Detox Testing - React Advanced 2023
Effective Detox Testing - React Advanced 2023Effective Detox Testing - React Advanced 2023
Effective Detox Testing - React Advanced 2023
Josh Justice
 
Designing Effective Tests with React Testing Library - React Summit 2023
Designing Effective Tests with React Testing Library - React Summit 2023Designing Effective Tests with React Testing Library - React Summit 2023
Designing Effective Tests with React Testing Library - React Summit 2023
Josh Justice
 
Testing React Native Apps - Chain React 2023
Testing React Native Apps - Chain React 2023Testing React Native Apps - Chain React 2023
Testing React Native Apps - Chain React 2023
Josh Justice
 
Designing Effective Tests with React Testing Library - React Day Berlin 2022
Designing Effective Tests with React Testing Library - React Day Berlin 2022Designing Effective Tests with React Testing Library - React Day Berlin 2022
Designing Effective Tests with React Testing Library - React Day Berlin 2022
Josh Justice
 
Building for Mobile and Web with Expo - React Day Berlin 2022
Building for Mobile and Web with Expo - React Day Berlin 2022Building for Mobile and Web with Expo - React Day Berlin 2022
Building for Mobile and Web with Expo - React Day Berlin 2022
Josh Justice
 
Intro to React Native Testing Library
Intro to React Native Testing LibraryIntro to React Native Testing Library
Intro to React Native Testing Library
Josh Justice
 
Building for Mobile and Web with Expo - React Advanced London 2022
Building for Mobile and Web with Expo - React Advanced London 2022Building for Mobile and Web with Expo - React Advanced London 2022
Building for Mobile and Web with Expo - React Advanced London 2022
Josh Justice
 
Getting Better All the Time: How to Escape Bad Code
Getting Better All the Time: How to Escape Bad CodeGetting Better All the Time: How to Escape Bad Code
Getting Better All the Time: How to Escape Bad Code
Josh Justice
 
Sustainable Learning - ReactATL Jan 2022
Sustainable Learning - ReactATL Jan 2022Sustainable Learning - ReactATL Jan 2022
Sustainable Learning - ReactATL Jan 2022
Josh Justice
 
Building an App for Mobile and Web with Expo
Building an App for Mobile and Web with ExpoBuilding an App for Mobile and Web with Expo
Building an App for Mobile and Web with Expo
Josh Justice
 
Practical Accessibility (A11y)
Practical Accessibility (A11y)Practical Accessibility (A11y)
Practical Accessibility (A11y)
Josh Justice
 
Old Solutions to New Testing Problems
Old Solutions to New Testing ProblemsOld Solutions to New Testing Problems
Old Solutions to New Testing Problems
Josh Justice
 
Test-Driven Development in Vue with Cypress
Test-Driven Development in Vue with CypressTest-Driven Development in Vue with Cypress
Test-Driven Development in Vue with Cypress
Josh Justice
 
Test-Driven Development in React with Cypress
Test-Driven Development in React with CypressTest-Driven Development in React with Cypress
Test-Driven Development in React with Cypress
Josh Justice
 
Newbie's Guide to Contributing to Babel
Newbie's Guide to Contributing to BabelNewbie's Guide to Contributing to Babel
Newbie's Guide to Contributing to Babel
Josh Justice
 
Outside-in Testing in Vue with Cypress
Outside-in Testing in Vue with CypressOutside-in Testing in Vue with Cypress
Outside-in Testing in Vue with Cypress
Josh Justice
 

More from Josh Justice (16)

Effective Detox Testing - React Advanced 2023
Effective Detox Testing - React Advanced 2023Effective Detox Testing - React Advanced 2023
Effective Detox Testing - React Advanced 2023
 
Designing Effective Tests with React Testing Library - React Summit 2023
Designing Effective Tests with React Testing Library - React Summit 2023Designing Effective Tests with React Testing Library - React Summit 2023
Designing Effective Tests with React Testing Library - React Summit 2023
 
Testing React Native Apps - Chain React 2023
Testing React Native Apps - Chain React 2023Testing React Native Apps - Chain React 2023
Testing React Native Apps - Chain React 2023
 
Designing Effective Tests with React Testing Library - React Day Berlin 2022
Designing Effective Tests with React Testing Library - React Day Berlin 2022Designing Effective Tests with React Testing Library - React Day Berlin 2022
Designing Effective Tests with React Testing Library - React Day Berlin 2022
 
Building for Mobile and Web with Expo - React Day Berlin 2022
Building for Mobile and Web with Expo - React Day Berlin 2022Building for Mobile and Web with Expo - React Day Berlin 2022
Building for Mobile and Web with Expo - React Day Berlin 2022
 
Intro to React Native Testing Library
Intro to React Native Testing LibraryIntro to React Native Testing Library
Intro to React Native Testing Library
 
Building for Mobile and Web with Expo - React Advanced London 2022
Building for Mobile and Web with Expo - React Advanced London 2022Building for Mobile and Web with Expo - React Advanced London 2022
Building for Mobile and Web with Expo - React Advanced London 2022
 
Getting Better All the Time: How to Escape Bad Code
Getting Better All the Time: How to Escape Bad CodeGetting Better All the Time: How to Escape Bad Code
Getting Better All the Time: How to Escape Bad Code
 
Sustainable Learning - ReactATL Jan 2022
Sustainable Learning - ReactATL Jan 2022Sustainable Learning - ReactATL Jan 2022
Sustainable Learning - ReactATL Jan 2022
 
Building an App for Mobile and Web with Expo
Building an App for Mobile and Web with ExpoBuilding an App for Mobile and Web with Expo
Building an App for Mobile and Web with Expo
 
Practical Accessibility (A11y)
Practical Accessibility (A11y)Practical Accessibility (A11y)
Practical Accessibility (A11y)
 
Old Solutions to New Testing Problems
Old Solutions to New Testing ProblemsOld Solutions to New Testing Problems
Old Solutions to New Testing Problems
 
Test-Driven Development in Vue with Cypress
Test-Driven Development in Vue with CypressTest-Driven Development in Vue with Cypress
Test-Driven Development in Vue with Cypress
 
Test-Driven Development in React with Cypress
Test-Driven Development in React with CypressTest-Driven Development in React with Cypress
Test-Driven Development in React with Cypress
 
Newbie's Guide to Contributing to Babel
Newbie's Guide to Contributing to BabelNewbie's Guide to Contributing to Babel
Newbie's Guide to Contributing to Babel
 
Outside-in Testing in Vue with Cypress
Outside-in Testing in Vue with CypressOutside-in Testing in Vue with Cypress
Outside-in Testing in Vue with Cypress
 

Recently uploaded

一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
dakas1
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
Preparing Non - Technical Founders for Engaging a Tech Agency
Preparing Non - Technical Founders for Engaging  a  Tech AgencyPreparing Non - Technical Founders for Engaging  a  Tech Agency
Preparing Non - Technical Founders for Engaging a Tech Agency
ISH Technologies
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
mz5nrf0n
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
Bert Jan Schrijver
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
ToXSL Technologies
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
XfilesPro
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
gapen1
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
Alberto Brandolini
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
TaghreedAltamimi
 
What next after learning python programming basics
What next after learning python programming basicsWhat next after learning python programming basics
What next after learning python programming basics
Rakesh Kumar R
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
Project Management: The Role of Project Dashboards.pdf
Project Management: The Role of Project Dashboards.pdfProject Management: The Role of Project Dashboards.pdf
Project Management: The Role of Project Dashboards.pdf
Karya Keeper
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
Patrick Weigel
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
ShulagnaSarkar2
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
fiscal year variant fiscal year variant.
fiscal year variant fiscal year variant.fiscal year variant fiscal year variant.
fiscal year variant fiscal year variant.
AnkitaPandya11
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 

Recently uploaded (20)

一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
Preparing Non - Technical Founders for Engaging a Tech Agency
Preparing Non - Technical Founders for Engaging  a  Tech AgencyPreparing Non - Technical Founders for Engaging  a  Tech Agency
Preparing Non - Technical Founders for Engaging a Tech Agency
 
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
在线购买加拿大英属哥伦比亚大学毕业证本科学位证书原版一模一样
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
 
What next after learning python programming basics
What next after learning python programming basicsWhat next after learning python programming basics
What next after learning python programming basics
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
Project Management: The Role of Project Dashboards.pdf
Project Management: The Role of Project Dashboards.pdfProject Management: The Role of Project Dashboards.pdf
Project Management: The Role of Project Dashboards.pdf
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
fiscal year variant fiscal year variant.
fiscal year variant fiscal year variant.fiscal year variant fiscal year variant.
fiscal year variant fiscal year variant.
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 

User-Modifiable Software: Smalltalk and HyperCard

  • 1. Josh Justice | LIVE 2021 | Oct 19 User-Modifiable Software Smalltalk and HyperCard
  • 2. User-Modifiable Software: Software that the user can inspect and modify in the same environment they run it in.
  • 3. Josh Justice Web Platform Lead Big Nerd Ranch
  • 4. Smalltalk Researching Smalltalk to learn about the foundations of dynamically-typed object-oriented programming languages
  • 5. 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
  • 7. 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
  • 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?
  • 11. 1. Think outside the box. Smalltalk and HyperCard took significantly different approaches to creating user-modifiable platforms.
  • 12. •Starts with Code •No Barriers •Written In Itself Smalltalk •Starts with UI •Explicit User Levels •Written in Pascal HyperCard
  • 13. 1. Think outside the box. There are many ways a user-modifiable system can work.
  • 14. 2. Focus on a vision. These systems were driven by simple visions, not detailed up-front designs.
  • 17. Bill Atkinson, "The Legacy of HyperCard" “The cleanest, simplest set of tools that would empower a lot of different things.”
  • 18. The set of tools: •Graphics •Text •Buttons
  • 19. 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.”
  • 20. 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.”
  • 21. 2. Focus on a vision. Following a simple vision can yield better results than following a detailed plan.
  • 22. 3. Eat your own 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
  • 25. 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.”
  • 26. 3. Eat your own dogfood. Make your system practically useful for you.
  • 27. 4. Open-source it. One reason 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. One way to ensure user-modifiable software stays available to users is to open-source it.
  • 31. 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.
  • 32. 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…”
  • 33. 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.”
  • 34. A contradiction: 1. “Smalltalk and/or HyperCard are important,” and 2. “The only thing that matters is research.”
  • 35. 5. Put it out into the world. One way to increase your system’s impact is getting your system into consumers’ or businesses’ hands.
  • 36. 6. Get it in the box.
  • 37. 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.”
  • 38. What is the box today?
  • 39. What is available on every computing device without requiring any action, purchase, or download?
  • 40.
  • 41. 6. Get it in the box. Find ways to make the system immediately available to users.
  • 42. 7. Appreciate spin-offs. Some of the biggest impacts these systems had are the other systems they inspired.
  • 43. HyperCard as a Successor to Smalltalk
  • 44. 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.”
  • 45. The Web as a Successor to HyperCard
  • 46.
  • 47. 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.”
  • 49.
  • 50. 7. Appreciate spin-offs. The biggest impact your system has may be inspiring another system.
  • 51. 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.
  • 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

  1. 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.
  2. This seemed familiar. Reminded me of a system I had used as a kid…
  3. Now I had a pattern: user-modifiable systems. That I wanted to investigate
  4. Patterns in what happened with Smalltalk and HyperCard that I think we can apply to future systems
  5. So, they have significant differences Your system may be different again Don't be constrained by what's come before
  6. 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.
  7. In other words, commitment to the vision, not to an implementation.
  8. There's a reason many of Smalltalk's greatest innovations were in software development tooling.
  9. The Help Stack required more features to work, and those features in turn needed to be documented in the Help stack as well.
  10. 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.
  11. User-modifiable systems are not generally seen as big money-makers.
  12. Referring to founding ParcPlace Systems The goal was to learn. The means to that end was commercial release
  13. 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.
  14. 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.
  15. Here's what I mean
  16. Let me say it another way
  17. Not quite the same in terms of discoverability. Don’t overlook the web when it comes to accessibility to users.
  18. Check out that humility: this person who did something different did it better
  19. Two early web browsers Viola, the creator says he copied the UI from HyperCard Mosaic acknowledged the influence of HyperCard
  20. But some projects are taking this farther
  21. 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
  22. 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.
  23. If we apply these things to our user-modifiable systems, they will likely have a bigger impact.
  24. If we apply these things to our user-modifiable systems, they will likely have a bigger impact.