I have a dream...S. Ducasse stephane.ducasse@free.fr& STICAmsud ( )
yo tengo un sueño ... :)
S.DucasseLISP ....1996: discover Smalltalk1998: discover Squeak~2000: harvester for 3.xx, 3.6, 3.7, started to cleanSqueak...
I dreamed about ...
A vehicule to reinvent the future
Let’s stop to think that we are thatcool!
Python, Ruby, Groovy, Lua...Erlang...
Let’s stop to live in amuseum!
When do we really build on top of giantshoulders?Thanks Dan and Alan. Now...		I want more!
We should be able to invent ourfuture
Where is Smalltalk innovation?
Smalltalk as the language todefine other languagesAdvanced and stronger MopsWe deserve more than doesNotUnderstand:New ways...
Software EngineeringTests: which ones should I fix first?Continuous test runningSmoother refactorings and code manipulationC...
UIMultitouch supportNew UIWhen will we be able to reinvent UICairo and others?New IDEs
OtherSecurity?Micro modularityAdvanced runtimeScripting syntax!
VM/LanguagesMultiple cores?OpenVMs?New generation JITs?Immutable
They show us the wayObjectPeople (Dave Thomas and others)Resilient (128K) Smalltalk on hdwareS#: Dave Simmons 90ms boot fu...
There is some hope...SeasideReflectivity, NewCompiler,AOSTA?Monticello, O’Meta, PetitParser, Helvetia,Glamour, Mondrian,Tra...
When do we makesure that we couldinvent Smalltalk 3000?first class instance variables, modules?, immutability bits?, visibi...
We need a new state of mind
We are trying...
http://www.pharo-project.orgA clean, innovative, open-source Smalltalk
Pharo?A progressive, open-source Smalltalk platformfor professional use.StableBugs fixed fastBut innovative
Pharo?A flexible environment to support theinnovation in/of Smalltalk.StableBugs fixed fastBut innovative
Pier
Pier
iPhone
Smalltalk with OO-DatabasePharo is the IDE
Companiesnetstyle.chcmsbox.comPinesoftSmallworksAgilitic.beInceptive.be10PinesGemStoneSWEngDenker2Denker...
UniversitiesAnnecyLuganoBernDouaiLilleSantiagoBruxellesLimoge...
A Simple and PureModelEverything is an object instance of a classPublic methodsProtected attributesSingle inheritance
Everything happens by sending messages toobjects	 1000 factorial / 999 factorial (Smalltalk isCool) ifTrue: [‘Yeahh’]	 #(1...
Running Pharo
Do it, print itYou can evaluateany expressionanywherein Pharo
Standard development tools
Standard development tools
Debugger, explorer, inspector
3 kinds of messagesUnary messagesBinary messagesKeywords messages5 factorialTranscript cr3 + 43 raisedTo: 10 modulo: 5Tran...
From Java to Smalltalkpostman.send(mail,recipient);
Removingpostman.send(mail,recipient);
Removing unnecessarypostman send mail recipient
But without losinginformationpostman send mail to recipient
postman send: mail to: recipientpostman.send(mail,recipient);
(Msg) > Unary > Binary > Keywords		from left to rightNo mathematical precedencePrecedence
S.Ducasse2 + 3 squared46
S.Ducasse2 + 3 squared> 2 + 947
S.Ducasse2 + 3 squared> 2 + 9> 1148
S.DucasseColor gray - Color white = Color black49
S.DucasseColor gray - Color white = Color black50
S.DucasseColor gray - Color white = Color black> aColor = Color black51
S.DucasseColor gray - Color white = Color black> aColor = Color black> true52
| p pen |p := 100@100.pen := Pen new.pen up.pen goto: p; down; goto: p+pStatement and cascadesTemporary variablesStatement...
S.DucasseBlock Closures: aka Functionfct(x) = x * x + x|fct|fct:= [:x | x * x + x].54
S.DucasseFunction Applicationfct (2) = 6fct (20) = 420fct value: 2> 6fct value: 20> 420[:x | x * x + x] value: 2>6[:x | x ...
S.Ducasse#(15 10 19 68) do:[:i | Transcript show: i ; cr ]56
S.Ducasse#(15 10 19 68) do:[ :i | Transcript show: i ; cr ]57
S.Ducasse1 to: 100 do:[ :i | Transcript show: i ; space]58
S.Ducasse1 to: 100 do:[ :i | Transcript show: i ; space]59
S.Ducasse1 to: 100 by: 3 do:[ :i | Transcript show: i ; space]60
S.Ducasse1 to: 100 by: 3 do:[ :i | Transcript show: i ; space]61
<= aPoint! "Answer whether the receiver is neither! below nor to the right of aPoint."! ^ x <= aPoint x and: [y <= aPoint ...
Creating classesSend a message to a class (!)Number subclass: #Complex! instanceVariableNames: real imaginary! ...! catego...
1.0+ Major Cleanups (MVC, eToys)+ New UI Look / TrueType+ Tools+ Block Closures (thanks Qwak)+ Lots of bugfixes and small i...
Update ~1200 Bug-reports closed470 UpdatesRelease Candidate: October 2009
Future
...cleanerstarted to run SmallLint... and fix
...betterI.1 has a lot of fixes and improvements
...smallersmall image is 2 Mb
...faster
Everybody can helpReporting bugsConfirming bugsWriting testsWriting examplesWriting commentsSimple contributing fixesDeep di...
ProcessFIX/ENHANCEMENTIn PharoInbox orChangesetsDiscussedon Mailing-listBUG TrackerIntegrated RejectedBUGDiscussed onDiscu...
Pharo SprintsMay 2008 BernJuly 2009 BernOctober 2009 LilleNovember 2009 Buenos AresFree access
BooksPharo by examplevol. 1 is outPharo by examplevol. 2 on preparation
ThanksHans BeckAlexandre BergelCedric BelerTorsten BergmannMatthias BerthRalph BolandNoury BouraqadiBrian BrownGwenael Cas...
Join Us!Creating good energy, software quality,learning and having funhttp://pharo-project.org
Pharo -  I have a dream @ Smalltalks Conference 2009
Upcoming SlideShare
Loading in …5
×

Pharo - I have a dream @ Smalltalks Conference 2009

549 views
401 views

Published on

One of the first public presentation of Pharo during the 2009 Smalltalks conference held at Buenos Aires.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
549
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Pharo - I have a dream @ Smalltalks Conference 2009

  1. 1. I have a dream...S. Ducasse stephane.ducasse@free.fr& STICAmsud ( )
  2. 2. yo tengo un sueño ... :)
  3. 3. S.DucasseLISP ....1996: discover Smalltalk1998: discover Squeak~2000: harvester for 3.xx, 3.6, 3.7, started to cleanSqueakResponsible for Squeak3.92008: Pharo :)Book author: Squeak (fr), Squeak by example(eng, fr), Pharo by example (eng)Translated Etoy book and video in french
  4. 4. I dreamed about ...
  5. 5. A vehicule to reinvent the future
  6. 6. Let’s stop to think that we are thatcool!
  7. 7. Python, Ruby, Groovy, Lua...Erlang...
  8. 8. Let’s stop to live in amuseum!
  9. 9. When do we really build on top of giantshoulders?Thanks Dan and Alan. Now... I want more!
  10. 10. We should be able to invent ourfuture
  11. 11. Where is Smalltalk innovation?
  12. 12. Smalltalk as the language todefine other languagesAdvanced and stronger MopsWe deserve more than doesNotUnderstand:New ways of defining languagesDomain specific language supportNew generation of meta compilers
  13. 13. Software EngineeringTests: which ones should I fix first?Continuous test runningSmoother refactorings and code manipulationContinuous integration / Extreme integrationBetter Lint Rules / Domain specific lint rulesBug tracking
  14. 14. UIMultitouch supportNew UIWhen will we be able to reinvent UICairo and others?New IDEs
  15. 15. OtherSecurity?Micro modularityAdvanced runtimeScripting syntax!
  16. 16. VM/LanguagesMultiple cores?OpenVMs?New generation JITs?Immutable
  17. 17. They show us the wayObjectPeople (Dave Thomas and others)Resilient (128K) Smalltalk on hdwareS#: Dave Simmons 90ms boot fully embeddable inC SmalltalkDave Thomas Sapphire’s vision (ESUG@douai)TTY + Image as a cache
  18. 18. There is some hope...SeasideReflectivity, NewCompiler,AOSTA?Monticello, O’Meta, PetitParser, Helvetia,Glamour, Mondrian,Traits...Newspeak, Pepsi/Coke....
  19. 19. When do we makesure that we couldinvent Smalltalk 3000?first class instance variables, modules?, immutability bits?, visibility?,image as cache?
  20. 20. We need a new state of mind
  21. 21. We are trying...
  22. 22. http://www.pharo-project.orgA clean, innovative, open-source Smalltalk
  23. 23. Pharo?A progressive, open-source Smalltalk platformfor professional use.StableBugs fixed fastBut innovative
  24. 24. Pharo?A flexible environment to support theinnovation in/of Smalltalk.StableBugs fixed fastBut innovative
  25. 25. Pier
  26. 26. Pier
  27. 27. iPhone
  28. 28. Smalltalk with OO-DatabasePharo is the IDE
  29. 29. Companiesnetstyle.chcmsbox.comPinesoftSmallworksAgilitic.beInceptive.be10PinesGemStoneSWEngDenker2Denker...
  30. 30. UniversitiesAnnecyLuganoBernDouaiLilleSantiagoBruxellesLimoge...
  31. 31. A Simple and PureModelEverything is an object instance of a classPublic methodsProtected attributesSingle inheritance
  32. 32. Everything happens by sending messages toobjects 1000 factorial / 999 factorial (Smalltalk isCool) ifTrue: [‘Yeahh’] #(1 -2 3) collect: [ :each | each abs ]
  33. 33. Running Pharo
  34. 34. Do it, print itYou can evaluateany expressionanywherein Pharo
  35. 35. Standard development tools
  36. 36. Standard development tools
  37. 37. Debugger, explorer, inspector
  38. 38. 3 kinds of messagesUnary messagesBinary messagesKeywords messages5 factorialTranscript cr3 + 43 raisedTo: 10 modulo: 5Transcript show: hello world
  39. 39. From Java to Smalltalkpostman.send(mail,recipient);
  40. 40. Removingpostman.send(mail,recipient);
  41. 41. Removing unnecessarypostman send mail recipient
  42. 42. But without losinginformationpostman send mail to recipient
  43. 43. postman send: mail to: recipientpostman.send(mail,recipient);
  44. 44. (Msg) > Unary > Binary > Keywords from left to rightNo mathematical precedencePrecedence
  45. 45. S.Ducasse2 + 3 squared46
  46. 46. S.Ducasse2 + 3 squared> 2 + 947
  47. 47. S.Ducasse2 + 3 squared> 2 + 9> 1148
  48. 48. S.DucasseColor gray - Color white = Color black49
  49. 49. S.DucasseColor gray - Color white = Color black50
  50. 50. S.DucasseColor gray - Color white = Color black> aColor = Color black51
  51. 51. S.DucasseColor gray - Color white = Color black> aColor = Color black> true52
  52. 52. | p pen |p := 100@100.pen := Pen new.pen up.pen goto: p; down; goto: p+pStatement and cascadesTemporary variablesStatementCascade
  53. 53. S.DucasseBlock Closures: aka Functionfct(x) = x * x + x|fct|fct:= [:x | x * x + x].54
  54. 54. S.DucasseFunction Applicationfct (2) = 6fct (20) = 420fct value: 2> 6fct value: 20> 420[:x | x * x + x] value: 2>6[:x | x * x + x] value: 20>42055
  55. 55. S.Ducasse#(15 10 19 68) do:[:i | Transcript show: i ; cr ]56
  56. 56. S.Ducasse#(15 10 19 68) do:[ :i | Transcript show: i ; cr ]57
  57. 57. S.Ducasse1 to: 100 do:[ :i | Transcript show: i ; space]58
  58. 58. S.Ducasse1 to: 100 do:[ :i | Transcript show: i ; space]59
  59. 59. S.Ducasse1 to: 100 by: 3 do:[ :i | Transcript show: i ; space]60
  60. 60. S.Ducasse1 to: 100 by: 3 do:[ :i | Transcript show: i ; space]61
  61. 61. <= aPoint! "Answer whether the receiver is neither! below nor to the right of aPoint."! ^ x <= aPoint x and: [y <= aPoint y]A typical method in PointMethod name Argument CommentReturn Binary messageKeyword messageInstance variableBlock(2@3) <= (5@6) true
  62. 62. Creating classesSend a message to a class (!)Number subclass: #Complex! instanceVariableNames: real imaginary! ...! category: ComplexNumbers
  63. 63. 1.0+ Major Cleanups (MVC, eToys)+ New UI Look / TrueType+ Tools+ Block Closures (thanks Qwak)+ Lots of bugfixes and small improvements+ Preferences clean up+ MIT license clean
  64. 64. Update ~1200 Bug-reports closed470 UpdatesRelease Candidate: October 2009
  65. 65. Future
  66. 66. ...cleanerstarted to run SmallLint... and fix
  67. 67. ...betterI.1 has a lot of fixes and improvements
  68. 68. ...smallersmall image is 2 Mb
  69. 69. ...faster
  70. 70. Everybody can helpReporting bugsConfirming bugsWriting testsWriting examplesWriting commentsSimple contributing fixesDeep discussion...
  71. 71. ProcessFIX/ENHANCEMENTIn PharoInbox orChangesetsDiscussedon Mailing-listBUG TrackerIntegrated RejectedBUGDiscussed onDiscussed onDescribedDescribedOtherversion
  72. 72. Pharo SprintsMay 2008 BernJuly 2009 BernOctober 2009 LilleNovember 2009 Buenos AresFree access
  73. 73. BooksPharo by examplevol. 1 is outPharo by examplevol. 2 on preparation
  74. 74. ThanksHans BeckAlexandre BergelCedric BelerTorsten BergmannMatthias BerthRalph BolandNoury BouraqadiBrian BrownGwenael CasaccioDamien CassouNicolas CellierGary ChambersMiguel CobaGabriel CotelliCarlos CrosettiCyrille DelaunaySimon DenierMarcus DenkerRamiro Diaz TrepatStephane DucasseMorales Durand HernanStephan EggermontLuc FabresseMatthew FulmerHilaire FernandesJulian FitzellTudor GirbaSean GlazierNorbert HartlDale HenrichsReinout HeeckEric HochmeisterKeith HodgesHenrik Sperre JohansenPavel KrivanekAdrian KuhnAdrian LienhardAndreas LeidigMariano Martinez PeckDave MasonJohn McIntoshJohnaton MeichtryEliot MirandaHernan Morales DurandPhilipp MarshallJannick MenanteauYann MonclairOscar NierstraszDavid J PennellJoseph PelrineAlain PlantecDamien PolletLukas RenggliJorge RessiaMike RobertsRobert RothwellDavid RotlisbergerMichael RuegerBill SchwabNiko SchwarzIgor StasenkoFrancois StephanySerge StinckwichMathieu SuenLawrence TrutterAndrew Tweenmartin von loewisAndresValloudJuanVuletichSteven WirtsHernan Wilkinson
  75. 75. Join Us!Creating good energy, software quality,learning and having funhttp://pharo-project.org

×