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
130
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
39
An introduction to fibers
ddfreyne
0
120
Code as data (RubyConfBY 2019 edition)
ddfreyne
0
81
Code as data
ddfreyne
0
130
How to memoize
ddfreyne
0
140
Clean & fast code with enumerators
ddfreyne
0
99
Fibers
ddfreyne
0
380
Let’s create a programming language! [SoundCloud HQ edition]
ddfreyne
0
160
Let’s create a programming language! [RUG::B edition]
ddfreyne
1
200
Other Decks in Technology
See All in Technology
On Your Data を超えていく!
hirotomotaguchi
2
690
VS CodeでAWSを操作しよう
smt7174
8
1.7k
エンジニア候補者向け資料2024.04.24.pdf
macloud
0
3.3k
Google Cloud Next '24でブログを10本書いた方法と勉強会を沸かせた方法
yasumuusan
0
300
Postman v10リリース後を振り返る / Looking back at Postman v10 after release
yokawasa
1
160
非同期推論システムによるコスト削減と信頼性向上
koki_nishihara
0
260
ゼロから始めるVue.jsコミュニティ貢献 / first-vuejs-community-contribution-link-and-motivation
lmi
1
130
私が trocco を推す理由
__allllllllez__
1
240
本当のAWS基礎
toru_kubota
0
520
MapLibreとAmazon Location Service
dayjournal
1
160
障害対応をちょっとずつよくしていくための 演習の作りかた
heleeen
0
230
Azure犬駆動開発の記録/GlobalAzureFukuoka2024_20240420
nina01
1
220
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
37
2.5k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
357
22k
What's in a price? How to price your products and services
michaelherold
237
11k
Raft: Consensus for Rubyists
vanstee
132
6.3k
A designer walks into a library…
pauljervisheath
200
23k
StorybookのUI Testing Handbookを読んだ
zakiyama
13
4.6k
GraphQLとの向き合い方2022年版
quramy
32
12k
Large-scale JavaScript Application Architecture
addyosmani
504
110k
Scaling GitHub
holman
457
140k
Optimizing for Happiness
mojombo
370
69k
Atom: Resistance is Futile
akmur
259
25k
Designing on Purpose - Digital PM Summit 2013
jponch
110
6.5k
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