Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
A Small Smalltalk Talk [RUG::B edition]
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Denis Defreyne
July 02, 2015
Technology
190
1
Share
A Small Smalltalk Talk [RUG::B edition]
Denis Defreyne
July 02, 2015
More Decks by Denis Defreyne
See All by Denis Defreyne
The importance of naming
denisdefreyne
0
150
An introduction to fibers
denisdefreyne
0
280
Code as data (RubyConfBY 2019 edition)
denisdefreyne
0
160
Code as data
denisdefreyne
0
240
How to memoize
denisdefreyne
0
240
Clean & fast code with enumerators
denisdefreyne
0
190
Fibers
denisdefreyne
0
550
Let’s create a programming language! [SoundCloud HQ edition]
denisdefreyne
0
270
Let’s create a programming language! [RUG::B edition]
denisdefreyne
1
260
Other Decks in Technology
See All in Technology
Shipping AI Agents — Lessons from Production
vvatanabe
0
240
弁護士ドットコム株式会社 エンジニア職向け 会社紹介資料
bengo4com
1
160
Azure Static Web Apps の自動ビルドがタイムアウトしやすくなった状況に対応した件/global-azure2026
thara0402
0
410
AIを共同作業者にして書籍を執筆する方法 / How to Write a Book with AI as a Co-Creator
ama_ch
2
130
Claude Code を安全に使おう勉強会 / Claude Code Security Basics
masahirokawahara
11
33k
最近の技術系の話題で気になったもの色々(IoT系以外も) / IoTLT 花見予定会(たぶんBBQ) @都立潮風公園バーベキュー広場
you
PRO
1
240
実践ハーネスエンジニアリング:TAKTで実現するAIエージェント制御 / Practical Harness Engineering: AI Agent Control Enabled by TAKT
nrslib
11
4.6k
自立を加速させる神器 - EMOasis #11
stanby_inc
0
140
Choose your own adventure in agentic design patterns
glaforge
0
140
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.4k
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
10
78k
ワールドカフェI /チューターを改良する / World Café I and Improving the Tutors
ks91
PRO
0
320
Featured
See All Featured
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
450
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
320
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.1k
Done Done
chrislema
186
16k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
230
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
490
My Coaching Mixtape
mlcsv
0
100
Between Models and Reality
mayunak
3
270
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
510
Producing Creativity
orderedlist
PRO
348
40k
Exploring anti-patterns in Rails
aemeredith
3
320
Transcript
A Small talk SMALLTALK Denis Defreyne / @ddfreyne /
[email protected]
Bad news: Smalltalk is dead. SMALLTALK
Three reasons to look into SMALLTALK
1. Smalltalk is is worth learning because of its heritage.
SMALLTALK
2. Smalltalk is is worth learning because it is weird.
SMALLTALK
3. Smalltalk is is worth learning because it encourages exploration.
SMALLTALK
HERITAGE
is like Ruby SMALLTALK RUBY
is like Ruby RUBY SMALLTALK
Smalltalk ’s model of object orientation is identical to ’s
RUBY SMALLTALK
'Hello'.upcase 'Hello' asUppercase. RUBY SMALLTALK
person = Person.new person.first_name = 'Denis' person := Person
new. person firstName: 'Denis'. SMALLTALK RUBY
research_paper.respond_to?(:complete?) research_paper.send(:add_random_paragraph) researchPaper respondsTo: #isComplete. researchPaper perform: #addRandomParagraph. SMALLTALK
RUBY
people.each { |person| self.send_spam_to(person) } people do: [ :person |
self sendSpamTo: person ]. people do: [ :each | self sendSpamTo: each ]. RUBY SMALLTALK
people.each { |person| self.send_spam_to(person) } people do: [ :person |
self sendSpamTo: person ]. people do: [ :each | self sendSpamTo: each ]. RUBY SMALLTALK
people.select { |person| person.adult? } people.select(&:adult?) people select: [
:person | person isAdult ]. people select: #isAdult. RUBY SMALLTALK
people select: #isAdult. people detect: #isAdult. people reject: #isAdult. people
collect: #firstName. people inject: 0 into: [ :memo :each | memo + each age ] SMALLTALK
is a cleaner SMALLTALK RUBY
poke = lambda { |person| person.poke } people.each(&poke) poke
:= [ :person | person poke ]. people do: poke. RUBY SMALLTALK
if students.empty? cancel_class end students isEmpty ifTrue: [self cancelClass].
RUBY SMALLTALK
as inspiration SMALLTALK
WEIRDNESS
(at all) is not like SMALLTALK RUBY
Ruby RUBY
gem RUBY
Smalltalk SMALLTALK
Smalltalk SMALLTALK
Smalltalk SMALLTALK =
Smalltalk SMALLTALK – your application =
Smalltalk SMALLTALK – your application – standard library =
Smalltalk SMALLTALK – your application – standard library – other
libraries =
Smalltalk SMALLTALK – your application – standard library – other
libraries – compiler =
Smalltalk SMALLTALK – your application – standard library – other
libraries – compiler – IDE =
Smalltalk SMALLTALK Pharo.image
Smalltalk SMALLTALK Pharo.image FRESH
Smalltalk SMALLTALK COPY Pharo.image FRESH
DEMO
EXPLORATION
DEMO
None
✓ Heritage
✓ Heritage ✓ Weirdness
✓ Heritage ✓ Weirdness ✓ Exploration
Why is wh dead? SMALLTALK
None
1. The Smalltalk environment is isolated.
1. The Smalltalk environment is 2. The Smalltalk community suffers
from NIH.
1. The Smalltalk environment is 2. The Smalltalk community suffers
from 3. Smalltalk isn’t revolutionary anymore.
Q & A
@ddfreyne
[email protected]
Denis Defreyne Former Smalltalk developer DENIS DEFREYNE
None