Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
190
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
denisdefreyne
0
130
An introduction to fibers
denisdefreyne
0
240
Code as data (RubyConfBY 2019 edition)
denisdefreyne
0
140
Code as data
denisdefreyne
0
210
How to memoize
denisdefreyne
0
220
Clean & fast code with enumerators
denisdefreyne
0
160
Fibers
denisdefreyne
0
520
Let’s create a programming language! [SoundCloud HQ edition]
denisdefreyne
0
260
Let’s create a programming language! [RUG::B edition]
denisdefreyne
1
240
Other Decks in Technology
See All in Technology
ECMAScript仕様の最新動向: プロセスの変化と仕様のトレンド
uhyo
2
490
私も懇親会は苦手でした ~苦手だからこそ懇親会を楽しむ方法~ / 20251127 Masaki Okuda
shift_evolve
PRO
4
550
pmconf2025 - 他社事例を"自社仕様化"する技術_iRAFT法
daichi_yamashita
0
490
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
0
640
プラットフォームエンジニアリングとは何であり、なぜプラットフォームエンジニアリングなのか
doublemarket
1
550
Claude Code Getting Started Guide(en)
oikon48
0
140
セキュリティAIエージェントの現在と未来 / PSS #2 Takumi Session
flatt_security
3
1.4k
32のキーワードで学ぶ はじめての耐量子暗号(PQC) / Getting Started with Post-Quantum Cryptography in 32 keywords
quiver
0
200
バグハンター視点によるサプライチェーンの脆弱性
scgajge12
2
440
ページの可視領域を算出する方法について整理する
yamatai1212
0
160
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
2.9k
事業部のプロジェクト進行と開発チームの改善の “時間軸" のすり合わせ
konifar
9
2.8k
Featured
See All Featured
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.3k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.8k
A Tale of Four Properties
chriscoyier
162
23k
Practical Orchestrator
shlominoach
190
11k
Agile that works and the tools we love
rasmusluckow
331
21k
Thoughts on Productivity
jonyablonski
73
5k
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.1k
GraphQLとの向き合い方2022年版
quramy
50
14k
Typedesign – Prime Four
hannesfritz
42
2.9k
Building Applications with DynamoDB
mza
96
6.8k
Code Reviewing Like a Champion
maltzj
527
40k
Bash Introduction
62gerente
615
210k
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