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
Denis Defreyne
July 02, 2015
Technology
1
170
A Small Smalltalk Talk [RUG::B edition]
Denis Defreyne
July 02, 2015
Tweet
Share
More Decks by Denis Defreyne
See All by Denis Defreyne
The importance of naming
ddfreyne
0
89
An introduction to fibers
ddfreyne
0
200
Code as data (RubyConfBY 2019 edition)
ddfreyne
0
120
Code as data
ddfreyne
0
180
How to memoize
ddfreyne
0
200
Clean & fast code with enumerators
ddfreyne
0
140
Fibers
ddfreyne
0
480
Let’s create a programming language! [SoundCloud HQ edition]
ddfreyne
0
230
Let’s create a programming language! [RUG::B edition]
ddfreyne
1
230
Other Decks in Technology
See All in Technology
【Λ(らむだ)】最近のアプデ情報 / RPALT20250422
lambda
0
340
AI 코딩 에이전트 더 똑똑하게 쓰기
nacyot
0
460
【Oracle Cloud ウェビナー】ご希望のクラウドでOracle Databaseを実行〜マルチクラウド・ソリューション徹底解説〜
oracle4engineer
PRO
1
140
Асинхронная коммуникация в Go: от понятного к душному. Дима Некрасов, Otello, 2ГИС
lamodatech
0
1.7k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
2
450
LLM アプリケーションのためのクラウドセキュリティ - CSPM の実装ポイント-
osakatechlab
0
160
Azure Maps Visual in PowerBIで分析しよう
nakasho
0
190
クラウド開発環境Cloud Workstationsの紹介
yunosukey
0
220
Pythonデータ分析実践試験 出題傾向や学習のポイントとテクニカルハイライト
terapyon
1
110
DjangoCon Europe 2025 Keynote - Django for Data Science
wsvincent
0
430
クラウドネイティブ環境の脅威モデリング
kyohmizu
1
290
Simplify! 10 ways to reduce complexity in software development
ufried
1
200
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
34
2.2k
Building Adaptive Systems
keathley
41
2.5k
Six Lessons from altMBA
skipperchong
28
3.7k
A better future with KSS
kneath
239
17k
The World Runs on Bad Software
bkeepers
PRO
68
11k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Fontdeck: Realign not Redesign
paulrobertlloyd
84
5.5k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
47
2.7k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
VelocityConf: Rendering Performance Case Studies
addyosmani
329
24k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.4k
For a Future-Friendly Web
brad_frost
177
9.7k
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