Talk: Pharo at JM2L 2009
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Talk: Pharo at JM2L 2009

  • 1,939 views
Uploaded on

A presentation of Pharo at J2ML 2009 in Sophia Antipolis, France.

A presentation of Pharo at J2ML 2009 in Sophia Antipolis, France.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,939
On Slideshare
1,936
From Embeds
3
Number of Embeds
1

Actions

Shares
Downloads
11
Comments
0
Likes
1

Embeds 3

http://www.slideshare.net 3

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. A clean, innovative, open-source Smalltalk http://www.pharo-project.org
  • 2. Roadmap Short intro User community Look at syntax and runtime Coding Session Future
  • 3. In a nutshell Pharo = language + IDE + update mechanism Pure object-oriented programming language Dynamically typed and trait-based Open and flexible environment Platform for Seaside and Aida/Web web frameworks
  • 4. Pharo? A progressive, open-source Smalltalk platform for professional use. Stable Bugs fixed fast But innovative
  • 5. Pier
  • 6. Pier
  • 7. iPhone
  • 8. Smalltalk with OO-Database Pharo is the IDE
  • 9. Companies netstyle.ch GemStone cmsbox.com SW GmbH Pinesoft 2Denker Smallworks ... Agilitic.be Inceptive.be
  • 10. Universities Annecy Bruxelles Lugano ... Bern Douai Lille Santiago
  • 11. Getting started Model Tools Syntax
  • 12. A Simple and Pure Model Everything is an object (instance of a class) Public methods Protected attributes Single inheritance
  • 13. Everything happens by sending messages to objects 1000 factorial / 999 factorial (Smalltalk isCool) ifTrue: [‘Yeahh’] #(1 -2 3) collect: [ :each | each abs ]
  • 14. Running Pharo
  • 15. Do it, print it You can evaluate any expression anywhere in Pharo
  • 16. Standard development tools
  • 17. Standard development tools
  • 18. Debugger, explorer, inspector
  • 19. Syntax in a nutshell
  • 20. 3 kinds of messages Unary messages 5 factorial Transcript cr Binary messages 3 + 4 Keywords messages 3 raisedTo: 10 modulo: 5 Transcript show: 'hello world'
  • 21. From Java to Smalltalk postman.send(mail,recipient);
  • 22. Removing postman.send(mail,recipient);
  • 23. Removing unnecessary postman send mail recipient
  • 24. But without losing information postman send mail to recipient
  • 25. postman send: mail to: recipient postman.send(mail,recipient);
  • 26. Precedence (Msg) > Unary > Binary > Keywords from left to right No mathematical precedence
  • 27. 2 + 3 squared 28
  • 28. 2 + 3 squared >2+9 29
  • 29. 2 + 3 squared >2+9 > 11 30
  • 30. Color gray - Color white = Color black 31
  • 31. Color gray - Color white = Color black 32
  • 32. Color gray - Color white = Color black > aColor = Color black 33
  • 33. Color gray - Color white = Color black > aColor = Color black > true 34
  • 34. Statement and cascades Temporary variables Statement | p pen | p := 100@100. pen := Pen new. pen up. pen goto: p; down; goto: p+p Cascade
  • 35. Block Closures: aka Function fct(x) = x * x + x |fct| fct:= [:x | x * x + x]. 36
  • 36. Function Application fct (2) = 6 fct (20) = 420 fct value: 2 >6 fct value: 20 > 420 [:x | x * x + x] value: 2 >6 [:x | x * x + x] value: 20 >420 37
  • 37. #(15 10 19 68) do: [:i | Transcript show: i ; cr ] 38
  • 38. #(15 10 19 68) do: [ :i | Transcript show: i ; cr ] 39
  • 39. 1 to: 100 do: [ :i | Transcript show: i ; space] 40
  • 40. 1 to: 100 do: [ :i | Transcript show: i ; space] 41
  • 41. 1 to: 100 by: 3 do: [ :i | Transcript show: i ; space] 42
  • 42. 1 to: 100 by: 3 do: [ :i | Transcript show: i ; space] 43
  • 43. A typical method in Point Method name Argument Comment <= aPoint ! "Answer whether the receiver is neither ! below nor to the right of aPoint." ! ^ x <= aPoint x and: [y <= aPoint y] Return Binary message Block Instance variable Keyword message (2@3) <= (5@6) true
  • 44. Creating classes Send a message to a class (!) Number subclass: #Complex ! instanceVariableNames: 'real imaginary' ! ... ! category: 'ComplexNumbers'
  • 45. Past.... Started with Squeak Smallltalk + Major Cleanups (MVC, eToys) + New UI Look / TrueType + Tools + Block Closures + Lots of bugfixes and small improvements + Preferences clean up + MIT license clean
  • 46. Update ~1200 Bug-reports closed 496 Updates (1.0) 61 (1.1 unstable) Release Candidate: October 2009 ;)
  • 47. Future
  • 48. ...cleaner started to run SmallLint... and fix
  • 49. ...smaller deployment image is 7 MB
  • 50. ...faster
  • 51. What we dream about A flexible infrastructure to be able to reinvent itself Integration Server.... Better tools next generation refactoring So that people can Better infrastructure invent their future New compilers First class packages Minimal core
  • 52. Everybody can help Reporting bugs Confirming bugs Writing tests Writing examples Writing comments Simple contributing fixes Deep discussion...
  • 53. Process FIX/ ENHANCEMENT Discussed on In PharoInbox or Discussed Changesets on Mailing- BUG list Described Described BUG Tracker Discussed on Other version Integrated Rejected
  • 54. Pharo Sprints May 2008 Bern July 2009 Bern October 2009 Lille November 2009 Buenos Aires more in the future...
  • 55. Books by example Pharo is a modern open-source development environment for the 2nd Volume classic Smalltalk-80 programming language. Despite being the first purely object-oriented language and environment, Smalltalk is in many ways still far ahead of its successors in promoting a vision of an environment where everything is an object, and anything can change by example at run-time. Pharo by Example, intended for both students and developers, will in preparation guide you gently through the Pharo language and environment by means of a series of examples and exercises. This book is made available under the Creative Commons Attribution- ShareAlike 3.0 license. You can either download the PDF for free, or you can buy a softcover copy from lulu.com. Additional material is available from Pharo web site at www.pharo-project.org. Square Bracket Associates Andrew P. Black, Stéphane Ducasse, Oscar Nierstrasz, Damien Pollet with Damien Cassou and Marcus Denker +,-.*(&'/!/()%!!"#/$/% * ( &'!()% !!"#$%
  • 56. Thanks Hans Beck Matthew Fulmer Hilaire Fernandes Julian Fitzell David J Pennell Alexandre Bergel Tudor Girba Joseph Pelrine Cedric Beler Sean Glazier Alain Plantec Torsten Bergmann Norbert Hartl Damien Pollet Matthias Berth Dale Henrichs Lukas Renggli Ralph Boland Reinout Heeck Jorge Ressia Noury Bouraqadi Eric Hochmeister Mike Roberts Brian Brown Keith Hodges Robert Rothwell Gwenael Casaccio Henrik Sperre Johansen David Rotlisberger Damien Cassou Pavel Krivanek Michael Rueger Nicolas Cellier Adrian Kuhn Bill Schwab Gary Chambers Adrian Lienhard Niko Schwarz Miguel Coba Andreas Leidig Igor Stasenko Gabriel Cotelli Mariano Martinez Peck Francois Stephany Carlos Crosetti Dave Mason Serge Stinckwich Cyrille Delaunay John McIntosh Mathieu Suen Simon Denier Johnaton Meichtry Lawrence Trutter Marcus Denker Eliot Miranda Andrew Tween Ramiro Diaz Trepat Hernan Morales Durand martin von loewis Stephane Ducasse Philipp Marshall Juan Vuletich Morales Durand Hernan Jannick Menanteau Steven Wirts Stephan Eggermont Yann Monclair Hernan Wilkinson Luc Fabresse Oscar Nierstrasz
  • 57. Join Us! Creating good energy, software quality, learning and having fun http://pharo-project.org