Slide 1

Slide 1 text

A Small talk SMALLTALK Denis Defreyne / @ddfreyne / [email protected]

Slide 2

Slide 2 text

Bad news: Smalltalk is dead. SMALLTALK

Slide 3

Slide 3 text

Three reasons to look into SMALLTALK

Slide 4

Slide 4 text

1. Smalltalk is is worth learning because of its heritage. SMALLTALK

Slide 5

Slide 5 text

2. Smalltalk is is worth learning because it is weird. SMALLTALK

Slide 6

Slide 6 text

3. Smalltalk is is worth learning because it encourages exploration. SMALLTALK

Slide 7

Slide 7 text

HERITAGE

Slide 8

Slide 8 text

is like Ruby SMALLTALK RUBY

Slide 9

Slide 9 text

is like Ruby RUBY SMALLTALK

Slide 10

Slide 10 text

Smalltalk ’s model of object orientation is identical to ’s RUBY SMALLTALK

Slide 11

Slide 11 text

'Hello'.upcase 'Hello' asUppercase. RUBY SMALLTALK

Slide 12

Slide 12 text

person = Person.new person.first_name = 'Denis' 
 person := Person new. person firstName: 'Denis'. SMALLTALK RUBY

Slide 13

Slide 13 text

research_paper.respond_to?(:complete?) research_paper.send(:add_random_paragraph) 
 researchPaper respondsTo: #isComplete. researchPaper perform: #addRandomParagraph. SMALLTALK RUBY

Slide 14

Slide 14 text

people.each { |person| self.send_spam_to(person) } people do: [ :person | self sendSpamTo: person ]. people do: [ :each | self sendSpamTo: each ]. RUBY SMALLTALK

Slide 15

Slide 15 text

people.each { |person| self.send_spam_to(person) } people do: [ :person | self sendSpamTo: person ]. people do: [ :each | self sendSpamTo: each ]. RUBY SMALLTALK

Slide 16

Slide 16 text

people.select { |person| person.adult? } people.select(&:adult?) 
 people select: [ :person | person isAdult ]. people select: #isAdult. RUBY SMALLTALK

Slide 17

Slide 17 text

people select: #isAdult. people detect: #isAdult. people reject: #isAdult. people collect: #firstName. people inject: 0 into: [ :memo :each | memo + each age ] SMALLTALK

Slide 18

Slide 18 text

is a cleaner SMALLTALK RUBY

Slide 19

Slide 19 text

poke = lambda { |person| person.poke } people.each(&poke) 
 poke := [ :person | person poke ]. people do: poke. RUBY SMALLTALK

Slide 20

Slide 20 text

if students.empty? cancel_class end 
 students isEmpty ifTrue: [self cancelClass]. RUBY SMALLTALK

Slide 21

Slide 21 text

as inspiration SMALLTALK

Slide 22

Slide 22 text

WEIRDNESS

Slide 23

Slide 23 text

(at all) is not like SMALLTALK RUBY

Slide 24

Slide 24 text

Ruby RUBY

Slide 25

Slide 25 text

gem RUBY

Slide 26

Slide 26 text

Smalltalk SMALLTALK

Slide 27

Slide 27 text

Smalltalk SMALLTALK

Slide 28

Slide 28 text

Smalltalk SMALLTALK =

Slide 29

Slide 29 text

Smalltalk SMALLTALK – your application =

Slide 30

Slide 30 text

Smalltalk SMALLTALK – your application – standard library =

Slide 31

Slide 31 text

Smalltalk SMALLTALK – your application – standard library – other libraries =

Slide 32

Slide 32 text

Smalltalk SMALLTALK – your application – standard library – other libraries – compiler =

Slide 33

Slide 33 text

Smalltalk SMALLTALK – your application – standard library – other libraries – compiler – IDE =

Slide 34

Slide 34 text

Smalltalk SMALLTALK Pharo.image

Slide 35

Slide 35 text

Smalltalk SMALLTALK Pharo.image FRESH

Slide 36

Slide 36 text

Smalltalk SMALLTALK COPY Pharo.image FRESH

Slide 37

Slide 37 text

DEMO

Slide 38

Slide 38 text

EXPLORATION

Slide 39

Slide 39 text

DEMO

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

✓ Heritage

Slide 42

Slide 42 text

✓ Heritage ✓ Weirdness

Slide 43

Slide 43 text

✓ Heritage ✓ Weirdness ✓ Exploration

Slide 44

Slide 44 text

Why is wh dead? SMALLTALK

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

1. The Smalltalk environment is isolated.

Slide 47

Slide 47 text

1. The Smalltalk environment is 2. The Smalltalk community suffers from NIH.

Slide 48

Slide 48 text

1. The Smalltalk environment is 2. The Smalltalk community suffers from 3. Smalltalk isn’t revolutionary anymore.

Slide 49

Slide 49 text

Q & A

Slide 50

Slide 50 text

@ddfreyne [email protected] Denis Defreyne Former Smalltalk developer DENIS DEFREYNE

Slide 51

Slide 51 text

No content