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
160
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
73
An introduction to fibers
ddfreyne
0
180
Code as data (RubyConfBY 2019 edition)
ddfreyne
0
120
Code as data
ddfreyne
0
170
How to memoize
ddfreyne
0
180
Clean & fast code with enumerators
ddfreyne
0
130
Fibers
ddfreyne
0
460
Let’s create a programming language! [SoundCloud HQ edition]
ddfreyne
0
210
Let’s create a programming language! [RUG::B edition]
ddfreyne
1
220
Other Decks in Technology
See All in Technology
分解して理解する Aspire
nenonaninu
1
180
Tech Blogを書きやすい環境づくり
lycorptech_jp
PRO
1
240
データの品質が低いと何が困るのか
kzykmyzw
6
1.1k
プロダクトエンジニア構想を立ち上げ、プロダクト志向な組織への成長を続けている話 / grow into a product-oriented organization
hiro_torii
1
210
Goで作って学ぶWebSocket
ryuichi1208
1
1.1k
一度 Expo の採用を断念したけど、 再度 Expo の導入を検討している話
ichiki1023
1
170
関東Kaggler会LT: 人狼コンペとLLM量子化について
nejumi
3
590
ハッキングの世界に迫る~攻撃者の思考で考えるセキュリティ~
nomizone
13
5.2k
エンジニアの育成を支える爆速フィードバック文化
sansantech
PRO
3
1.1k
Data-centric AI入門第6章:Data-centric AIの実践例
x_ttyszk
1
410
TAMとre:Capセキュリティ編 〜拡張脅威検出デモを添えて〜
fujiihda
2
250
バックエンドエンジニアのためのフロントエンド入門 #devsumiC
panda_program
18
7.5k
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
511
110k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
GraphQLの誤解/rethinking-graphql
sonatard
68
10k
Testing 201, or: Great Expectations
jmmastey
42
7.2k
A Tale of Four Properties
chriscoyier
158
23k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.6k
Raft: Consensus for Rubyists
vanstee
137
6.8k
It's Worth the Effort
3n
184
28k
4 Signs Your Business is Dying
shpigford
182
22k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Producing Creativity
orderedlist
PRO
344
39k
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