![Page 1: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/1.jpg)
How worth is an end-user?
http://stephane.ducasse.free.fr
Platforms and Research: The case of Pharo and Moose
����
![Page 2: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/2.jpg)
Me in a Nutshell• Inria Directeur de recherche • Head of RMOD team (7 permanents, 20 people) • 4 years scientific advisors of Inria Lille (300 people) • 10 years Prof. in Software composition Group • Wrote several open-source books • Wrote many articles (h-index 47 - ~ 10000 citations) • Leading the Pharo community http://www.pharo.org • Co-funder of http://www.synectique.eu
![Page 3: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/3.jpg)
![Page 4: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/4.jpg)
A kind of strange roadmap
• A thought about (bio) diversity
• Some questions about value
• Two Platforms
• Some Research @ RMOD
![Page 5: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/5.jpg)
![Page 6: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/6.jpg)
In biology diversity is a measure of ecosystem wealth
![Page 7: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/7.jpg)
Endemic adjective, Also, endemical 1. natural to or characteristic of a specific people or place; native; indigenous
![Page 8: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/8.jpg)
An endemic species is one whose habitat is restricted to a particular area.
An endemic species is one whose habitat is restricted to a particular area.
![Page 9: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/9.jpg)
In biology diversity is a measure of
ecosystem quality (wealth)Socrota Island
![Page 10: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/10.jpg)
As of 1990, Socrota counted 700 endemic species
![Page 11: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/11.jpg)
As of 1999, England counted 47 floral endemic
species
![Page 12: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/12.jpg)
Which one would you keep and preserve?
![Page 13: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/13.jpg)
Even without a french perspective … we would
preserve Socrota :)
![Page 14: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/14.jpg)
Why we do not value diversity in CS research?
![Page 15: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/15.jpg)
Why should we all follow the trend to be relevant?
![Page 16: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/16.jpg)
In 2002 I taught JavaScript !
but I was not cool
![Page 17: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/17.jpg)
In 2014 I do not teach JavaScript
but I’m still not cool ;)
![Page 18: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/18.jpg)
Back in 1998, Java was such a dogma that we (W.De Meuter, T. D’Hondt and
Ole Madsen) created of the “OO Language engineering in Post
Java-Area” Int. Workshop
![Page 19: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/19.jpg)
![Page 20: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/20.jpg)
How did we succeed to escape from Cobol?
![Page 21: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/21.jpg)
How can we influence that the next language will exhibit
different properties if we do not explore different approaches?
![Page 22: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/22.jpg)
“your approach is interesting but it does not apply to Java” !
![Page 23: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/23.jpg)
“your approach is interesting but it does not apply to Java” !
luckily
![Page 24: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/24.jpg)
“your approach is interesting but it does not apply to Java” !
luckily but often wrong statement,of course :)
![Page 25: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/25.jpg)
![Page 26: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/26.jpg)
When we evaluate other researchers…
![Page 27: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/27.jpg)
We count…
![Page 28: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/28.jpg)
Papers
![Page 29: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/29.jpg)
![Page 30: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/30.jpg)
Papers
![Page 31: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/31.jpg)
![Page 32: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/32.jpg)
Papers
![Page 33: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/33.jpg)
![Page 34: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/34.jpg)
ah yes also !
PC participation and keynotes :)
![Page 35: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/35.jpg)
also **boring** no impact editorial board and admin tasks
![Page 36: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/36.jpg)
This is cannot be the only measures
![Page 37: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/37.jpg)
![Page 38: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/38.jpg)
How many papers is worth one user?
![Page 39: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/39.jpg)
(Not one of our students! Just a real end user)
![Page 40: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/40.jpg)
How many papers is worth one real user?
![Page 41: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/41.jpg)
How many papers is worth a book for normal
people?
![Page 42: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/42.jpg)
Normal people do not refer to your work (they
use it) - no citation carrot
![Page 43: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/43.jpg)
(Designing this keynote I had a thought about
DrScheme/Racket guys! I value your work, guys!)
![Page 44: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/44.jpg)
How many papers is worth a startup?
![Page 45: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/45.jpg)
I just have the questions you have the answer
:)
![Page 46: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/46.jpg)
Stop ranting! Now the fun
![Page 47: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/47.jpg)
����
![Page 48: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/48.jpg)
Non-permanent staff
• 1-2 Engineers
• 5-7 PhDs
• 1-2 PostDocs
• 3-5 interns
Created in 2009Permanent staff
• S. Ducasse, DR2 INRIA• D. Pollet, MCF Lille• N. Anquetil, MCF Lille• M. Denker, CR1 INRIA• D. Cassou, MCF Lille• A. Etien, MCF Lille
48
We are hiring!
![Page 49: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/49.jpg)
Objectives
• Objective 1: Reengineering
How to maintain/evolve large software systems?
• Objective 2: Supporting evolution and isolation
Revisiting fundamental aspects of OO languages
• Objective 3: Ecosystem around Pharo
Platform used to create wealth and innovation
49
![Page 50: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/50.jpg)
Synergy
Languages & IDEReengineering
50
![Page 51: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/51.jpg)
Synergy
Languages & IDEReengineering
51
• 500 KLoC• 5000 classes
• 230 KLoC• 2400 classes
![Page 52: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/52.jpg)
Synergy
Languages & IDEReengineering
52
Pharo 4.0 released last April• 1700 issues closed• replacement of 3 core tools• 1st-class instance variables (slots)• new GUI framework (Glamour)• …
Moose 5.1
![Page 53: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/53.jpg)
Languages & IDEReengineering
53
Synergy
![Page 54: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/54.jpg)
Synergy
27universities
15researchgroups
50 companies
Languages & IDEReengineering
54
![Page 55: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/55.jpg)
Synergy
27universities
15researchgroups
50 companies
Languages & IDEReengineering
55
![Page 56: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/56.jpg)
Synergy
27universities
15researchgroups
50 companies
Languages & IDE
56
• 77 contributors to Pharo 4.0• 215 license agreements• 70 association members• 13 industrial consortium members
![Page 57: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/57.jpg)
Synergy
23universities
13researchgroups
50 companies
Languages & IDEReengineering
57
![Page 58: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/58.jpg)
Synergy
23universities
13researchgroups
50 companies
Languages & IDEReengineering
58
![Page 59: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/59.jpg)
Synergy
23universities
13researchgroups
50 companies
Languages & IDEReengineering
59
![Page 60: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/60.jpg)
Synergy
23universities
13researchgroups
50 companies
Languages & IDEReengineering
60
![Page 61: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/61.jpg)
Pharo?
![Page 62: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/62.jpg)
Pharo!http://www.pharo.org System: Pure object language + full IDE Inspired by Smalltalk - fork in 2008 of Squeak Powerful, elegant and fun to program Great community Living system under your fingers
![Page 63: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/63.jpg)
Elegant!
• Full syntax on a postcard
• Simple but powerful object model
![Page 64: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/64.jpg)
Complete Syntax on a Postcard
![Page 65: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/65.jpg)
Object Model• Dynamically typed
• **Everything** is an instance of a class
• All methods are public and virtual
• Attributes are protected
• Single Inheritance
![Page 66: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/66.jpg)
Immersive?
![Page 67: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/67.jpg)
Immersive!
• Deep contact with objects
• Highly interactive programming sessions
• Reflective, inspectable
![Page 68: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/68.jpg)
http://youtu.be/CuimMwuZiGA
![Page 69: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/69.jpg)
Any object can be lively updated 3D Network connection Dynamic web applications GPU Code
![Page 70: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/70.jpg)
Learning from the system…
![Page 71: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/71.jpg)
Click on it :) Cmd+shift+option
• Cmd-Shift+option
![Page 72: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/72.jpg)
*give* examples and get the methods that works!
![Page 73: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/73.jpg)
A system to learn advanced oo design
![Page 74: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/74.jpg)
How to implement not?
• false not -> true
• true not -> false
![Page 75: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/75.jpg)
Let the receiver decide!
![Page 76: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/76.jpg)
Not implementation!
False>>not ^true
!
True>>not ^false
![Page 77: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/77.jpg)
Check in the system
![Page 78: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/78.jpg)
Message sends act as case statements
![Page 79: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/79.jpg)
OOP: the Art of Dispatching
Operation1Operation2
AttributeAttribute
Fat ClassClass
OperationA
OperationB'
OperationC'
OperationAttribute
BOperation
C
Vs.
![Page 80: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/80.jpg)
Pharo’s vision
![Page 81: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/81.jpg)
A powerful engine to invent (y)our future
![Page 82: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/82.jpg)
An ecosystem where innovation/business bloom
![Page 83: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/83.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. de Bretagne Occidentale • Uni. of Tomsk • Uni. of Fernhagen • IT University of Copenhagen • Uni. Cat del Sacro Cuore of Brescia • Uni. Lyon • Uni. Yaounde
Pharo's Teachers
![Page 84: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/84.jpg)
Lafhis (AR)Software Composition Group (CH)CAR (FR)RMOD (FR) Ummisco (IRD) Reveal (CH) Lysic (FR)CEA-List (FR)
Research GroupsUqbar (AR) OC (FR) CCMI-FIT (CZ) ASERG (BR) Pleiad (CL)
![Page 85: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/85.jpg)
www.2denker.de www.airflowing.com
www.beta9.be www.bombardier.com
www.cmsbox.com www.finworks.biz
seaside.gemstone.com www.inceptive.be www.majcon.de
www.mindclue.ch www.miriamtech.com
www.netstyle.ch www.panasoft.com www.pinesoft.co.uk
www.promedmedical.net
www.sharedlogic.ca www.smallworks.com.ar
www.trantaria.com www.yesplan.be
www.synectique.eu www.sorabito.com
www.objectprofile.com www.pharocloud.com debrispublishing.com
spesenfuchs.de norizzk.com
!
Some Companies
![Page 86: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/86.jpg)
Pharo Web Stack is Gorgeous
• Seaside (component, Javascript, REST)
• Zinc (HTTP, HTTPS, REST)
• Magritte Metamodelling (no form)
• Protocols/Encoding: Oauth, JSON, STON,…
• Database: noSql, mongoDB, riak, relational databases
![Page 87: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/87.jpg)
Some Success Stories
![Page 88: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/88.jpg)
iBizLog - http://www.ibizlog.com
A product by SmallworksTuesday, May 15, 12
Full meta shop developed in 5
months one person
![Page 89: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/89.jpg)
Developed by one developer in three months (Java team estimated
2 yearsSold to another bank
![Page 90: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/90.jpg)
Works on linux, mac, windows, android, OLPC
![Page 91: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/91.jpg)
Pharo is our vehicule
![Page 92: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/92.jpg)
**every** single day we improve it
![Page 93: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/93.jpg)
Pharo is YOURS you can learn and
help
![Page 94: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/94.jpg)
we feel responsible
![Page 95: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/95.jpg)
Industrial Consortium
http://consortium.pharo.org
• Promote Pharo
• Sustain Pharo development
• Provide trustable visibility
• Provide support
![Page 96: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/96.jpg)
![Page 97: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/97.jpg)
Pharo is an Enabler
“One of the things that drew me to do the Delay refactoring, is simply that I could. That is, I was amazed that I could dig so deep so easily, see a path to improvement and effect change at a fundamental level. … That sense of mastery is seductive.” Ben Coman
![Page 98: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/98.jpg)
Enabler: Turtles all the way
A. Bryant developed Seaside in Pharo’s ancestor (he knew ruby, python, scheme, C, objective-C,…).
Because he could manipulate the stack behind the back of developers. Seaside (http://www.seaside.st) is based on on-demand stack reification.
![Page 99: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/99.jpg)
Fun, simple Excellent for teaching Pure & elegant Highly productive Empowering Tools Full access
!
http://pharo.org
![Page 100: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/100.jpg)
Moose
SCGGlamorous Team
Roassal ObjectProfile
A community work
����
Moose is a platform for software and data analysis. It helps programmers craft custom analyses cheaply.
http://moosetechnology.org
![Page 101: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/101.jpg)
Software is
Complex
![Page 102: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/102.jpg)
Software is a living entity...• Early decisions were certainly good at that
time
• But the context changes
• Customers change
• Technology changes
• People change
![Page 103: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/103.jpg)
We only maintain useful successful software
![Page 104: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/104.jpg)
Maintenance is continuous Development
Between 50% and 90% of global effort is spent on “maintenance” !
18% Corrective (fixing reported errors)
18% Adaptive (new platforms or OS)
60% Perfective (new functionality)
4% Other
“Maintenance”
![Page 105: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/105.jpg)
50% of development time is lost trying to understand code !
We lose a lot of time with inappropriate and ineffective practices
Between 50% and 80% of the overall cost is spent in the
evolution
![Page 106: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/106.jpg)
RMODRMoD: code analysis, metamodeling, software metrics, program understanding, program visualization, evolution analysis, refactorings, legacy code, quality, ... !Current focus
Remodularization analyses Quality models (PSA-Airfrance) Towards semantic merge Old and odd language analyses Rule and bug assessment
Collaborations Soft-VUB (Belgium), Pleiad (Chile) UFMG (Brazil), SCG (Swiss), LIRMM
Representation Transformations
Reverse
Engineering
Analyses
Evolution
106
![Page 107: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/107.jpg)
S.Ducasse LSE����
107
Representation Transformations
Reverse
Engineering
Analyses
Evolution
Language Independent Meta Model (FAMIX) An Extensible Reengineering Environment
Reengineering PatternsVersion Analyses Support Evolution Rules assessmentDependencies between/inside branches HISMO metamodel!
Understanding Large SystemsStatic/Dynamic Information Feature AnalysisClass Understanding Package BlueprintsDistribution Maps!!
Software Metrics Quality ModelsDuplicated Code IdentificationTest GenerationCycle and Layer IdentificationMerging technicsRules assessment!
Language Independent Refactorings
![Page 108: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/108.jpg)
}
{
}
{
}
{}
{
}
{
McCabe = 21LOC = 75
3,000
classes select: #isGod ...
![Page 109: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/109.jpg)
}
{
}
{
}
{}
{
}
{
McCabe = 21LOC = 75
3,000
classes select: #isGod ...
![Page 110: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/110.jpg)
![Page 111: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/111.jpg)
A picture tells a thousand words
![Page 112: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/112.jpg)
![Page 113: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/113.jpg)
Not all pictures tell a
thousand words
![Page 114: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/114.jpg)
System Complexity shows class hierarchies
Lanza, Ducasse 2003
![Page 115: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/115.jpg)
Class Blueprint shows class internals
Ducasse, Lanza 2005
![Page 116: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/116.jpg)
Data!
Model
Develop Analysis
Take decision
Dedicated Tools
!
Analysis
Analysis should lead to a decision
![Page 117: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/117.jpg)
Example : Who is behind package X ?
(1) Extraction
(2) Modèle
(4) Visualisation
(3) Analyses
![Page 118: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/118.jpg)
!
Step 1 - Model Creation/Import
(1) Extraction
(2) Modèle
(4) Visualisation
(3) Analyses
Definition of a model to represent entities Data Extraction (CVS...)
![Page 119: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/119.jpg)
!
Step 2 - Analyses
(1) Extraction
(2) Modèle
(4) Visualisation
(3) Analyses
Who wrote how many lines of code?
![Page 120: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/120.jpg)
Step : 3 - Creating the Map
![Page 121: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/121.jpg)
JBoss at a glance !
Interactive tool Data in perspective !
(1) Extraction
(2) Modèle
(4) Visualisation
(3) Analyses
![Page 122: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/122.jpg)
}
{
}
{
}
{}
{
}
{
McCabe = 21LOC = 75
3,000
classes select: #isGod ...
![Page 123: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/123.jpg)
Moose is a tool ecosystem
MooseChef
FAMIX & other
FAME
![Page 124: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/124.jpg)
Meyer etal 2006
Mondrian/Roassal scripts graph visualizations
![Page 125: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/125.jpg)
Thanks ObjectProfile and A. Bergel
for Roassal
![Page 126: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/126.jpg)
![Page 127: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/127.jpg)
![Page 128: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/128.jpg)
The kind of gift you can get from a community :)
![Page 129: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/129.jpg)
![Page 130: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/130.jpg)
![Page 131: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/131.jpg)
A glimpse at RMOD research
!
!
(pharo is not our research)
![Page 132: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/132.jpg)
Supporting changes
Supporting merge (PhD of V. Uquillas-Gomez)
Untangling changes (Ph.D. of M. Dias)
Helping evolving your system (Ph.D. of A. Hora)
132
![Page 133: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/133.jpg)
How to support merging branches?
Git
Forks
Dependencies between changes
Manual tasks are needed
Integrator is not the author of the changes
No guarantee that the system will work
133V. Uquillas-Gomez
![Page 134: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/134.jpg)
Torch: Which changes? Where? Who? What?
134
5 packages,9 classes,
A set of changes, involving:
~40 methods
![Page 135: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/135.jpg)
Streams of Changes: On what other changes does this change depend?
109.cmm109.cmm
106.cmm
105.cmm110.cmm
109.cmm
108.ul
107.cmm
106.cmm
105.cmm
111.cmm
source branch
210.sd
209.sd
208.sd
207.md
206.md
target branch
135
![Page 136: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/136.jpg)
t
Feature #6
Fix Bug
Feature #6
CH!1 add method
CH!2 modify method
CH!3 modify method
CH!4 add class
CH!5 modify method
Untangling changes
Repocommit
136 M. Dias
![Page 137: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/137.jpg)
Why is that bad?•review & integration•reversion•historical analysist
CH!1 add method
CH!2 modify method
CH!3 modify method
CH!4 add class
CH!5 modify method
Tangled
Repocommit
137
best practice: create untangled commits
change ⟷ activity ?
![Page 138: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/138.jpg)
Repo
commit
commitCH!1
CH!4
CH!5
CH!2
CH!3
untangler tool
Fix Bug
Feature
We want a tool to untangle fine-grained
changes
138
CH!1 add method
CH!2 modify method
CH!3 modify method
CH!4 add class
CH!5 modify method
Tangled
![Page 139: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/139.jpg)
CH!1
CH!4
CH!5
CH!2
CH!3
We want a tool to untangle fine-grained
changes
Fix Bug
CH!4
CH!5
CH!1
CH!3
CH!1
CH!2
… ……… …
…
…
…
binary classifierfine-grained
features
Feature
[SANER’15] 139
untangler tool
CH!1 add method
CH!2 modify method
CH!3 modify method
CH!4 add class
CH!5 modify method
Tangled
![Page 140: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/140.jpg)
Supporting evolution
• Due to their cost, are system-specific rules worthwhile?
• Are rules good bug identification?
140A. Hora
![Page 141: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/141.jpg)
Automatically inferring migration rules
• Using developer activity
• Extract relevant API changes and deprecation rules
141A. Hora
![Page 142: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/142.jpg)
Reflective features
![Page 143: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/143.jpg)
Pharo simple programmer expects…
• Incremental recompilation and changes
• Dynamic class shape changing
• Instance updates / migration
• Debugger support
• On demand stack reification
![Page 144: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/144.jpg)
On the fly compilationWhen a method is not found,
ask for the creation of a method on the fly
the system compiles on the spot a special method, then reexecutes the method
it raises a shouldBeImplemented exception
then you can edit the method in the debugger
then proceed and the program continues to run
![Page 145: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/145.jpg)
Execution Stack as an Object
• Debugger support!
• Advanced debugging
• Continuation
![Page 146: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/146.jpg)
thisContext
returns an object that represents the method activation
can walk and modify the stack
![Page 147: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/147.jpg)
![Page 148: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/148.jpg)
Powerful breakpoints?“Stop method bar only if it is invoked from method testBar”
bar()
...
this.haltIf(#testBar)
...
![Page 149: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/149.jpg)
foo() this.bar() !
Executing foo does not stop while executing testBar should stop
![Page 150: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/150.jpg)
haltIf: aSelector!! | cntxt |! ! cntxt := thisContext.! ! [ cntxt sender isNil ] !
! ! whileFalse: [! ! ! ! cntxt := cntxt sender.! ! ! ! (cntxt selector = aSelector) !
ifTrue: [ Halt signal ] ]
![Page 151: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/151.jpg)
pointer swapping
anObject become: anotherObject
!
All the pointers pointing to anObject points now to anotherObject and the inverse atomically
![Page 152: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/152.jpg)
| pt1 pt2 pt3 | pt1 := 0@0. pt2 := pt1. pt3 := 100@100. pt1 become: pt3. self assert: pt2 = (100@100). self assert: pt3 = (0@0). self assert: pt1 = (100@100).
![Page 153: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/153.jpg)
Some challengesBootstrap reflective kernels Update core libs at runtime Virtualization (debugging our brain) Isolate parts Layered reflective representations Multiple language runtimes side by side JIT optimizations ready at startup
![Page 154: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/154.jpg)
• How can we bootstrap kernels?
• How can we tailor and build specialized runtimes?
• How can we update core libs at runtime?
• Presentation @ Onward!
G. Polito
![Page 155: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/155.jpg)
155
Language Runtime Bootstrapping
A process whose input is the definition of a language runtime written in the same language, and whose output is this language’s runtime.
Bootstrap paper guile
Bootstrap Definition
Language runtime BootstrapBootstrapLanguage
RuntimeDefinition
runtime
Programming Language
input
written inSyntax
+Semantics
+Pragmatics
output
![Page 156: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/156.jpg)
Bootstrapping Process
156
Language Runtime Bootstrapping
nilObject := UndefinedObject basicNew.!trueObject := True basicNew.!falseObject := False basicNew.!!globalTable := GlobalTable basicNew.!!nil subclass: !Object subclass: !Object >> isNil!^ false!!UndefinedObject >> isNil! ^ true! !Float initialize.!Processor initialize.
1.Create well-known objects
2.Create basic language structures
3.Create classes
4.Create methods
5.Initialize
How�do�we�execute�this�bootstrap?
![Page 157: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/157.jpg)
Minimal specialised runtimes
By default any runtime is too fat :)
How can we tailor and build specialized runtimes?
![Page 158: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/158.jpg)
How can we update the update while running the update?
Examples:
• Dictionary hashes
• Delay refactoring
• Collection changes
![Page 159: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/159.jpg)
Espell Virtualization Infrastructure
159
Language Runtime Bootstrapping
Bootstrapped Language Runtime
Bootstrap Process
BootstrappingInterpreter
input
initializesObject Space
nil
ProtoObject
Object
hypervisor
Virtualized�Application
LanguageRuntime
Definition
![Page 160: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/160.jpg)
Espell again: Run-Fail-Grow
160
Application Tailoring
ReferenceApplication
NurturedApplication
1. run
3. copy missing 2. fail 4. resume
Code Units
![Page 161: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/161.jpg)
Results
161
Application Tailoring
Experiment Size (KB) %Saved
Addition 11 99.99%
Reflective App 32 99.83%
Factorial 100 + I/O 89 99.39%
Seaside Counter 573 96.73%
Experiments with empty seeds
![Page 162: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/162.jpg)
Object Space
nil
ProtoObject
Object
162
Espell: our virtualization model
Object Space
• First-class virtualized runtime • It’s a meta-object! => MOP
Language Manipulation!e.g., create class
VirtualizedApplication
Object Manipulation!e.g., set slot, get slot
Execution manipulation!e.g., create process, get stack frames
hypervisor
![Page 163: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/163.jpg)
Lowering JIT warm up time
![Page 164: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/164.jpg)
Saving hot VM state
• Saving JIT compiler optimisations across start-ups
• Saving compiled methods encoded with an extended bytecode set (no n-code)
• Time to reach peak performance avoided
• PhD of C. Béra co-supervized with Cadence Design Systems (US)
C.Béra
![Page 165: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/165.jpg)
How to test dynamic deoptimisation?
Can we build regression tests for dynamic deoptimisation?
![Page 166: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/166.jpg)
Using symbolic execution
• Byte-code
• Constrained to scope optimisation (do not execute not inlined calls)
![Page 167: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/167.jpg)
Reflective architecture
How modular reflective architectures can be? Can we package language extensions?
How to reconcile reflection with object encapsulation (and object capabilities)?
C. Teruel
![Page 168: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/168.jpg)
Stratification• Conflation of high-level concerns (language) and low-
level concerns (the VM):
• Language extensions are not modular
• Examples:
• Reflection reveals implementation details of language extension
• Generated code should not be visible via an introspective API
![Page 169: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/169.jpg)
Encapsulation vs. Reflection
Reflection breaks object encapsulation. This makes reflection and object capabilities incompatible.
What kind of access control can prevent abuses while maximising the power of reflection?
Ownership-based access control
![Page 170: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/170.jpg)
Happily building platforms &
communities
![Page 171: SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: The case of Pharo and Moose](https://reader031.vdocuments.mx/reader031/viewer/2022030304/587933b61a28ab7c448b70f3/html5/thumbnails/171.jpg)
THANKS!