Upgrade to Pro — share decks privately, control downloads, hide ads and more …

A Small Smalltalk Talk [RUG::B edition]

A Small Smalltalk Talk [RUG::B edition]

Denis Defreyne

July 02, 2015
Tweet

More Decks by Denis Defreyne

Other Decks in Technology

Transcript

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

    View Slide

  2. Bad news:
    Smalltalk is dead.
    SMALLTALK

    View Slide

  3. Three reasons to
    look into SMALLTALK

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  7. HERITAGE

    View Slide

  8. is like Ruby
    SMALLTALK RUBY

    View Slide

  9. is like Ruby
    RUBY SMALLTALK

    View Slide

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

    View Slide

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

    View Slide

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

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

    View Slide

  13. research_paper.respond_to?(:complete?)
    research_paper.send(:add_random_paragraph)

    researchPaper respondsTo: #isComplete.
    researchPaper perform: #addRandomParagraph.
    SMALLTALK
    RUBY

    View Slide

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

    View Slide

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

    View Slide

  16. people.select { |person| person.adult? }
    people.select(&:adult?)

    people select: [ :person | person isAdult ].
    people select: #isAdult.
    RUBY
    SMALLTALK

    View Slide

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

    View Slide

  18. is a cleaner
    SMALLTALK RUBY

    View Slide

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

    poke := [ :person | person poke ].
    people do: poke.
    RUBY
    SMALLTALK

    View Slide

  20. if students.empty?
    cancel_class
    end

    students isEmpty ifTrue:
    [self cancelClass].
    RUBY
    SMALLTALK

    View Slide

  21. as inspiration
    SMALLTALK

    View Slide

  22. WEIRDNESS

    View Slide

  23. (at all)
    is not like
    SMALLTALK RUBY

    View Slide

  24. Ruby
    RUBY

    View Slide

  25. gem
    RUBY

    View Slide

  26. Smalltalk
    SMALLTALK

    View Slide

  27. Smalltalk
    SMALLTALK

    View Slide

  28. Smalltalk
    SMALLTALK
    =

    View Slide

  29. Smalltalk
    SMALLTALK
    – your application
    =

    View Slide

  30. Smalltalk
    SMALLTALK
    – your application
    – standard library
    =

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  34. Smalltalk
    SMALLTALK
    Pharo.image

    View Slide

  35. Smalltalk
    SMALLTALK
    Pharo.image
    FRESH

    View Slide

  36. Smalltalk
    SMALLTALK
    COPY
    Pharo.image
    FRESH

    View Slide

  37. DEMO

    View Slide

  38. EXPLORATION

    View Slide

  39. DEMO

    View Slide

  40. View Slide

  41. ✓ Heritage

    View Slide

  42. ✓ Heritage
    ✓ Weirdness

    View Slide

  43. ✓ Heritage
    ✓ Weirdness
    ✓ Exploration

    View Slide

  44. Why is wh dead?
    SMALLTALK

    View Slide

  45. View Slide

  46. 1. The Smalltalk environment is isolated.

    View Slide

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

    View Slide

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

    View Slide

  49. Q & A

    View Slide

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

    View Slide

  51. View Slide