Your SlideShare is downloading. ×
Smalltalk
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Smalltalk

1,436
views

Published on

Presents Smalltalk and try to convince people that it's not dead

Presents Smalltalk and try to convince people that it's not dead

Published in: Technology

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,436
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
33
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Smalltalk Damien Cassou
  • 2. ☠ ?
  • 3. New tools
  • 4. New books
  • 5. New interests
  • 6. Used?
  • 7. 20%
  • 8. 1,600 simultaneous users
  • 9. 5,000 bookings/day
  • 10. 10,000 updates/day
  • 11. 1.9 billion objects
  • 12. guess what?
  • 13. everything in Smalltalk
  • 14. Portable?
  • 15. SqueakNOS
  • 16. 2147483647 + 1 = -2147483648
  • 17. 2147483647 + 1 = -2147483648 Java
  • 18. 2147483647 + 1 = 2147483648 Smalltalk
  • 19. 100 factorial =
  • 20. 100 factorial = 9332621544394415268169923885626670 0490715968264381621468592963895217 5999932299156089414639761565182862 5369792082722375825118521091686400 0000000000000000000000
  • 21. Concepts
  • 22. Object oriented
  • 23. Everything is an object
  • 24. methods numbers Everything is classes an object tools method calls call stack
  • 25. Method calls
  • 26. postman.send(mail,recipient);
  • 27. postman.send(mail,recipient);
  • 28. postman.send(mail,recipient;
  • 29. postman.send(mail to,recipient.
  • 30. postman.send(mail,recipient); postman send: mail to: recipient.
  • 31. Unary methods
  • 32. 'Smalltalk' size String size
  • 33. Binary methods
  • 34. 1+2 Number + aNumber
  • 35. Dynamically typed
  • 36. ArrayList<String> strings = new ArrayList<String>(); strings := ArrayList new.
  • 37. Closures
  • 38. ArrayList<String> strings = new ArrayList<String>(); for(Person person: persons) strings.add(person.name()); strings := persons collect: [:person | person name]. Collection collect: aBlock
  • 39. Thread regThread = new Thread( new Runnable() { public void run() { this.doSomething(); } }); regThread.start(); Block [self doSomething] fork. fork
  • 40. Garbage collector
  • 41. <= aPoint ^ x <= (aPoint x) and: [y <= (aPoint y)] Point x y (2@3) <= (5@6) <= aPoint Number @ aNumber
  • 42. Constructors
  • 43. Control structures
  • 44. max: aNumber (self < aNumber) ifTrue: [^ aNumber] ifFalse: [^ self] Number max: aNumber ifTrue: t ifFalse: f ^ t value ifTrue: t ifFalse: f ^ f value
  • 45. pharo-project.org