SlideShare a Scribd company logo
1 of 16
Download to read offline
Building a scientific workbench in Pharo
Konrad Hinsen 1, 2
Serge Stinckwich 3, 4, 5
1
Centre de Biophysique Moléculaire, Orléans, France
2
Synchrotron SOLEIL, Saint Aubin, France
3
Sorbonne Université, IRD, Unité de Modélisation Mathématiques et Informatique des Systèmes Complexes,
UMMISCO, Bondy, France
4
Université de Yaoundé I, Yaoundé, Cameroon
5
Université de Caen Normandie, Caen, France
27 August 2019
Konrad Hinsen , Serge Stinckwich ( Centre de Biophysique Moléculaire, Orléans, France, Synchrotron SOLEIL, Saint Aubin, France, Sorbonne Université, IRD, Unité de MBuilding a scientific workbench in Pharo 27 August 2019 1 / 16
What’s a scientific workbench?
The IDE of the computational scientist
Supports the tasks of doing science on a computer:
Write and test code
Import and export data
Process data
Perform simulations
Inspect experimental and computed data
Document all of the above
Makes computations reproducible.
Konrad Hinsen , Serge Stinckwich ( Centre de Biophysique Moléculaire, Orléans, France, Synchrotron SOLEIL, Saint Aubin, France, Sorbonne Université, IRD, Unité de MBuilding a scientific workbench in Pharo 27 August 2019 2 / 16
RStudio
Konrad Hinsen , Serge Stinckwich ( Centre de Biophysique Moléculaire, Orléans, France, Synchrotron SOLEIL, Saint Aubin, France, Sorbonne Université, IRD, Unité de MBuilding a scientific workbench in Pharo 27 August 2019 3 / 16
Jupyter
Konrad Hinsen , Serge Stinckwich ( Centre de Biophysique Moléculaire, Orléans, France, Synchrotron SOLEIL, Saint Aubin, France, Sorbonne Université, IRD, Unité de MBuilding a scientific workbench in Pharo 27 August 2019 4 / 16
Emacs
Konrad Hinsen , Serge Stinckwich ( Centre de Biophysique Moléculaire, Orléans, France, Synchrotron SOLEIL, Saint Aubin, France, Sorbonne Université, IRD, Unité de MBuilding a scientific workbench in Pharo 27 August 2019 5 / 16
Shifting priorities
Traditional focus: get work done efficiently
interactive computation
generate plots and tables (for pasting into publications produced outside of the
workbench)
More recent criteria: robust and understandable results
reproducible computations
shared/publishable raw datasets
well-documented computations
document while you compute
Konrad Hinsen , Serge Stinckwich ( Centre de Biophysique Moléculaire, Orléans, France, Synchrotron SOLEIL, Saint Aubin, France, Sorbonne Université, IRD, Unité de MBuilding a scientific workbench in Pharo 27 August 2019 6 / 16
The state of the art: computational notebooks
A fusion of scripts, REPLs, and literate programming, invented in the 1980’s by
Mathematica
A linear sequence of so-called “cells”
Three cell types:
Text cells hold rich text for documentation
Code cells contain code snippets
Output cells show the output of one code snippet (text or graphics)
Code cells can be executed one by one, manually...
... or sequentially as part of a whole-notebook execution.
Many implementations: Mathematica, Jupyter, R Markdown, Emacs/Org-Mode, ...
Konrad Hinsen , Serge Stinckwich ( Centre de Biophysique Moléculaire, Orléans, France, Synchrotron SOLEIL, Saint Aubin, France, Sorbonne Université, IRD, Unité de MBuilding a scientific workbench in Pharo 27 August 2019 7 / 16
Limitations of notebooks
Linear sequence of cells: no way to structure or modularize
Made worse by shared mutable state...
... and even worse by interactive cell execution.
Documentation follows code structure: no way to relegate technical details to an
appendix
Data dependencies are not explicit, nor easily visible.
Neither code nor data are reusable by other notebooks.
Different tools/user interfaces for notebooks and library code.
Notebooks blissfully ignore decades of software engineering achievements.
Konrad Hinsen , Serge Stinckwich ( Centre de Biophysique Moléculaire, Orléans, France, Synchrotron SOLEIL, Saint Aubin, France, Sorbonne Université, IRD, Unité de MBuilding a scientific workbench in Pharo 27 August 2019 8 / 16
Smalltalk to the rescue
Hypothesis:
A Smalltalk system is a much better starting point
for designing a scientific workbench than a REPL.
Nice properties:
well-known to this audience!
Missing pieces:
A documentation tool that allows embedding code and data.
Management of computational tasks and data dependencies
to replace the notebook’s linear control flow
Support libraries for scientific computing.
Konrad Hinsen , Serge Stinckwich ( Centre de Biophysique Moléculaire, Orléans, France, Synchrotron SOLEIL, Saint Aubin, France, Sorbonne Université, IRD, Unité de MBuilding a scientific workbench in Pharo 27 August 2019 9 / 16
Nothing new
Konrad Hinsen , Serge Stinckwich ( Centre de Biophysique Moléculaire, Orléans, France, Synchrotron SOLEIL, Saint Aubin, France, Sorbonne Université, IRD, Unité de MBuilding a scientific workbench in Pharo 27 August 2019 10 / 16
Glamorous Toolkit
Nice properties:
presented yesterday to this audience
specifically for a scientific workbench: an excellent documentation tool
Missing pieces:
Management of computational tasks and data dependencies
to replace the notebook’s linear control flow
Konrad Hinsen , Serge Stinckwich ( Centre de Biophysique Moléculaire, Orléans, France, Synchrotron SOLEIL, Saint Aubin, France, Sorbonne Université, IRD, Unité de MBuilding a scientific workbench in Pharo 27 August 2019 11 / 16
ActivePapers
A research project about performing and communicating computer-aided research
Started in 2011.
Initial focus: reproducible high-performance computing.
Management of computational tasks and data dependencies
Current implementation based on Python...
... and a lousy user interface: very basic CLI
Konrad Hinsen , Serge Stinckwich ( Centre de Biophysique Moléculaire, Orléans, France, Synchrotron SOLEIL, Saint Aubin, France, Sorbonne Université, IRD, Unité de MBuilding a scientific workbench in Pharo 27 August 2019 12 / 16
PolyMath
Release 1.0 last week
300 classes, 50 packages, 24K LOC, 806 unit tests
Ordinary differential Equations, Random Number Generators, Linear algebra,
Matrices, Complex Numbers, FFT, Polynomials, Probability distributions, ...
more recently: Automatic differentiation, Principal Component Analysis, t-SNE,
DataFrame to do data analysis
Talk on PolyMath next thursday
Konrad Hinsen , Serge Stinckwich ( Centre de Biophysique Moléculaire, Orléans, France, Synchrotron SOLEIL, Saint Aubin, France, Sorbonne Université, IRD, Unité de MBuilding a scientific workbench in Pharo 27 August 2019 13 / 16
Working hypothesis
Pharo + Glamorous Toolkit + PolyMath + ActivePapers
= Scientific Workbench
Konrad Hinsen , Serge Stinckwich ( Centre de Biophysique Moléculaire, Orléans, France, Synchrotron SOLEIL, Saint Aubin, France, Sorbonne Université, IRD, Unité de MBuilding a scientific workbench in Pharo 27 August 2019 14 / 16
Demo
Konrad Hinsen , Serge Stinckwich ( Centre de Biophysique Moléculaire, Orléans, France, Synchrotron SOLEIL, Saint Aubin, France, Sorbonne Université, IRD, Unité de MBuilding a scientific workbench in Pharo 27 August 2019 15 / 16
Outlook
A lot of work remains to be done:
More domain-specific libraries
Interfaces to other languages
Data management outside of the Pharo image
Publishing ActivePapers on the Web
Konrad Hinsen , Serge Stinckwich ( Centre de Biophysique Moléculaire, Orléans, France, Synchrotron SOLEIL, Saint Aubin, France, Sorbonne Université, IRD, Unité de MBuilding a scientific workbench in Pharo 27 August 2019 16 / 16

More Related Content

Similar to Building a scientific workbench in Pharo

OpenAIRE presentation for ICT - Brussels 27-29 Sept, 2010
OpenAIRE presentation for  ICT - Brussels 27-29 Sept, 2010OpenAIRE presentation for  ICT - Brussels 27-29 Sept, 2010
OpenAIRE presentation for ICT - Brussels 27-29 Sept, 2010OpenAIRE
 
Reproducible Open Science with EGI Notebooks, Binder and Zenodo
Reproducible Open Science with EGI Notebooks, Binder and ZenodoReproducible Open Science with EGI Notebooks, Binder and Zenodo
Reproducible Open Science with EGI Notebooks, Binder and ZenodoEGI Federation
 
Cloud Services for Education - HNSciCloud applied to the UP2U project
Cloud Services for Education - HNSciCloud applied to the UP2U projectCloud Services for Education - HNSciCloud applied to the UP2U project
Cloud Services for Education - HNSciCloud applied to the UP2U projectHelix Nebula The Science Cloud
 
OpenAIRE at the 8th e-Infrastructure Concetration Meeting Nov 5, 2010 CERN -...
OpenAIRE  at the 8th e-Infrastructure Concetration Meeting Nov 5, 2010 CERN -...OpenAIRE  at the 8th e-Infrastructure Concetration Meeting Nov 5, 2010 CERN -...
OpenAIRE at the 8th e-Infrastructure Concetration Meeting Nov 5, 2010 CERN -...OpenAIRE
 
#OSSPARIS17 - Logiciel libre pour une science reproductible, par ROBERTO DI C...
#OSSPARIS17 - Logiciel libre pour une science reproductible, par ROBERTO DI C...#OSSPARIS17 - Logiciel libre pour une science reproductible, par ROBERTO DI C...
#OSSPARIS17 - Logiciel libre pour une science reproductible, par ROBERTO DI C...Paris Open Source Summit
 
The Community of Interest in France
The Community of Interest in FranceThe Community of Interest in France
The Community of Interest in FranceChristian Mercat
 
ESWC2010 Closing Ceremony
ESWC2010 Closing CeremonyESWC2010 Closing Ceremony
ESWC2010 Closing CeremonyLora Aroyo
 
An Ecosystem for Linked Humanities Data
An Ecosystem for Linked Humanities DataAn Ecosystem for Linked Humanities Data
An Ecosystem for Linked Humanities DataRinke Hoekstra
 
Towards Reproducible Science: a few building blocks from my personal experience
Towards Reproducible Science: a few building blocks from my personal experienceTowards Reproducible Science: a few building blocks from my personal experience
Towards Reproducible Science: a few building blocks from my personal experienceOscar Corcho
 
National scale research computing and beyond pearc panel 2017
National scale research computing and beyond   pearc panel 2017National scale research computing and beyond   pearc panel 2017
National scale research computing and beyond pearc panel 2017Gregory Newby
 
Python for High Performance and Scientific Computing
Python for High Performance and Scientific ComputingPython for High Performance and Scientific Computing
Python for High Performance and Scientific ComputingAndreas Schreiber
 
Reproducibility in computer-assisted research
Reproducibility in computer-assisted researchReproducibility in computer-assisted research
Reproducibility in computer-assisted researchkhinsen
 
Interactions 34: The Sorbonne Universities (SU) cluster and interdisciplinarity
Interactions 34: The Sorbonne Universities (SU) cluster and interdisciplinarityInteractions 34: The Sorbonne Universities (SU) cluster and interdisciplinarity
Interactions 34: The Sorbonne Universities (SU) cluster and interdisciplinarityUniversité de Technologie de Compiègne
 
ESEC/FSE 2011 CFP - A4
ESEC/FSE 2011 CFP - A4ESEC/FSE 2011 CFP - A4
ESEC/FSE 2011 CFP - A4ESEC/FSE 2011
 
IC-SDV 2019: Semantic e-Science - The Future of Information Provision in the ...
IC-SDV 2019: Semantic e-Science - The Future of Information Provision in the ...IC-SDV 2019: Semantic e-Science - The Future of Information Provision in the ...
IC-SDV 2019: Semantic e-Science - The Future of Information Provision in the ...Dr. Haxel Consult
 

Similar to Building a scientific workbench in Pharo (20)

OpenAIRE presentation for ICT - Brussels 27-29 Sept, 2010
OpenAIRE presentation for  ICT - Brussels 27-29 Sept, 2010OpenAIRE presentation for  ICT - Brussels 27-29 Sept, 2010
OpenAIRE presentation for ICT - Brussels 27-29 Sept, 2010
 
Reproducible Open Science with EGI Notebooks, Binder and Zenodo
Reproducible Open Science with EGI Notebooks, Binder and ZenodoReproducible Open Science with EGI Notebooks, Binder and Zenodo
Reproducible Open Science with EGI Notebooks, Binder and Zenodo
 
Cloud Services for Education - HNSciCloud applied to the UP2U project
Cloud Services for Education - HNSciCloud applied to the UP2U projectCloud Services for Education - HNSciCloud applied to the UP2U project
Cloud Services for Education - HNSciCloud applied to the UP2U project
 
OpenAIRE at the 8th e-Infrastructure Concetration Meeting Nov 5, 2010 CERN -...
OpenAIRE  at the 8th e-Infrastructure Concetration Meeting Nov 5, 2010 CERN -...OpenAIRE  at the 8th e-Infrastructure Concetration Meeting Nov 5, 2010 CERN -...
OpenAIRE at the 8th e-Infrastructure Concetration Meeting Nov 5, 2010 CERN -...
 
#OSSPARIS17 - Logiciel libre pour une science reproductible, par ROBERTO DI C...
#OSSPARIS17 - Logiciel libre pour une science reproductible, par ROBERTO DI C...#OSSPARIS17 - Logiciel libre pour une science reproductible, par ROBERTO DI C...
#OSSPARIS17 - Logiciel libre pour une science reproductible, par ROBERTO DI C...
 
The Community of Interest in France
The Community of Interest in FranceThe Community of Interest in France
The Community of Interest in France
 
ESWC2010 Closing Ceremony
ESWC2010 Closing CeremonyESWC2010 Closing Ceremony
ESWC2010 Closing Ceremony
 
An Ecosystem for Linked Humanities Data
An Ecosystem for Linked Humanities DataAn Ecosystem for Linked Humanities Data
An Ecosystem for Linked Humanities Data
 
Towards Reproducible Science: a few building blocks from my personal experience
Towards Reproducible Science: a few building blocks from my personal experienceTowards Reproducible Science: a few building blocks from my personal experience
Towards Reproducible Science: a few building blocks from my personal experience
 
National scale research computing and beyond pearc panel 2017
National scale research computing and beyond   pearc panel 2017National scale research computing and beyond   pearc panel 2017
National scale research computing and beyond pearc panel 2017
 
Research2.0
Research2.0Research2.0
Research2.0
 
Python for High Performance and Scientific Computing
Python for High Performance and Scientific ComputingPython for High Performance and Scientific Computing
Python for High Performance and Scientific Computing
 
Reproducibility in computer-assisted research
Reproducibility in computer-assisted researchReproducibility in computer-assisted research
Reproducibility in computer-assisted research
 
Interactions 34: The Sorbonne Universities (SU) cluster and interdisciplinarity
Interactions 34: The Sorbonne Universities (SU) cluster and interdisciplinarityInteractions 34: The Sorbonne Universities (SU) cluster and interdisciplinarity
Interactions 34: The Sorbonne Universities (SU) cluster and interdisciplinarity
 
Research2.0
Research2.0Research2.0
Research2.0
 
Demo Presentation Wageningen Text Mining Workshop 2007
Demo Presentation Wageningen Text Mining Workshop 2007Demo Presentation Wageningen Text Mining Workshop 2007
Demo Presentation Wageningen Text Mining Workshop 2007
 
A biologist in e-Science
A biologist in e-ScienceA biologist in e-Science
A biologist in e-Science
 
Reproducible Science and Deep Software Variability
Reproducible Science and Deep Software VariabilityReproducible Science and Deep Software Variability
Reproducible Science and Deep Software Variability
 
ESEC/FSE 2011 CFP - A4
ESEC/FSE 2011 CFP - A4ESEC/FSE 2011 CFP - A4
ESEC/FSE 2011 CFP - A4
 
IC-SDV 2019: Semantic e-Science - The Future of Information Provision in the ...
IC-SDV 2019: Semantic e-Science - The Future of Information Provision in the ...IC-SDV 2019: Semantic e-Science - The Future of Information Provision in the ...
IC-SDV 2019: Semantic e-Science - The Future of Information Provision in the ...
 

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

WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...masabamasaba
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 

Recently uploaded (20)

WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 

Building a scientific workbench in Pharo

  • 1. Building a scientific workbench in Pharo Konrad Hinsen 1, 2 Serge Stinckwich 3, 4, 5 1 Centre de Biophysique Moléculaire, Orléans, France 2 Synchrotron SOLEIL, Saint Aubin, France 3 Sorbonne Université, IRD, Unité de Modélisation Mathématiques et Informatique des Systèmes Complexes, UMMISCO, Bondy, France 4 Université de Yaoundé I, Yaoundé, Cameroon 5 Université de Caen Normandie, Caen, France 27 August 2019 Konrad Hinsen , Serge Stinckwich ( Centre de Biophysique Moléculaire, Orléans, France, Synchrotron SOLEIL, Saint Aubin, France, Sorbonne Université, IRD, Unité de MBuilding a scientific workbench in Pharo 27 August 2019 1 / 16
  • 2. What’s a scientific workbench? The IDE of the computational scientist Supports the tasks of doing science on a computer: Write and test code Import and export data Process data Perform simulations Inspect experimental and computed data Document all of the above Makes computations reproducible. Konrad Hinsen , Serge Stinckwich ( Centre de Biophysique Moléculaire, Orléans, France, Synchrotron SOLEIL, Saint Aubin, France, Sorbonne Université, IRD, Unité de MBuilding a scientific workbench in Pharo 27 August 2019 2 / 16
  • 3. RStudio Konrad Hinsen , Serge Stinckwich ( Centre de Biophysique Moléculaire, Orléans, France, Synchrotron SOLEIL, Saint Aubin, France, Sorbonne Université, IRD, Unité de MBuilding a scientific workbench in Pharo 27 August 2019 3 / 16
  • 4. Jupyter Konrad Hinsen , Serge Stinckwich ( Centre de Biophysique Moléculaire, Orléans, France, Synchrotron SOLEIL, Saint Aubin, France, Sorbonne Université, IRD, Unité de MBuilding a scientific workbench in Pharo 27 August 2019 4 / 16
  • 5. Emacs Konrad Hinsen , Serge Stinckwich ( Centre de Biophysique Moléculaire, Orléans, France, Synchrotron SOLEIL, Saint Aubin, France, Sorbonne Université, IRD, Unité de MBuilding a scientific workbench in Pharo 27 August 2019 5 / 16
  • 6. Shifting priorities Traditional focus: get work done efficiently interactive computation generate plots and tables (for pasting into publications produced outside of the workbench) More recent criteria: robust and understandable results reproducible computations shared/publishable raw datasets well-documented computations document while you compute Konrad Hinsen , Serge Stinckwich ( Centre de Biophysique Moléculaire, Orléans, France, Synchrotron SOLEIL, Saint Aubin, France, Sorbonne Université, IRD, Unité de MBuilding a scientific workbench in Pharo 27 August 2019 6 / 16
  • 7. The state of the art: computational notebooks A fusion of scripts, REPLs, and literate programming, invented in the 1980’s by Mathematica A linear sequence of so-called “cells” Three cell types: Text cells hold rich text for documentation Code cells contain code snippets Output cells show the output of one code snippet (text or graphics) Code cells can be executed one by one, manually... ... or sequentially as part of a whole-notebook execution. Many implementations: Mathematica, Jupyter, R Markdown, Emacs/Org-Mode, ... Konrad Hinsen , Serge Stinckwich ( Centre de Biophysique Moléculaire, Orléans, France, Synchrotron SOLEIL, Saint Aubin, France, Sorbonne Université, IRD, Unité de MBuilding a scientific workbench in Pharo 27 August 2019 7 / 16
  • 8. Limitations of notebooks Linear sequence of cells: no way to structure or modularize Made worse by shared mutable state... ... and even worse by interactive cell execution. Documentation follows code structure: no way to relegate technical details to an appendix Data dependencies are not explicit, nor easily visible. Neither code nor data are reusable by other notebooks. Different tools/user interfaces for notebooks and library code. Notebooks blissfully ignore decades of software engineering achievements. Konrad Hinsen , Serge Stinckwich ( Centre de Biophysique Moléculaire, Orléans, France, Synchrotron SOLEIL, Saint Aubin, France, Sorbonne Université, IRD, Unité de MBuilding a scientific workbench in Pharo 27 August 2019 8 / 16
  • 9. Smalltalk to the rescue Hypothesis: A Smalltalk system is a much better starting point for designing a scientific workbench than a REPL. Nice properties: well-known to this audience! Missing pieces: A documentation tool that allows embedding code and data. Management of computational tasks and data dependencies to replace the notebook’s linear control flow Support libraries for scientific computing. Konrad Hinsen , Serge Stinckwich ( Centre de Biophysique Moléculaire, Orléans, France, Synchrotron SOLEIL, Saint Aubin, France, Sorbonne Université, IRD, Unité de MBuilding a scientific workbench in Pharo 27 August 2019 9 / 16
  • 10. Nothing new Konrad Hinsen , Serge Stinckwich ( Centre de Biophysique Moléculaire, Orléans, France, Synchrotron SOLEIL, Saint Aubin, France, Sorbonne Université, IRD, Unité de MBuilding a scientific workbench in Pharo 27 August 2019 10 / 16
  • 11. Glamorous Toolkit Nice properties: presented yesterday to this audience specifically for a scientific workbench: an excellent documentation tool Missing pieces: Management of computational tasks and data dependencies to replace the notebook’s linear control flow Konrad Hinsen , Serge Stinckwich ( Centre de Biophysique Moléculaire, Orléans, France, Synchrotron SOLEIL, Saint Aubin, France, Sorbonne Université, IRD, Unité de MBuilding a scientific workbench in Pharo 27 August 2019 11 / 16
  • 12. ActivePapers A research project about performing and communicating computer-aided research Started in 2011. Initial focus: reproducible high-performance computing. Management of computational tasks and data dependencies Current implementation based on Python... ... and a lousy user interface: very basic CLI Konrad Hinsen , Serge Stinckwich ( Centre de Biophysique Moléculaire, Orléans, France, Synchrotron SOLEIL, Saint Aubin, France, Sorbonne Université, IRD, Unité de MBuilding a scientific workbench in Pharo 27 August 2019 12 / 16
  • 13. PolyMath Release 1.0 last week 300 classes, 50 packages, 24K LOC, 806 unit tests Ordinary differential Equations, Random Number Generators, Linear algebra, Matrices, Complex Numbers, FFT, Polynomials, Probability distributions, ... more recently: Automatic differentiation, Principal Component Analysis, t-SNE, DataFrame to do data analysis Talk on PolyMath next thursday Konrad Hinsen , Serge Stinckwich ( Centre de Biophysique Moléculaire, Orléans, France, Synchrotron SOLEIL, Saint Aubin, France, Sorbonne Université, IRD, Unité de MBuilding a scientific workbench in Pharo 27 August 2019 13 / 16
  • 14. Working hypothesis Pharo + Glamorous Toolkit + PolyMath + ActivePapers = Scientific Workbench Konrad Hinsen , Serge Stinckwich ( Centre de Biophysique Moléculaire, Orléans, France, Synchrotron SOLEIL, Saint Aubin, France, Sorbonne Université, IRD, Unité de MBuilding a scientific workbench in Pharo 27 August 2019 14 / 16
  • 15. Demo Konrad Hinsen , Serge Stinckwich ( Centre de Biophysique Moléculaire, Orléans, France, Synchrotron SOLEIL, Saint Aubin, France, Sorbonne Université, IRD, Unité de MBuilding a scientific workbench in Pharo 27 August 2019 15 / 16
  • 16. Outlook A lot of work remains to be done: More domain-specific libraries Interfaces to other languages Data management outside of the Pharo image Publishing ActivePapers on the Web Konrad Hinsen , Serge Stinckwich ( Centre de Biophysique Moléculaire, Orléans, France, Synchrotron SOLEIL, Saint Aubin, France, Sorbonne Université, IRD, Unité de MBuilding a scientific workbench in Pharo 27 August 2019 16 / 16