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
270
Code as data (RubyConfBY 2019 edition)
denisdefreyne
0
150
Code as data
denisdefreyne
0
240
How to memoize
denisdefreyne
0
240
Clean & fast code with enumerators
denisdefreyne
0
180
Fibers
denisdefreyne
0
540
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
LLMに何を任せ、何を任せないか
cap120
11
6.9k
トイルを超えたCREは何屋になるのか
bengo4com
0
120
TUNA Camp 2026 京都Stage ヒューリスティックアルゴリズム入門
terryu16
0
670
脳が溶けた話 / Melted Brain
keisuke69
1
1.2k
来期の評価で変えようと思っていること 〜AI時代に変わること・変わらないこと〜
estie
0
130
MIX AUDIO EN BROADCAST
ralpherick
0
140
制約を設計する - 非決定性との境界線 / Designing constraints
soudai
PRO
4
940
OCI技術資料 : ロード・バランサ 概要 - FLB・NLB共通
ocise
4
27k
【AWS】CloudTrail LakeとCloudWatch Logs Insightsの使い分け方針
tsurunosd
0
130
QA組織のAI戦略とAIテスト設計システムAITASの実践
sansantech
PRO
1
320
Babylon.js を使って試した色々な内容 / Various things I tried using Babylon.js / Babylon.js 勉強会 vol.5
you
PRO
0
210
Podcast配信で広がったアウトプットの輪~70人と音声発信してきた7年間~/outputconf_01
fortegp05
0
200
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.7k
Building an army of robots
kneath
306
46k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
1.9k
Scaling GitHub
holman
464
140k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
140
Docker and Python
trallard
47
3.8k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
260
The Mindset for Success: Future Career Progression
greggifford
PRO
0
290
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.6k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
170
Chasing Engaging Ingredients in Design
codingconduct
0
160
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.4k
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