SlideShare a Scribd company logo
Erik Stel (aka ErikOnBike) - ESUG 2024 - July 10th 2024
CodeParadise
Running Smalltalk apps in a JavaScript environment
Topics
And some demos
• How it started
• Ease of development
• Implementation
• From WebApps to ServerApps
• Status
How it started
Creating WebApps with Smalltalk only
• Live programming experience in the browser
• Approach based on tiny Smalltalk image in the browser
• Most important part: DOM manipulation
• DOM elements, WebComponents and Events
• Fine grained control and performance
Ease of development
The MVP pattern
• Personal preference: thin UI/glass layer
• MVP with a Passive View
• Views are WebComponents
• Server side state
• No ‘sealing’ possible
P
M V
knows knows
Implementation
Let’s keep it tiny
• Tiny (218kb) Smalltalk image in the browser
Client Environment
• Regular Smalltalk image on the ‘server’
Server Environment
• SqueakJS VM
• Class de
fi
nitions and CompiledCode (no compiler)
• WebSockets
Architecture
Server
ServerEnvironment
ServerCommunicator
ZincWebSocketChannel
MvpWebApplication
Presenter Presenter
Client
/
Web
Browser
ClientEnvironment (singleton)
ClientCommunicator
JavascriptWebSocketChannel
MvpWebClientBehavior
(singleton)
View
View
Server sends Messages and CompiledMethods (bytecode) to execute
Client sends Announcements
Demo
Talk is cheap
From WebApps to ServerApps
Or CLI tools
• Generic proxy mechanism
• Smalltalk Block interchangeable with JavaScript function
• Promises
• Node.js (built-in and external) modules
• Also ‘sealable’
Demo
REST assured
Status
200 / OK
• In use at
- ‘residential biologist’
- one Cycling Without Age ‘chapter’
• Room to evolve
- Documentation/examples/tests
- UI builder
- Node.js debugger
- Morph changed object (instances)
- …many more…
Questions!
Remarks?
• You can
fi
nd CodeParadise at
github.com/ErikOnBike/CodeParadise
• You can
fi
nd me on Discord/Slack as
ErikOnBike

More Related Content

PDF
Smalltalk for the Web & Beyond (ESUG 2025)
PDF
Canyon: Creating mobile apps using CodeParadise
PDF
PharoJS for Real World Applications
PDF
PharoJS for Real World Applications
PPTX
Isomorphic JavaScript – future of the web
PDF
Better Than X
PDF
Baking a Microservice PI(e)
PPTX
Elixir Phoenix
Smalltalk for the Web & Beyond (ESUG 2025)
Canyon: Creating mobile apps using CodeParadise
PharoJS for Real World Applications
PharoJS for Real World Applications
Isomorphic JavaScript – future of the web
Better Than X
Baking a Microservice PI(e)
Elixir Phoenix

Similar to CodeParadise Running Smalltalk apps in a JavaScript environment (9)

PDF
node.js for front-end developers
PDF
What is node_js
PDF
Web Development with Smalltalk
PPTX
Swagger APIs for Humans and Robots (Gluecon)
PDF
PDF
GTUG JS will save us all
PDF
Smalltalk and MicroISV's
PDF
Smalltalk in the Cloud
PDF
Essential Node.js for Web Developers from Developer Week 2013
node.js for front-end developers
What is node_js
Web Development with Smalltalk
Swagger APIs for Humans and Robots (Gluecon)
GTUG JS will save us all
Smalltalk and MicroISV's
Smalltalk in the Cloud
Essential Node.js for Web Developers from Developer Week 2013
Ad

More from ESUG (20)

PDF
ShowUs: Pharo Stream Deck (ESUG 2025, Gdansk)
PDF
Micromaid: A simple Mermaid-like chart generator for Pharo
PDF
Directing Generative AI for Pharo Documentation
PDF
Even Lighter Than Lightweiht: Augmenting Type Inference with Primitive Heuris...
PDF
Composing and Performing Electronic Music on-the-Fly with Pharo and Coypu
PDF
Gamifying Agent-Based Models in Cormas: Towards the Playable Architecture for...
PDF
Analysing Python Machine Learning Notebooks with Moose
PDF
FASTTypeScript metamodel generation using FAST traits and TreeSitter project
PDF
Migrating Katalon Studio Tests to Playwright with Model Driven Engineering
PDF
Package-Aware Approach for Repository-Level Code Completion in Pharo
PDF
Evaluating Benchmark Quality: a Mutation-Testing- Based Methodology
PDF
An Analysis of Inline Method Refactoring
PDF
Identification of unnecessary object allocations using static escape analysis
PDF
Control flow-sensitive optimizations In the Druid Meta-Compiler
PDF
Clean Blocks (IWST 2025, Gdansk, Poland)
PDF
Encoding for Objects Matters (IWST 2025)
PDF
Challenges of Transpiling Smalltalk to JavaScript
PDF
Immersive experiences: what Pharo users do!
PDF
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
PDF
Cavrois - an Organic Window Management (ESUG 2025)
ShowUs: Pharo Stream Deck (ESUG 2025, Gdansk)
Micromaid: A simple Mermaid-like chart generator for Pharo
Directing Generative AI for Pharo Documentation
Even Lighter Than Lightweiht: Augmenting Type Inference with Primitive Heuris...
Composing and Performing Electronic Music on-the-Fly with Pharo and Coypu
Gamifying Agent-Based Models in Cormas: Towards the Playable Architecture for...
Analysing Python Machine Learning Notebooks with Moose
FASTTypeScript metamodel generation using FAST traits and TreeSitter project
Migrating Katalon Studio Tests to Playwright with Model Driven Engineering
Package-Aware Approach for Repository-Level Code Completion in Pharo
Evaluating Benchmark Quality: a Mutation-Testing- Based Methodology
An Analysis of Inline Method Refactoring
Identification of unnecessary object allocations using static escape analysis
Control flow-sensitive optimizations In the Druid Meta-Compiler
Clean Blocks (IWST 2025, Gdansk, Poland)
Encoding for Objects Matters (IWST 2025)
Challenges of Transpiling Smalltalk to JavaScript
Immersive experiences: what Pharo users do!
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
Cavrois - an Organic Window Management (ESUG 2025)
Ad

Recently uploaded (20)

PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
17 Powerful Integrations Your Next-Gen MLM Software Needs
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
iTop VPN 6.5.0 Crack + License Key 2025 (Premium Version)
PDF
How to Make Money in the Metaverse_ Top Strategies for Beginners.pdf
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
CCleaner Pro 6.38.11537 Crack Final Latest Version 2025
PPTX
Computer Software and OS of computer science of grade 11.pptx
PPTX
Advanced SystemCare Ultimate Crack + Portable (2025)
PDF
Salesforce Agentforce AI Implementation.pdf
PDF
Tally Prime Crack Download New Version 5.1 [2025] (License Key Free
PDF
Digital Systems & Binary Numbers (comprehensive )
PPTX
L1 - Introduction to python Backend.pptx
PPTX
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
PDF
iTop VPN Free 5.6.0.5262 Crack latest version 2025
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
Odoo Companies in India – Driving Business Transformation.pdf
Design an Analysis of Algorithms I-SECS-1021-03
17 Powerful Integrations Your Next-Gen MLM Software Needs
Design an Analysis of Algorithms II-SECS-1021-03
Internet Downloader Manager (IDM) Crack 6.42 Build 41
wealthsignaloriginal-com-DS-text-... (1).pdf
Operating system designcfffgfgggggggvggggggggg
iTop VPN 6.5.0 Crack + License Key 2025 (Premium Version)
How to Make Money in the Metaverse_ Top Strategies for Beginners.pdf
How to Choose the Right IT Partner for Your Business in Malaysia
CCleaner Pro 6.38.11537 Crack Final Latest Version 2025
Computer Software and OS of computer science of grade 11.pptx
Advanced SystemCare Ultimate Crack + Portable (2025)
Salesforce Agentforce AI Implementation.pdf
Tally Prime Crack Download New Version 5.1 [2025] (License Key Free
Digital Systems & Binary Numbers (comprehensive )
L1 - Introduction to python Backend.pptx
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
iTop VPN Free 5.6.0.5262 Crack latest version 2025
Reimagine Home Health with the Power of Agentic AI​
Odoo Companies in India – Driving Business Transformation.pdf

CodeParadise Running Smalltalk apps in a JavaScript environment