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
140
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
44
An introduction to fibers
ddfreyne
0
150
Code as data (RubyConfBY 2019 edition)
ddfreyne
0
87
Code as data
ddfreyne
0
140
How to memoize
ddfreyne
0
140
Clean & fast code with enumerators
ddfreyne
0
110
Fibers
ddfreyne
0
410
Let’s create a programming language! [SoundCloud HQ edition]
ddfreyne
0
170
Let’s create a programming language! [RUG::B edition]
ddfreyne
1
210
Other Decks in Technology
See All in Technology
簡単に始めるSnowflakeの機械学習
nayuts
1
190
運用改善、不都合な真実 / 20240722-ssmjp-kaizen
opelab
17
8k
エンジニア向け会社紹介資料
caddi_eng
14
220k
エンジニアリングマネージャーはどう学んでいくのか #devsumi / How Do Engineering Managers Continue to Learn and Grow?
expajp
4
1.3k
[NIKKEI Tech Talk] KDDI/KAG Scrum & Community for Engineering Training
curanosuke
2
220
20240724_cm_odyssey_hibiyatech
hiashisan
0
110
フルリモートワークはエンジニアの夢を叶えたか? #cm_odyssey
mamohacy
2
600
JBUG岡山 #6 WordCamp男木島の チームビルディング
takeshifurusato
0
150
Git 研修 Advanced【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
200
スレットハンティングについて知っておきたいこと
hacket
0
130
E2Eテスト自動化プラットフォームにおけるAIの活用
shift_evolve
0
180
データ分析基盤を作ってみよう~設計編~
nrinetcom
PRO
1
110
Featured
See All Featured
What's new in Ruby 2.0
geeforr
338
31k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
17
8.7k
A Tale of Four Properties
chriscoyier
155
22k
Producing Creativity
orderedlist
PRO
340
39k
How GitHub Uses GitHub to Build GitHub
holman
471
290k
Designing for Performance
lara
604
67k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
90
47k
Building a Scalable Design System with Sketch
lauravandoore
458
32k
How to Ace a Technical Interview
jacobian
274
23k
Building Your Own Lightsaber
phodgson
101
5.9k
How to train your dragon (web standard)
notwaldorf
79
5.5k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
224
21k
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