Pharo Status
Click here to load reader
-
Upload
jannik-laval -
Category
Software
-
view
1.381 -
download
2
description
Transcript of Pharo Status
![Page 1: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/1.jpg)
Pharo StatusMarcus Denker, Stéphane Ducasse
http://www.pharo-project.org
presented by Jannik Laval
![Page 2: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/2.jpg)
![Page 3: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/3.jpg)
PharoMIT 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
![Page 4: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/4.jpg)
Some projectsWeb 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…
![Page 5: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/5.jpg)
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
Pharo in numbers
![Page 6: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/6.jpg)
![Page 7: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/7.jpg)
We are a cool and growing community
![Page 8: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/8.jpg)
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!
![Page 9: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/9.jpg)
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
![Page 10: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/10.jpg)
where business/innovation
can bloom
![Page 11: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/11.jpg)
A powerful engine to invent (y)our future
![Page 12: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/12.jpg)
Since may 2008
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)
Very High Activity
![Page 13: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/13.jpg)
• 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
Pharo's Teachers
![Page 14: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/14.jpg)
Lafhis (AR)Software Composition Group (CH) CAR (FR)RMOD (FR) Ummisco (IRD) Reveal (CH) Lysic (FR)Pleiad (CL) CEA-List (FR) Uqbar (AR)
Research Groups
![Page 15: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/15.jpg)
Design ideas
Object-centric debugging First-class slots Bootstrapping a Smalltalk Vector graphic core New modules New frameworks STON, Tide, Voyage, Babymock, Mocketry…
![Page 16: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/16.jpg)
Example: OpenCL in Pharo
http://youtu.be/-2ida5Q1mbg
![Page 17: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/17.jpg)
Proven Innovation!
![Page 18: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/18.jpg)
Proven Innovation!
![Page 19: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/19.jpg)
all MIT!GraphET, EyeSee
Tide (Amber/Pharo)
Voyage (NoSQL)
Zinc
WebSocket, Oauth, Riak, MongoDB, couchDB, mustache, PunQlite
…
![Page 20: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/20.jpg)
Be with the buzz Market it
New frameworks
New books!
Activity
![Page 21: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/21.jpg)
International books
Pharo by example
translated to french, merci!
translated to spanish, gracias!
translated to japanese, ありがとう!
![Page 22: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/22.jpg)
Pharo for the Entreprise
Pharo web stack
Fun with Pharo
If you want to contribute...
![Page 23: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/23.jpg)
LAMRC Back-End Wafer-Level Packaging
They understand their benefits
GemTalk Systems
HRWorks !
MadEnvironment !
![Page 24: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/24.jpg)
Pharo Consortium
@@ Web site @@
![Page 25: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/25.jpg)
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
![Page 26: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/26.jpg)
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.
![Page 27: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/27.jpg)
25 * 2K = 50 * 1K = 1 full engineer for Pharo
![Page 28: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/28.jpg)
Pharo User Association
Managed by the Pharo Association
Individuals
Premium (99 Euros)
Normal (40 Euros)
Join and participate what we do!
![Page 29: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/29.jpg)
Creating good energy, !software quality,!
learning and having fun!!
http://pharo.org
Join Us
![Page 30: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/30.jpg)
where business/innovation
can bloom
![Page 32: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/32.jpg)
Pharo3: Release April `14
Started March 2013
!
2390 Issue tracker entries with Pharo3 tag closed
!
854 Updates
![Page 33: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/33.jpg)
Iceberg
A lot of Changes!
Not everything visible
![Page 34: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/34.jpg)
Lots of Activity
![Page 35: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/35.jpg)
A lot of Change!
![Page 36: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/36.jpg)
Yet easy to adopt
Moose switched in two afternoons (two people)
!
Others: “I just loaded my packages"
![Page 37: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/37.jpg)
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
![Page 39: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/39.jpg)
Infrastructure: Misc
http://files.pharo.org
!
http://get.pharo.org
!
SmalltalkHub: http://smalltalkhub.com
1411 users, >1200 repos
![Page 40: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/40.jpg)
Small Stuff
Lots of Cleanups
!
Lots of tuning (perfomance, memory)
!
Lots of small improvements
![Page 41: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/41.jpg)
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
….
![Page 42: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/42.jpg)
New Inspector
Unify Inspector and Explorer
Make specialised inspectors visible
![Page 43: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/43.jpg)
Athens: Vector Graphics
New API for Vector Graphics
Independent of Backend
For now: Cairo
Balloon3D for Debugging
Future: OpenGL
![Page 44: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/44.jpg)
Athens: Demo
![Page 45: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/45.jpg)
Opal Compiler
Uses RB AST
!
IRBuilder: Bytecode backend with high-level builder
Much easier to change
Basis for advanced Reflection
![Page 46: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/46.jpg)
New ClassBuilder
Replaces the old ClassBuilder
!
Easier to understand and more flexible
!
Basis for First Class Variables (Slots)
![Page 47: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/47.jpg)
New Debugger
Model now separate from View
!
Model is scriptable
!
Debugger is extensible with Commands
![Page 48: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/48.jpg)
Command Linedenker$ ./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!!
![Page 49: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/49.jpg)
A lot of change…
![Page 50: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/50.jpg)
But just one iteration
![Page 51: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/51.jpg)
Pharo4
![Page 52: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/52.jpg)
Pharo4
Again: To be released Spring 2015
Already 175 updates
480 Issues closed
Very stable
![Page 53: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/53.jpg)
For example…
Improved Refactorings
6MB Deployment Image
ifTrue: on non-Booleans
Browser and Tool cleanups
Context Cleanup (MethodContext/ContextPart merge)
![Page 54: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/54.jpg)
![Page 55: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/55.jpg)
In Progress…
![Page 56: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/56.jpg)
First Class Variables
• First class Instance Variables (Slots)
!
• First class globals + class variables
![Page 57: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/57.jpg)
For what?
• Allows programmers to define behavior
• Easy reflection on variable access
• Break on variable read, for example
![Page 58: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/58.jpg)
Property SlotsObject subclass: #PropertyObject layout: PointerLayout slots: { #ivar. #property1 => PropertySlot. #property2 => PropertySlot. ... #propertyN => PropertySlot. }
![Page 59: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/59.jpg)
Property SlotsObject subclass: #PropertyObject layout: PointerLayout instanceVariables: { #ivar. #property1 => PropertySlot. #property2 => PropertySlot. ... #propertyN => PropertySlot. }
![Page 60: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/60.jpg)
Examples
• BitSlot
• BooleanSlot
• Alias
• Relationships (e.g. one-one, one-many)
• …. Your Domain level Slot! ==> Magritte
![Page 61: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/61.jpg)
More in Paper from OOPSLA
![Page 62: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/62.jpg)
Advanced Reflection
• Partial Behavioral Reflection
• Associate MetaObject with structural object
• Slots, Globals
• AST nodes
![Page 63: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/63.jpg)
The Meta Link
![Page 64: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/64.jpg)
Why?
• Change behaviour for selected AST Nodes or Variables
• “All variable reads”
• “this message send”
But without changing the program code!
![Page 65: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/65.jpg)
Uses…
• Debugger
• BreakPoints, WatchPoints
• Profilers
• Coverage Analysis
• AOP
![Page 66: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/66.jpg)
One File Pharo
• .sources, .changes. .image
!
• It is time to simplify that!
![Page 67: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/67.jpg)
Epicea
• Replace .changes
• High level model:
• aggregate changes (refactoring)
• serialized to disk independent of source model
![Page 68: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/68.jpg)
![Page 69: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/69.jpg)
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)
![Page 70: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/70.jpg)
Bootstrap
• Create an image from a git repository
• Control what the image contains
• Easier to make changes
• Enforces Modularity
![Page 71: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/71.jpg)
Boostrap
• Working for Pharo3 as a prototype
!
• Can we even use this for Pharo4 on the build server?
![Page 72: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/72.jpg)
And more…
• GT Tools
• VM related news
• Spur, Sista, 64bit…
• ……….. there are lots of talks here
![Page 73: Pharo Status](https://reader037.fdocuments.net/reader037/viewer/2022100400/559dbe0f1a28ab8f018b46b7/html5/thumbnails/73.jpg)
Pharo StatusMarcus Denker, Stéphane Ducasse
http://www.pharo-project.org
presented by Jannik Laval