Successfully reported this slideshow.
Pharo Status 
Marcus Denker, Stéphane Ducasse 
http://www.pharo-project.org 
presented by 
Jannik Laval
Pharo 
MIT license 
Pure object language 
Great community of active doers 
Powerful 
Elegant and fun to program 
Living sy...
Some projects 
Web frameworks - Seaside, iliad, HTTP2, Tide, Aida, Mustache, Oauth, 
WebSocket CSS styling Format parsers ...
Pharo in numbers 
282 000 downloads on the Inria gforge 
40-60 active commiters 
> 600 mailing-list members 
200 license a...
We are a cool and growing 
community
Tweets, blogs, buzz 
Pharo 3,065 tweets / 1018 followers 
S. Ducasse tweets 513/ 735 followers 
S. Stinckwich 8712 / 1006 ...
Blogs 
http://pharo.org/blogs 
http://astares.blogspot.co.uk 
http://clementbera.wordpress.com 
http://pharoweekly.wordpre...
where business/innovation 
can bloom
A powerful engine 
to invent (y)our future
Since may 2008 
Very High 
Activity 
Pharo 3.0 - Apr 2014 ( around 2600 closed cases) 
Pharo 2.0 - Apr 2013 (1657 closed c...
Pharo's Teachers 
• Uni. of Buenos Aires • Uni. of Bern • Uni. of 
Maroua • Uni. of Brussels • Ecole des Mines de 
Douai •...
Research Groups 
Lafhis (AR) 
Software Composition Group (CH) 
CAR (FR) 
RMOD (FR) 
Ummisco (IRD) 
Reveal (CH) 
Lysic (FR)...
Design ideas 
Object-centric debugging 
First-class slots 
Bootstrapping a Smalltalk 
Vector graphic core 
New modules 
Ne...
Example: OpenCL in Pharo 
http://youtu.be/-2ida5Q1mbg
Proven Innovation!
Proven Innovation!
all MIT! 
GraphET, EyeSee 
Tide (Amber/Pharo) 
Voyage (NoSQL) 
Zinc 
WebSocket, Oauth, Riak, MongoDB, couchDB, 
mustache, ...
Be with the buzz 
Market it 
New frameworks 
New books! 
Activity
International books 
Pharo by example 
translated to french, merci! 
translated to spanish, gracias! 
translated to japane...
Pharo for the Entreprise 
Pharo web stack 
Fun with Pharo 
If you want to contribute...
They understand their 
benefits 
GemTalk 
LAMRC 
Back-End Wafer-Level Packaging 
Systems 
HRWorks 
! 
MadEnvironment 
!
Pharo Consortium 
@@ Web site @@
Consortium Members 
Managed by Inria for now 
Who: companies, institutions, user groups 
Privileged access to the core dev...
Fees 
Gold 4000 
4 days of engineering time + multiple job descriptions for job 
dashboard + diamond sponsor. 
Silver 2000...
25 * 2K = 50 * 1K 
= 1 full engineer for Pharo
Pharo User Association 
Managed by the Pharo Association 
Individuals 
Premium (99 Euros) 
Normal (40 Euros) 
Join and par...
Join Us 
Creating good energy, ! 
software quality,! 
learning and having fun! 
! 
http://pharo.org
where business/innovation 
can bloom
Pharo Status 
Marcus Denker 
http://www.pharo-project.org
Pharo3: Release April `14 
Started March 2013 
! 
2390 Issue tracker entries with Pharo3 tag closed 
! 
854 Updates
Iceberg 
A lot of Changes! 
Not everything 
visible
Lots of Activity
A lot of Change!
Yet easy to adopt 
Moose switched in two afternoons (two people) 
! 
Others: “I just loaded my packages"
Infrastructure: CI 
https://ci.inria.fr is stable and used a lot 
! 
Every fix is validated automatically before human rev...
ci.inria.fr/pharo-contribution/
Infrastructure: Misc 
http://files.pharo.org 
! 
http://get.pharo.org 
! 
SmalltalkHub: http://smalltalkhub.com 
1411 user...
Small Stuff 
Lots of Cleanups 
! 
Lots of tuning (perfomance, memory) 
! 
Lots of small improvements
Lots of larger things 
Closure class now standard in Pharo3 
Terminal output for stderr 
Cleanup Source file related code ...
New Inspector 
Unify Inspector and Explorer 
Make specialised inspectors visible
Athens: Vector Graphics 
New API for Vector Graphics 
Independent of Backend 
For now: Cairo 
Balloon3D for Debugging 
Fut...
Athens: Demo
Opal Compiler 
Uses RB AST 
! 
IRBuilder: Bytecode backend with high-level builder 
Much easier to change 
Basis for advan...
New ClassBuilder 
Replaces the old ClassBuilder 
! 
Easier to understand and more flexible 
! 
Basis for First Class Varia...
New Debugger 
Model now separate from View 
! 
Model is scriptable 
! 
Debugger is extensible with Commands
Command Line 
denker$ ./pharo Pharo.image --list! 
Currently installed Command Line Handlers:! 
Fuel Loads fuel files! 
co...
A lot of change…
But just one iteration
Pharo4
Pharo4 
Again: To be released Spring 2015 
Already 175 updates 
480 Issues closed 
Very stable
For example… 
Improved Refactorings 
6MB Deployment Image 
ifTrue: on non-Booleans 
Browser and Tool cleanups 
Context Cle...
In Progress…
First Class Variables 
• First class Instance Variables (Slots) 
! 
• First class globals + class variables
For what? 
• Allows programmers to define behavior 
• Easy reflection on variable access 
• Break on variable read, for ex...
Property Slots 
Object 
subclass: #PropertyObject 
layout: PointerLayout 
slots: { 
#ivar. 
#property1 => PropertySlot. 
#...
Property Slots 
Object 
subclass: #PropertyObject 
layout: PointerLayout 
instanceVariables: { 
#ivar. 
#property1 => Prop...
Examples 
• BitSlot 
• BooleanSlot 
• Alias 
• Relationships (e.g. one-one, one-many) 
• …. Your Domain level Slot! ==> Ma...
More in Paper from OOPSLA
Advanced Reflection 
• Partial Behavioral Reflection 
• Associate MetaObject with structural object 
• Slots, Globals 
• A...
The Meta Link
Why? 
• Change behaviour for selected AST Nodes or 
Variables 
• “All variable reads” 
• “this message send” 
But without ...
Uses… 
• Debugger 
• BreakPoints, WatchPoints 
• Profilers 
• Coverage Analysis 
• AOP
One File Pharo 
• .sources, .changes. .image 
! 
• It is time to simplify that!
Epicea 
• Replace .changes 
• High level model: 
• aggregate changes (refactoring) 
• serialized to disk independent of so...
Sources 
• It is 2014: Memory is cheap. 
• Complexity is expensive 
• Why not just put the sources in the image? 
• Extern...
Bootstrap 
• Create an image from a git repository 
• Control what the image contains 
• Easier to make changes 
• Enforce...
Boostrap 
• Working for Pharo3 as a prototype 
! 
• Can we even use this for Pharo4 on the build 
server?
And more… 
• GT Tools 
• VM related news 
• Spur, Sista, 64bit… 
• ……….. there are lots of talks here
Pharo Status 
Marcus Denker, Stéphane Ducasse 
http://www.pharo-project.org 
presented by 
Jannik Laval
Pharo Status
Pharo Status
Pharo Status
Pharo Status
Prochain SlideShare
Chargement dans…5
×

Pharo Status

2 387 vues

Publié le

This presentation is about Pharo status and why it is important to support our community. I presented these slides at FAST smalltalks 2014, Cordoba, Argentina.

Publié dans : Logiciels
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Pharo Status

  1. 1. Pharo Status Marcus Denker, Stéphane Ducasse http://www.pharo-project.org presented by Jannik Laval
  2. 2. Pharo MIT license Pure object language Great community of active doers Powerful Elegant and fun to program Living system under your fingers Mac, Linux, Android, iOS, Windows
  3. 3. Some projects Web frameworks - Seaside, iliad, HTTP2, Tide, Aida, Mustache, Oauth, WebSocket CSS styling Format parsers - XML, HTML, NeoJSON, NeoCSV. Application Security, Graphics frameworks - Roassal, Mondrian, EyeSee, GraphET, Tool builders - Glamour, Spec, XUL, MacNative, Databases - DBXTalk, Mongo, Riak, CouchDB, MySql, PunQLite. Object-Oriented databases - Magma, Goods. Database abstraction - Voyage, ROE MetaCompiler - Petit Parser, SmaCC - Proxy, Logging - SystemLogger, Toothpick, SimpleLogger Units: Aconcagua, Units Time - Chronos Calendars, Timezones Productivity Tools - Codecritics, Refactorings, Cherry picking merge tools: merge tool, Komitter Versionner, Mock frameworks (baby mock), PDFgeneration - Artefact, Testing frameworks - PhExample, SUnit Assembly generation: ASMJIT, Integration Tools: Hudson, Alternate window manager, Games: Tetris, Sokoban, Miner, Chess, CrossWords MetaModeling Frameworks - Magritte, Platypus, Cloud deployement - cloudfork cloudPharo, 3D: Roassal3d, NBOpenGL, JVM connection Bio informatics, ODE solvers, Interactive Geometry - DrGeo…
  4. 4. Pharo in numbers 282 000 downloads on the Inria gforge 40-60 active commiters > 600 mailing-list members 200 license agreements 60 association members 11 industrial consortium members around 400 external projects or more
  5. 5. We are a cool and growing community
  6. 6. Tweets, blogs, buzz Pharo 3,065 tweets / 1018 followers S. Ducasse tweets 513/ 735 followers S. Stinckwich 8712 / 1006 followers Moose 502 tweets/ 255 followers Youtube Pharo smalltalk: about 1540 videos!
  7. 7. Blogs http://pharo.org/blogs http://astares.blogspot.co.uk http://clementbera.wordpress.com http://pharoweekly.wordpress.com • Guille Polito, Playing with Objects • Mariano Martinez Peck, Sending messages • Igor Stasenko, Computer Adventures • Laurent Laffont, MaGaLoMa • Esteban Lorenzano, The Martian Chronicles • Tudor Girba, Humane assessment • Philippe Back, The Philippe Back Report • Yuriy Tymchuk, Uko on Code and Sleepy Coders
  8. 8. where business/innovation can bloom
  9. 9. A powerful engine to invent (y)our future
  10. 10. Since may 2008 Very High Activity Pharo 3.0 - Apr 2014 ( around 2600 closed cases) Pharo 2.0 - Apr 2013 (1657 closed cases) Pharo 1.4 - Apr 2012 (988 closed cases) Pharo 1.3 (736 closed cases) Pharo 1.2 - mar 2011 (691 closed cases) Pharo 1.1 - jul 2010 (918 closed cases) Pharo 1.0 - oct 2009 (307 closed cases)
  11. 11. Pharo's Teachers • Uni. of Buenos Aires • Uni. of Bern • Uni. of Maroua • Uni. of Brussels • Ecole des Mines de Douai • Uni. de Savoie • Ivan Franko Nat. Uni. of Lviv • Czech Technical Uni. • CULS Prague • Uni. of Quilmes • Uni. of La Plata • Northern Michigan Uni. • Uni. Technologica Nacional (UTN) • Uni. Catholic of Argentina • Uni. of Santiago • Uni. Policnica de Catalunya • Uni. of Saarland • Uni. de Bretagne Occidentale • Uni. of Tomsk
  12. 12. Research Groups Lafhis (AR) Software Composition Group (CH) CAR (FR) RMOD (FR) Ummisco (IRD) Reveal (CH) Lysic (FR) Pleiad (CL) CEA-List (FR) Uqbar (AR)
  13. 13. Design ideas Object-centric debugging First-class slots Bootstrapping a Smalltalk Vector graphic core New modules New frameworks STON, Tide, Voyage, Babymock, Mocketry…
  14. 14. Example: OpenCL in Pharo http://youtu.be/-2ida5Q1mbg
  15. 15. Proven Innovation!
  16. 16. Proven Innovation!
  17. 17. all MIT! GraphET, EyeSee Tide (Amber/Pharo) Voyage (NoSQL) Zinc WebSocket, Oauth, Riak, MongoDB, couchDB, mustache, PunQlite …
  18. 18. Be with the buzz Market it New frameworks New books! Activity
  19. 19. International books Pharo by example translated to french, merci! translated to spanish, gracias! translated to japanese, ありがとう!
  20. 20. Pharo for the Entreprise Pharo web stack Fun with Pharo If you want to contribute...
  21. 21. They understand their benefits GemTalk LAMRC Back-End Wafer-Level Packaging Systems HRWorks ! MadEnvironment !
  22. 22. Pharo Consortium @@ Web site @@
  23. 23. Consortium Members Managed by Inria for now Who: companies, institutions, user groups Privileged access to the core development team Influence priorities of the next development Engineering support time Job posts Training/Conferences special prices
  24. 24. Fees Gold 4000 4 days of engineering time + multiple job descriptions for job dashboard + diamond sponsor. Silver 2000 two days of engineering time + one job description + diamond sponsor. Bronze 1000 one day of engineering time + diamond sponsor.
  25. 25. 25 * 2K = 50 * 1K = 1 full engineer for Pharo
  26. 26. Pharo User Association Managed by the Pharo Association Individuals Premium (99 Euros) Normal (40 Euros) Join and participate what we do!
  27. 27. Join Us Creating good energy, ! software quality,! learning and having fun! ! http://pharo.org
  28. 28. where business/innovation can bloom
  29. 29. Pharo Status Marcus Denker http://www.pharo-project.org
  30. 30. Pharo3: Release April `14 Started March 2013 ! 2390 Issue tracker entries with Pharo3 tag closed ! 854 Updates
  31. 31. Iceberg A lot of Changes! Not everything visible
  32. 32. Lots of Activity
  33. 33. A lot of Change!
  34. 34. Yet easy to adopt Moose switched in two afternoons (two people) ! Others: “I just loaded my packages"
  35. 35. Infrastructure: CI https://ci.inria.fr is stable and used a lot ! Every fix is validated automatically before human review Every update triggers test run on 3 Architectures over 80 projects in pharo-contribution
  36. 36. ci.inria.fr/pharo-contribution/
  37. 37. Infrastructure: Misc http://files.pharo.org ! http://get.pharo.org ! SmalltalkHub: http://smalltalkhub.com 1411 users, >1200 repos
  38. 38. Small Stuff Lots of Cleanups ! Lots of tuning (perfomance, memory) ! Lots of small improvements
  39. 39. Lots of larger things Closure class now standard in Pharo3 Terminal output for stderr Cleanup Source file related code AST Interpreter AST based Navigation in Browser Komitter Launcher Font Speedup ….
  40. 40. New Inspector Unify Inspector and Explorer Make specialised inspectors visible
  41. 41. Athens: Vector Graphics New API for Vector Graphics Independent of Backend For now: Cairo Balloon3D for Debugging Future: OpenGL
  42. 42. Athens: Demo
  43. 43. Opal Compiler Uses RB AST ! IRBuilder: Bytecode backend with high-level builder Much easier to change Basis for advanced Reflection
  44. 44. New ClassBuilder Replaces the old ClassBuilder ! Easier to understand and more flexible ! Basis for First Class Variables (Slots)
  45. 45. New Debugger Model now separate from View ! Model is scriptable ! Debugger is extensible with Commands
  46. 46. Command Line denker$ ./pharo Pharo.image --list! Currently installed Command Line Handlers:! Fuel Loads fuel files! config Install Configurations! save Rename the image and changes file! update Load updates! printVersion Print image version! st Loads and executes .st source files! test A command line test runner! clean Run image cleanup! eval Directly evaluates one line scripts! !
  47. 47. A lot of change…
  48. 48. But just one iteration
  49. 49. Pharo4
  50. 50. Pharo4 Again: To be released Spring 2015 Already 175 updates 480 Issues closed Very stable
  51. 51. For example… Improved Refactorings 6MB Deployment Image ifTrue: on non-Booleans Browser and Tool cleanups Context Cleanup (MethodContext/ContextPart merge)
  52. 52. In Progress…
  53. 53. First Class Variables • First class Instance Variables (Slots) ! • First class globals + class variables
  54. 54. For what? • Allows programmers to define behavior • Easy reflection on variable access • Break on variable read, for example
  55. 55. Property Slots Object subclass: #PropertyObject layout: PointerLayout slots: { #ivar. #property1 => PropertySlot. #property2 => PropertySlot. ... #propertyN => PropertySlot. }
  56. 56. Property Slots Object subclass: #PropertyObject layout: PointerLayout instanceVariables: { #ivar. #property1 => PropertySlot. #property2 => PropertySlot. ... #propertyN => PropertySlot. }
  57. 57. Examples • BitSlot • BooleanSlot • Alias • Relationships (e.g. one-one, one-many) • …. Your Domain level Slot! ==> Magritte
  58. 58. More in Paper from OOPSLA
  59. 59. Advanced Reflection • Partial Behavioral Reflection • Associate MetaObject with structural object • Slots, Globals • AST nodes
  60. 60. The Meta Link
  61. 61. Why? • Change behaviour for selected AST Nodes or Variables • “All variable reads” • “this message send” But without changing the program code!
  62. 62. Uses… • Debugger • BreakPoints, WatchPoints • Profilers • Coverage Analysis • AOP
  63. 63. One File Pharo • .sources, .changes. .image ! • It is time to simplify that!
  64. 64. Epicea • Replace .changes • High level model: • aggregate changes (refactoring) • serialized to disk independent of source model
  65. 65. Sources • It is 2014: Memory is cheap. • Complexity is expensive • Why not just put the sources in the image? • Externalize when needed (small devices) • Code history is in Monticello (or Git)
  66. 66. Bootstrap • Create an image from a git repository • Control what the image contains • Easier to make changes • Enforces Modularity
  67. 67. Boostrap • Working for Pharo3 as a prototype ! • Can we even use this for Pharo4 on the build server?
  68. 68. And more… • GT Tools • VM related news • Spur, Sista, 64bit… • ……….. there are lots of talks here
  69. 69. Pharo Status Marcus Denker, Stéphane Ducasse http://www.pharo-project.org presented by Jannik Laval

×