A Small Smalltalk Talk [RUG::B edition]

A Small Smalltalk Talk [RUG::B edition]

Be732ee41fd3038aa98a0a7e7b7be081?s=128

Denis Defreyne

July 02, 2015
Tweet

Transcript

  1. A Small talk SMALLTALK Denis Defreyne / @ddfreyne / denis@stoneship.org

  2. Bad news: Smalltalk is dead. SMALLTALK

  3. Three reasons to look into SMALLTALK

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

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

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

    SMALLTALK
  7. HERITAGE

  8. is like Ruby SMALLTALK RUBY

  9. is like Ruby RUBY SMALLTALK

  10. Smalltalk ’s model of object orientation is identical to ’s

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

  12. person = Person.new person.first_name = 'Denis' 
 person := Person

    new. person firstName: 'Denis'. SMALLTALK RUBY
  13. research_paper.respond_to?(:complete?) research_paper.send(:add_random_paragraph) 
 researchPaper respondsTo: #isComplete. researchPaper perform: #addRandomParagraph. SMALLTALK

    RUBY
  14. people.each { |person| self.send_spam_to(person) } people do: [ :person |

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

    self sendSpamTo: person ]. people do: [ :each | self sendSpamTo: each ]. RUBY SMALLTALK
  16. people.select { |person| person.adult? } people.select(&:adult?) 
 people select: [

    :person | person isAdult ]. people select: #isAdult. RUBY SMALLTALK
  17. people select: #isAdult. people detect: #isAdult. people reject: #isAdult. people

    collect: #firstName. people inject: 0 into: [ :memo :each | memo + each age ] SMALLTALK
  18. is a cleaner SMALLTALK RUBY

  19. poke = lambda { |person| person.poke } people.each(&poke) 
 poke

    := [ :person | person poke ]. people do: poke. RUBY SMALLTALK
  20. if students.empty? cancel_class end 
 students isEmpty ifTrue: [self cancelClass].

    RUBY SMALLTALK
  21. as inspiration SMALLTALK

  22. WEIRDNESS

  23. (at all) is not like SMALLTALK RUBY

  24. Ruby RUBY

  25. gem RUBY

  26. Smalltalk SMALLTALK

  27. Smalltalk SMALLTALK

  28. Smalltalk SMALLTALK =

  29. Smalltalk SMALLTALK – your application =

  30. Smalltalk SMALLTALK – your application – standard library =

  31. Smalltalk SMALLTALK – your application – standard library – other

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

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

    libraries – compiler – IDE =
  34. Smalltalk SMALLTALK Pharo.image

  35. Smalltalk SMALLTALK Pharo.image FRESH

  36. Smalltalk SMALLTALK COPY Pharo.image FRESH

  37. DEMO

  38. EXPLORATION

  39. DEMO

  40. None
  41. ✓ Heritage

  42. ✓ Heritage ✓ Weirdness

  43. ✓ Heritage ✓ Weirdness ✓ Exploration

  44. Why is wh dead? SMALLTALK

  45. None
  46. 1. The Smalltalk environment is isolated.

  47. 1. The Smalltalk environment is 2. The Smalltalk community suffers

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

    from 3. Smalltalk isn’t revolutionary anymore.
  49. Q & A

  50. @ddfreyne denis@stoneship.org Denis Defreyne Former Smalltalk developer DENIS DEFREYNE

  51. None