SlideShare a Scribd company logo
1 of 39
Download to read offline
The Pharo Roadmap

M. Denker and S. Ducasse
http://www.pharo-project.org
Create an ecosystem
where business/innovation
       can bloom
Some Pharo’s success
stories
Seaside.st
Yesplan.be, netstyle.ch
Pier, DrGeo
Cmsbox.ch: Content Management
beta9.be: T3 Easy (Pharo server side)
Moose: www.moose-technology.org
pinesoft.uk.com: MBagger
Airflowing
Be able to invent our future
Done so far

1.3 is released (a lot, a lot, and a lot of improvements :)
1.4 alpha started
Jenkins server for everything
All VMs are automatically generated using Jenkins
Community Ongoing Work
Better widgets (A. Plantec, G. Chambers, B. van Ryseghem)

Better browsers (B. van Ryseghem, C. Bruni)

Key mapper (G. Polito)

Serializer (M. Dias, M. Martinez-Peck), Full Proxy (M. Martinez-Peck)

New source code model: Ring (V. Uquillas Gomez, A. Kellens, S. Ducasse)

New compiler (J. Ressia/M. Denker/JB Arnaud)

Zoomable interface (I. Stasenko)

Bootstrap (B. van Ryseghem/S. Ducasse)

Package distribution infrastructure (D. Henrichs)

Network (Zinc S. van Caekenberghe, Ocean N. Bouraqadi, L. Fabresse, J. Laval)

Remote Smalltalk (N. Papoulias and N. Bouraqadi)
Roadmap



Building the infrastructure for the next generation
Code Model Infrastructure
Able to query all the versions
What were the senders of this method in version
13168?
What is the diff between the senders in the past and
the one now?
Support for merging
Distributed source code
Code Model Infrastructure
Ring (V. Uquillaz Gomes/A. Kellens/S.Ducasse)
  Source code metamodel
  API compatible with Smalltalk objects
Adding layers on top of it
Porting all the tools to use it!
Reuse tools
Next Steps


Server for queries
New source code model
Athens Graphics
New Canvas
 Vector Graphics API
 Layered Architecture
   Backend Cairo /
   OpenGL OpenVG....
Next Steps

OpenGL bindings using NativeBoost
    done on Windows
Stabilize API
Adapt Morphic
Opal
We need a more flexible
and simpler compiler
Hooks for DSL support
Better API
New generation of tools
Next Steps

Decompiler (was the last missing bit) is nearly finished
Soon added in 1.4
Throw away the old compiler
Then improving the API
Fuel: Fast Serialization

 Done by M. Diaz, M. Martinez-Peck, (T. Bourgeois & S.
 Ducasse)
 Don’t use ImageSegment (removed in 1.4)
   Fuel is faster (!!)
   Much more flexible and easier to understand
Next Steps


Replace existing serializers
Migration path
Binary code loader
Scripting Syntax: Coral

 We want to write scripts in Pharo :)
 Headless
 REPL
 OS connexion (OSProcess for now)
 So we get Coral D. Pollet (and S. Ducasse)
[ Console puts: 'Before the command'. ]
[ "Let's define a command"
    | command |
    Console puts: 'duuuuhhh'.
    command := (CLICommandParser named: 'dostuff')
       aliases: #('dostuff.coral');
      description: 'This command does a lot of stuff. I
really mean a lot.'.
]
Distributions: towards a
certified catalog

 I want to go to Mars with just a DVD,
 and still be able to load the projects I want,
 and without internet, please!
Process
You use Metacello!
You publish in your repo!
When you want you can release code to a distribution
All the code then is recursively copied to the
distribution space
All the tests and quality rules are checked
People use your code but with a certain level of
confidence :)
Varia


 Making sure that we will be able to use announcements
 instead of SystemChangeNotifier
 Cleaning Morphic
 New package infrastructure
Package certification

Packages should be more self contained
Tests
LintRules
Meta data
Run and automatically certified
Native Boost

By Igor Stasenko (mac, linux and windows 32bits)
Generate machine code on the fly :)
Implement primitives
FFI
VM

Expand knowledge
Welcome newbies and idiots (like Stef)
Increase tests
Release VM builders from stupid tasks
Traceability/Branding
VM builds



Anybody is now able to build a vm!
VM Infrastructure


 VM validation after ANY changes
 Automatic recompilation
 Automatic test regressions
Nautilus


 Throw away StringHolder hierarchy (Yes Browser
 inherits from StringHolder)
 Browser based on a model
 Nautilus by B. van Ryseghem
Next Steps

Reimplement
 ChangeSorter
 MC UI
 Debugger
Mini Image


Pavel’s Mini image
4.2 mb for Seaside
Future?

Native boost
Google native client
Full bootstrap
More secure system
Pharo Consortium


How to sustain Pharo?
How to structure the community?
Should we always rely on people free time?
Consortium


You can participate to the consortium: Pay a fee


The consortium will pay a full-time engineer to support
Pharo tasks
When

Started discussions with INRIA two years ago
INRIA is ok to put money on the table (under
negotiation)
More than 25 companies are interested
Join!
Consortium FAQ


Pharo will stay free!
No negative impact: just a better Pharo
People and organization should be able to pay too:
a.k.a. Morale License
Pharo books

Pharo by example
 translated to french, merci!
 translated to spanish, gracias!
 japanese, german started
New books are coming

Pharo by Example Volume Two (deep into Pharo)
Pharo for the Entreprise
  If you want to contribute...
A glimpse at VM
Doing a Master with us :)
 Slim binaries (compressing AST as bytecodes)
 Virtual Filesystem
 Fuel-ing the code
 Source manager
 Peer to peer sources
 NativeBoost as a foundational engine
 Bootstrap next steps
Thanks
    Alexandre Bergel
                            Matthew Fulmer
                            Hilaire Fernandes
                                Julian Fitzell
                                                    Laurent Laffont
                                                    Joseph Pelrine
      Cedric Beler             Tudor Girba
                                                      Alain Plantec
   Torsten Bergmann            Sean Glazier
                                                    Damien Pollet
     Matthias Berth          Norbert Hartl
                                                     Lukas Renggli
      Ralph Boland            Dale Henrichs
                                                      Jorge Ressia
    Noury Bouraqadi          Reinout Heeck
                                                     Mike Roberts
      Brian Brown           Eric Hochmeister
                                                   Robert Rothwell
    Guillermo Polito           Keith Hodges
                                                  David Rotlisberger
    Damien Cassou        Henrik Sperre Johansen
                                                    Michael Rueger
     Nicolas Cellier         Pavel Krivanek
                                                       Bill Schwab
    Gary Chambers              Adrian Kuhn
                                                     Niko Schwarz
      Miguel Coba            Adrian Lienhard
                                                     Igor Stasenko
     Gabriel Cotelli         Andreas Leidig
                                                  Francois Stephany
    Carlos Crosetti      Mariano Martinez Peck
                                                   Serge Stinckwich
    Cyrille Delaunay           Dave Mason
                                                     Mathieu Suen
     Simon Denier             John McIntosh
                                                  Lawrence Trutter
     Marcus Denker         Johnaton Meichtry
                                                    Andrew Tween
   Ramiro Diaz Trepat          Eliot Miranda
                                                  martin von loewis
   Stephane Ducasse      Hernan Morales Durand
                                                    Andres Valloud
 Morales Durand Hernan       Philipp Marshall
                                                      Juan Vuletich
  Stephan Eggermont             Jannik Laval
                                                      Steven Wirts
      Luc Fabresse            Yann Monclair
                                                  Hernan Wilkinson
                            Oscar Nierstrasz

More Related Content

Viewers also liked

Pharo Hands-On: 02 syntax
Pharo Hands-On: 02 syntaxPharo Hands-On: 02 syntax
Pharo Hands-On: 02 syntaxPharo
 
The Pharo Programming Language
The Pharo Programming LanguageThe Pharo Programming Language
The Pharo Programming Languagebergel
 
2008 Sccc Smalltalk
2008 Sccc Smalltalk2008 Sccc Smalltalk
2008 Sccc Smalltalkbergel
 
Reflection in Pharo: Beyond Smalltak
Reflection in Pharo: Beyond SmalltakReflection in Pharo: Beyond Smalltak
Reflection in Pharo: Beyond SmalltakMarcus Denker
 
Pharo tutorial at ECOOP 2013
Pharo tutorial at ECOOP 2013Pharo tutorial at ECOOP 2013
Pharo tutorial at ECOOP 2013Pharo
 
You Can’t Do That With Smalltalk!
You Can’t Do That With Smalltalk!You Can’t Do That With Smalltalk!
You Can’t Do That With Smalltalk!ESUG
 
Pharo Hands-on: 05 object model
Pharo Hands-on: 05 object modelPharo Hands-on: 05 object model
Pharo Hands-on: 05 object modelPharo
 
Haskell vs. F# vs. Scala
Haskell vs. F# vs. ScalaHaskell vs. F# vs. Scala
Haskell vs. F# vs. Scalapt114
 

Viewers also liked (10)

Pharo Hands-On: 02 syntax
Pharo Hands-On: 02 syntaxPharo Hands-On: 02 syntax
Pharo Hands-On: 02 syntax
 
The Pharo Programming Language
The Pharo Programming LanguageThe Pharo Programming Language
The Pharo Programming Language
 
2008 Sccc Smalltalk
2008 Sccc Smalltalk2008 Sccc Smalltalk
2008 Sccc Smalltalk
 
Pharo devnology20150401
Pharo devnology20150401Pharo devnology20150401
Pharo devnology20150401
 
Reflection in Pharo: Beyond Smalltak
Reflection in Pharo: Beyond SmalltakReflection in Pharo: Beyond Smalltak
Reflection in Pharo: Beyond Smalltak
 
Pharo tutorial at ECOOP 2013
Pharo tutorial at ECOOP 2013Pharo tutorial at ECOOP 2013
Pharo tutorial at ECOOP 2013
 
You Can’t Do That With Smalltalk!
You Can’t Do That With Smalltalk!You Can’t Do That With Smalltalk!
You Can’t Do That With Smalltalk!
 
Pharo Hands-on: 05 object model
Pharo Hands-on: 05 object modelPharo Hands-on: 05 object model
Pharo Hands-on: 05 object model
 
Haskell vs. F# vs. Scala
Haskell vs. F# vs. ScalaHaskell vs. F# vs. Scala
Haskell vs. F# vs. Scala
 
Stoop 432-singleton
Stoop 432-singletonStoop 432-singleton
Stoop 432-singleton
 

Similar to Pharo Roadmap

Smalltalk合同勉強会@名古屋 talk: Pharo introduction
Smalltalk合同勉強会@名古屋 talk: Pharo introductionSmalltalk合同勉強会@名古屋 talk: Pharo introduction
Smalltalk合同勉強会@名古屋 talk: Pharo introductionSerge Stinckwich
 
Pharo
PharoPharo
PharoESUG
 
Businessmodelgeneration preview (2)
Businessmodelgeneration preview (2)Businessmodelgeneration preview (2)
Businessmodelgeneration preview (2)JPaulo Claudino
 
Businessmodelgeneration preview 71358
Businessmodelgeneration preview 71358Businessmodelgeneration preview 71358
Businessmodelgeneration preview 71358RicardoAV1990
 
Businessmodelgeneration preview
Businessmodelgeneration previewBusinessmodelgeneration preview
Businessmodelgeneration previewAlex Oliva
 
Businessmodelgenerationpreview 100125081253-phpapp01
Businessmodelgenerationpreview 100125081253-phpapp01Businessmodelgenerationpreview 100125081253-phpapp01
Businessmodelgenerationpreview 100125081253-phpapp01Emanuele Silveira
 
Business model generation
Business model generationBusiness model generation
Business model generationRicardo Vieira
 
Businessmodelgeneration preview
Businessmodelgeneration previewBusinessmodelgeneration preview
Businessmodelgeneration previewjoanrasconnovoa
 
Businessmodelgenerationpreview 100125081253-phpapp01
Businessmodelgenerationpreview 100125081253-phpapp01Businessmodelgenerationpreview 100125081253-phpapp01
Businessmodelgenerationpreview 100125081253-phpapp01Gabriel Capuia
 
Businessmodelgenerationpreview 100125081253-phpapp01
Businessmodelgenerationpreview 100125081253-phpapp01Businessmodelgenerationpreview 100125081253-phpapp01
Businessmodelgenerationpreview 100125081253-phpapp01Newlink
 
Ostenwalder Business Model Generation Preview
Ostenwalder Business Model Generation PreviewOstenwalder Business Model Generation Preview
Ostenwalder Business Model Generation PreviewRob Blaauboer
 
Businessmodelcanvas 100604022417 Phpapp01
Businessmodelcanvas 100604022417 Phpapp01Businessmodelcanvas 100604022417 Phpapp01
Businessmodelcanvas 100604022417 Phpapp01Ian Kelly
 
Business Model Generation
Business Model GenerationBusiness Model Generation
Business Model GenerationBridge2Food
 
Businessmodelgeneration preview
Businessmodelgeneration previewBusinessmodelgeneration preview
Businessmodelgeneration previewEmprèn UPF
 
UK HealthCare IT Strategic Plan
UK HealthCare IT Strategic PlanUK HealthCare IT Strategic Plan
UK HealthCare IT Strategic PlanTim Tarnowski
 
Talk: Pharo at JM2L 2009
Talk: Pharo at JM2L 2009Talk: Pharo at JM2L 2009
Talk: Pharo at JM2L 2009Marcus Denker
 

Similar to Pharo Roadmap (20)

Smalltalk合同勉強会@名古屋 talk: Pharo introduction
Smalltalk合同勉強会@名古屋 talk: Pharo introductionSmalltalk合同勉強会@名古屋 talk: Pharo introduction
Smalltalk合同勉強会@名古屋 talk: Pharo introduction
 
Pharo
PharoPharo
Pharo
 
Pharo ESUG
Pharo ESUGPharo ESUG
Pharo ESUG
 
Businessmodelgeneration preview (2)
Businessmodelgeneration preview (2)Businessmodelgeneration preview (2)
Businessmodelgeneration preview (2)
 
Businessmodelgeneration preview 71358
Businessmodelgeneration preview 71358Businessmodelgeneration preview 71358
Businessmodelgeneration preview 71358
 
Businessmodelgeneration preview
Businessmodelgeneration previewBusinessmodelgeneration preview
Businessmodelgeneration preview
 
Businessmodelgeneration Preview
Businessmodelgeneration PreviewBusinessmodelgeneration Preview
Businessmodelgeneration Preview
 
Businessmodelgenerationpreview 100125081253-phpapp01
Businessmodelgenerationpreview 100125081253-phpapp01Businessmodelgenerationpreview 100125081253-phpapp01
Businessmodelgenerationpreview 100125081253-phpapp01
 
Business model generation
Business model generationBusiness model generation
Business model generation
 
Businessmodelgeneration preview
Businessmodelgeneration previewBusinessmodelgeneration preview
Businessmodelgeneration preview
 
Businessmodelgenerationpreview 100125081253-phpapp01
Businessmodelgenerationpreview 100125081253-phpapp01Businessmodelgenerationpreview 100125081253-phpapp01
Businessmodelgenerationpreview 100125081253-phpapp01
 
Businessmodelgenerationpreview 100125081253-phpapp01
Businessmodelgenerationpreview 100125081253-phpapp01Businessmodelgenerationpreview 100125081253-phpapp01
Businessmodelgenerationpreview 100125081253-phpapp01
 
Ostenwalder Business Model Generation Preview
Ostenwalder Business Model Generation PreviewOstenwalder Business Model Generation Preview
Ostenwalder Business Model Generation Preview
 
Businessmodelcanvas 100604022417 Phpapp01
Businessmodelcanvas 100604022417 Phpapp01Businessmodelcanvas 100604022417 Phpapp01
Businessmodelcanvas 100604022417 Phpapp01
 
Osterwalders rammeverk
Osterwalders rammeverkOsterwalders rammeverk
Osterwalders rammeverk
 
Business Model Generation
Business Model GenerationBusiness Model Generation
Business Model Generation
 
Businessmodelgeneration preview
Businessmodelgeneration previewBusinessmodelgeneration preview
Businessmodelgeneration preview
 
Business models
Business modelsBusiness models
Business models
 
UK HealthCare IT Strategic Plan
UK HealthCare IT Strategic PlanUK HealthCare IT Strategic Plan
UK HealthCare IT Strategic Plan
 
Talk: Pharo at JM2L 2009
Talk: Pharo at JM2L 2009Talk: Pharo at JM2L 2009
Talk: Pharo at JM2L 2009
 

More from ESUG

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingESUG
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapESUG
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsESUG
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector TuningESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FutureESUG
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the DebuggerESUG
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing ScoreESUG
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptESUG
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsESUG
 

More from ESUG (20)

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 

Recently uploaded

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 

Recently uploaded (20)

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

Pharo Roadmap

  • 1. The Pharo Roadmap M. Denker and S. Ducasse http://www.pharo-project.org
  • 2.
  • 3. Create an ecosystem where business/innovation can bloom
  • 4. Some Pharo’s success stories Seaside.st Yesplan.be, netstyle.ch Pier, DrGeo Cmsbox.ch: Content Management beta9.be: T3 Easy (Pharo server side) Moose: www.moose-technology.org pinesoft.uk.com: MBagger Airflowing
  • 5. Be able to invent our future
  • 6. Done so far 1.3 is released (a lot, a lot, and a lot of improvements :) 1.4 alpha started Jenkins server for everything All VMs are automatically generated using Jenkins
  • 7. Community Ongoing Work Better widgets (A. Plantec, G. Chambers, B. van Ryseghem) Better browsers (B. van Ryseghem, C. Bruni) Key mapper (G. Polito) Serializer (M. Dias, M. Martinez-Peck), Full Proxy (M. Martinez-Peck) New source code model: Ring (V. Uquillas Gomez, A. Kellens, S. Ducasse) New compiler (J. Ressia/M. Denker/JB Arnaud) Zoomable interface (I. Stasenko) Bootstrap (B. van Ryseghem/S. Ducasse) Package distribution infrastructure (D. Henrichs) Network (Zinc S. van Caekenberghe, Ocean N. Bouraqadi, L. Fabresse, J. Laval) Remote Smalltalk (N. Papoulias and N. Bouraqadi)
  • 8. Roadmap Building the infrastructure for the next generation
  • 9. Code Model Infrastructure Able to query all the versions What were the senders of this method in version 13168? What is the diff between the senders in the past and the one now? Support for merging Distributed source code
  • 10. Code Model Infrastructure Ring (V. Uquillaz Gomes/A. Kellens/S.Ducasse) Source code metamodel API compatible with Smalltalk objects Adding layers on top of it Porting all the tools to use it! Reuse tools
  • 11. Next Steps Server for queries New source code model
  • 12. Athens Graphics New Canvas Vector Graphics API Layered Architecture Backend Cairo / OpenGL OpenVG....
  • 13. Next Steps OpenGL bindings using NativeBoost done on Windows Stabilize API Adapt Morphic
  • 14. Opal We need a more flexible and simpler compiler Hooks for DSL support Better API New generation of tools
  • 15. Next Steps Decompiler (was the last missing bit) is nearly finished Soon added in 1.4 Throw away the old compiler Then improving the API
  • 16. Fuel: Fast Serialization Done by M. Diaz, M. Martinez-Peck, (T. Bourgeois & S. Ducasse) Don’t use ImageSegment (removed in 1.4) Fuel is faster (!!) Much more flexible and easier to understand
  • 17. Next Steps Replace existing serializers Migration path Binary code loader
  • 18. Scripting Syntax: Coral We want to write scripts in Pharo :) Headless REPL OS connexion (OSProcess for now) So we get Coral D. Pollet (and S. Ducasse)
  • 19. [ Console puts: 'Before the command'. ] [ "Let's define a command" | command | Console puts: 'duuuuhhh'. command := (CLICommandParser named: 'dostuff') aliases: #('dostuff.coral'); description: 'This command does a lot of stuff. I really mean a lot.'. ]
  • 20. Distributions: towards a certified catalog I want to go to Mars with just a DVD, and still be able to load the projects I want, and without internet, please!
  • 21. Process You use Metacello! You publish in your repo! When you want you can release code to a distribution All the code then is recursively copied to the distribution space All the tests and quality rules are checked People use your code but with a certain level of confidence :)
  • 22. Varia Making sure that we will be able to use announcements instead of SystemChangeNotifier Cleaning Morphic New package infrastructure
  • 23. Package certification Packages should be more self contained Tests LintRules Meta data Run and automatically certified
  • 24. Native Boost By Igor Stasenko (mac, linux and windows 32bits) Generate machine code on the fly :) Implement primitives FFI
  • 25. VM Expand knowledge Welcome newbies and idiots (like Stef) Increase tests Release VM builders from stupid tasks Traceability/Branding
  • 26. VM builds Anybody is now able to build a vm!
  • 27. VM Infrastructure VM validation after ANY changes Automatic recompilation Automatic test regressions
  • 28. Nautilus Throw away StringHolder hierarchy (Yes Browser inherits from StringHolder) Browser based on a model Nautilus by B. van Ryseghem
  • 30. Mini Image Pavel’s Mini image 4.2 mb for Seaside
  • 31. Future? Native boost Google native client Full bootstrap More secure system
  • 32. Pharo Consortium How to sustain Pharo? How to structure the community? Should we always rely on people free time?
  • 33. Consortium You can participate to the consortium: Pay a fee The consortium will pay a full-time engineer to support Pharo tasks
  • 34. When Started discussions with INRIA two years ago INRIA is ok to put money on the table (under negotiation) More than 25 companies are interested Join!
  • 35. Consortium FAQ Pharo will stay free! No negative impact: just a better Pharo People and organization should be able to pay too: a.k.a. Morale License
  • 36. Pharo books Pharo by example translated to french, merci! translated to spanish, gracias! japanese, german started
  • 37. New books are coming Pharo by Example Volume Two (deep into Pharo) Pharo for the Entreprise If you want to contribute... A glimpse at VM
  • 38. Doing a Master with us :) Slim binaries (compressing AST as bytecodes) Virtual Filesystem Fuel-ing the code Source manager Peer to peer sources NativeBoost as a foundational engine Bootstrap next steps
  • 39. Thanks Alexandre Bergel Matthew Fulmer Hilaire Fernandes Julian Fitzell Laurent Laffont Joseph Pelrine Cedric Beler Tudor Girba Alain Plantec Torsten Bergmann Sean Glazier Damien Pollet Matthias Berth Norbert Hartl Lukas Renggli Ralph Boland Dale Henrichs Jorge Ressia Noury Bouraqadi Reinout Heeck Mike Roberts Brian Brown Eric Hochmeister Robert Rothwell Guillermo Polito Keith Hodges David Rotlisberger Damien Cassou Henrik Sperre Johansen Michael Rueger Nicolas Cellier Pavel Krivanek Bill Schwab Gary Chambers Adrian Kuhn Niko Schwarz Miguel Coba Adrian Lienhard Igor Stasenko Gabriel Cotelli Andreas Leidig Francois Stephany Carlos Crosetti Mariano Martinez Peck Serge Stinckwich Cyrille Delaunay Dave Mason Mathieu Suen Simon Denier John McIntosh Lawrence Trutter Marcus Denker Johnaton Meichtry Andrew Tween Ramiro Diaz Trepat Eliot Miranda martin von loewis Stephane Ducasse Hernan Morales Durand Andres Valloud Morales Durand Hernan Philipp Marshall Juan Vuletich Stephan Eggermont Jannik Laval Steven Wirts Luc Fabresse Yann Monclair Hernan Wilkinson Oscar Nierstrasz