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

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 & CultureAngel 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 IntegrationJay 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 SydneyMartin Charlier
 
World in Transformation
World in TransformationWorld in Transformation
World in TransformationCisco 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 & InnovationFing
 
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 QueenslandIDX Initiative
 
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 MLPeter Wang
 
Disruption is Change is Future
Disruption is Change is FutureDisruption is Change is Future
Disruption is Change is FutureAnatole Tresch
 
Effective Management of Docker Containers
Effective Management of Docker ContainersEffective Management of Docker Containers
Effective Management of Docker ContainersJason 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) presentationsUX Alive Conference
 
How the Cloud Fixes Bimodal IT
How the Cloud Fixes Bimodal ITHow the Cloud Fixes Bimodal IT
How the Cloud Fixes Bimodal ITJason 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 SummitNetHopeOrg
 

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
 
Perspectives on Open
Perspectives on OpenPerspectives on Open
Perspectives on OpenTim 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 DayChristian 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 Workspaceibdrii
 
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.0New 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'14Erica 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 importantTristan 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 importantTristan Nitot
 
Rapid Product Design in the Wild
Rapid Product Design in the WildRapid Product Design in the Wild
Rapid Product Design in the WildMichele Ide-Smith
 
Blockchain Experience Design Meetup #1
Blockchain Experience Design Meetup #1Blockchain Experience Design Meetup #1
Blockchain Experience Design Meetup #1Gendry Morales
 
Designing Structure: Interaction Design
Designing Structure: Interaction DesignDesigning Structure: Interaction Design
Designing Structure: Interaction DesignChristina Wodtke
 
Ar design reality2018
Ar design reality2018Ar design reality2018
Ar design reality2018Anselm 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 xAPIGnomeTorranceLearning
 
Dharma Drum Univ Digital Philanthropy
Dharma Drum Univ Digital PhilanthropyDharma Drum Univ Digital Philanthropy
Dharma Drum Univ Digital PhilanthropyJoy Tang
 
Emerging Technologies in Libraries
Emerging Technologies in LibrariesEmerging Technologies in Libraries
Emerging Technologies in LibrariesMichael Sauers
 
Emerging Technologies in Libraries
Emerging Technologies in LibrariesEmerging Technologies in Libraries
Emerging Technologies in LibrariesJennifer 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)
 
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
 
World Wide Web Essay
World Wide Web EssayWorld Wide Web Essay
World Wide Web Essay
 

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 2023Josh 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 2023Josh 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 2023Josh 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 2022Josh 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 2022Josh Justice
 
Intro to React Native Testing Library
Intro to React Native Testing LibraryIntro to React Native Testing Library
Intro to React Native Testing LibraryJosh 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 2022Josh 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 CodeJosh Justice
 
Sustainable Learning - ReactATL Jan 2022
Sustainable Learning - ReactATL Jan 2022Sustainable Learning - ReactATL Jan 2022
Sustainable Learning - ReactATL Jan 2022Josh 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 ExpoJosh 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 ProblemsJosh 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 CypressJosh 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 CypressJosh 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 BabelJosh 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 CypressJosh 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

Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 

Recently uploaded (20)

Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 

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.