smalltalks13 pharo techoverview
TRANSCRIPT
![Page 1: Smalltalks13 pharo techoverview](https://reader033.vdocuments.us/reader033/viewer/2022052822/554f97a1b4c905ad218b471d/html5/thumbnails/1.jpg)
PharoFor geek souls
![Page 2: Smalltalks13 pharo techoverview](https://reader033.vdocuments.us/reader033/viewer/2022052822/554f97a1b4c905ad218b471d/html5/thumbnails/2.jpg)
Esteban Lorenzano
Pharo “core team” since 1.5yr (and lots of other stuff before, but this is the cool part :)
![Page 3: Smalltalks13 pharo techoverview](https://reader033.vdocuments.us/reader033/viewer/2022052822/554f97a1b4c905ad218b471d/html5/thumbnails/3.jpg)
Remember our vision
• Clean
• Modern
• Innovative
• Maintained, but not (necessarily) backward compatible
![Page 4: Smalltalks13 pharo techoverview](https://reader033.vdocuments.us/reader033/viewer/2022052822/554f97a1b4c905ad218b471d/html5/thumbnails/4.jpg)
A “small” list of changes• System Cleanups
• Morphic Cleanups
• Widgets
• Polymorph
• Bootstrap
• FileSystem
• Announcements
• Zinc/Zodiac
• RPackage
• Class organization
• Command Line
• Spec
• Spec based tools
• Fuel
• Nautilus
• VM Infrastructure
• VM including default plugins and libraries
• Opal
• Class Layouts
• Slots
• Code Critics
• Manifest
• RB/AST
• AST Smart Suggestions
• Class-Trait polymorphism
• Debugger/Inspector
• Spec
• NativeBoost
• Athens
• UI Improvements
• Keybindings
• Metacello2 / Filetree
• Zeroconf
• Community available infrastructure
• Refactors and more refactors
• …
![Page 5: Smalltalks13 pharo techoverview](https://reader033.vdocuments.us/reader033/viewer/2022052822/554f97a1b4c905ad218b471d/html5/thumbnails/5.jpg)
It is not!
“It is just a bunch of random changes.”
![Page 6: Smalltalks13 pharo techoverview](https://reader033.vdocuments.us/reader033/viewer/2022052822/554f97a1b4c905ad218b471d/html5/thumbnails/6.jpg)
It is all about evolution
There is no such thing as “a small change”.
Is through a stack of continuous changes that you create one that is revolutionary.
![Page 7: Smalltalks13 pharo techoverview](https://reader033.vdocuments.us/reader033/viewer/2022052822/554f97a1b4c905ad218b471d/html5/thumbnails/7.jpg)
Yeah… just that it does not always works!
“If it ain’t broke, don’t fix it.”
![Page 8: Smalltalks13 pharo techoverview](https://reader033.vdocuments.us/reader033/viewer/2022052822/554f97a1b4c905ad218b471d/html5/thumbnails/8.jpg)
It is all about evolution!
“Patch stacking techniques” work fine for a while, but at the end you have a poorly designed system.
![Page 9: Smalltalks13 pharo techoverview](https://reader033.vdocuments.us/reader033/viewer/2022052822/554f97a1b4c905ad218b471d/html5/thumbnails/9.jpg)
Subsystem replacement
• Not just for the joy of change.
- Enhance design.
- Allow further development.
![Page 10: Smalltalks13 pharo techoverview](https://reader033.vdocuments.us/reader033/viewer/2022052822/554f97a1b4c905ad218b471d/html5/thumbnails/10.jpg)
RPackage
• First class objects
- Replacement of PackageInfo (and System Categories)
- Replacement also of Class Organizer
![Page 11: Smalltalks13 pharo techoverview](https://reader033.vdocuments.us/reader033/viewer/2022052822/554f97a1b4c905ad218b471d/html5/thumbnails/11.jpg)
RPackage
✓ Better handling for packages and classes
✓ We can now include metadata there
• We can think on different/orthogonal ways of categorization
![Page 12: Smalltalks13 pharo techoverview](https://reader033.vdocuments.us/reader033/viewer/2022052822/554f97a1b4c905ad218b471d/html5/thumbnails/12.jpg)
Game changers
✓ Native Boost
✓ RB/AST
✓ Opal
• Object Spaces
![Page 13: Smalltalks13 pharo techoverview](https://reader033.vdocuments.us/reader033/viewer/2022052822/554f97a1b4c905ad218b471d/html5/thumbnails/13.jpg)
Opal
• Fully reified
• Semantic analysis, IR translation, Byte code generation, each stage visiting the AST.
• Marcus wants to use PetitParser :)
![Page 14: Smalltalks13 pharo techoverview](https://reader033.vdocuments.us/reader033/viewer/2022052822/554f97a1b4c905ad218b471d/html5/thumbnails/14.jpg)
Opal
✓ Many “small optimizations”
✓ Class Layouts/Slots
• Reflectivity (allowing “details” like real breakpoints)
![Page 15: Smalltalks13 pharo techoverview](https://reader033.vdocuments.us/reader033/viewer/2022052822/554f97a1b4c905ad218b471d/html5/thumbnails/15.jpg)
New debugger
✓ Fully reified
✓ Pluggable inspectors
• Moldable debuggers
![Page 16: Smalltalks13 pharo techoverview](https://reader033.vdocuments.us/reader033/viewer/2022052822/554f97a1b4c905ad218b471d/html5/thumbnails/16.jpg)
Object spaces• Experiment with other object formats
• Ability to interact with other environments
✓ Image inspection & repair
- Remote control (maybe with Seamless)
- Dev environment vs. app environment
![Page 17: Smalltalks13 pharo techoverview](https://reader033.vdocuments.us/reader033/viewer/2022052822/554f97a1b4c905ad218b471d/html5/thumbnails/17.jpg)
Native Boost• Dynamic code generation (ASMJIT)
• Many applications
✓ FFI
✓ Athens
- Mate
- Move plugins/external code from C to Pharo
![Page 18: Smalltalks13 pharo techoverview](https://reader033.vdocuments.us/reader033/viewer/2022052822/554f97a1b4c905ad218b471d/html5/thumbnails/18.jpg)
Athens
• Better suited for modern screens
• CPU usage improvements
• Replace old BitBlt based morphs
![Page 19: Smalltalks13 pharo techoverview](https://reader033.vdocuments.us/reader033/viewer/2022052822/554f97a1b4c905ad218b471d/html5/thumbnails/19.jpg)
Process
✓ Installation
✓ Automatization
• Bootstrap
![Page 20: Smalltalks13 pharo techoverview](https://reader033.vdocuments.us/reader033/viewer/2022052822/554f97a1b4c905ad218b471d/html5/thumbnails/20.jpg)
User eXperience
It is not enough to be the best environment around, we also need to look like the best environment
around.
![Page 21: Smalltalks13 pharo techoverview](https://reader033.vdocuments.us/reader033/viewer/2022052822/554f97a1b4c905ad218b471d/html5/thumbnails/21.jpg)
Brave new world
We want to create a cool environment for all people interested in participate
![Page 22: Smalltalks13 pharo techoverview](https://reader033.vdocuments.us/reader033/viewer/2022052822/554f97a1b4c905ad218b471d/html5/thumbnails/22.jpg)
(because it is yours)
“Ask not what Pharo can do for you, but what you can do for Pharo”
![Page 23: Smalltalks13 pharo techoverview](https://reader033.vdocuments.us/reader033/viewer/2022052822/554f97a1b4c905ad218b471d/html5/thumbnails/23.jpg)
Imagine…
![Page 24: Smalltalks13 pharo techoverview](https://reader033.vdocuments.us/reader033/viewer/2022052822/554f97a1b4c905ad218b471d/html5/thumbnails/24.jpg)
… a world in which you modify and interact nicely (and in runtime) with the outside world.
![Page 25: Smalltalks13 pharo techoverview](https://reader033.vdocuments.us/reader033/viewer/2022052822/554f97a1b4c905ad218b471d/html5/thumbnails/25.jpg)
… a world with contained sources and changes as transaction logs.
![Page 26: Smalltalks13 pharo techoverview](https://reader033.vdocuments.us/reader033/viewer/2022052822/554f97a1b4c905ad218b471d/html5/thumbnails/26.jpg)
… a world in which you can deploy other worlds, worlds that you can create by doing:
!Pharo new fork.
![Page 27: Smalltalks13 pharo techoverview](https://reader033.vdocuments.us/reader033/viewer/2022052822/554f97a1b4c905ad218b471d/html5/thumbnails/27.jpg)
… or doing: !
Pharo new forkAt: 192.168.1.42
![Page 28: Smalltalks13 pharo techoverview](https://reader033.vdocuments.us/reader033/viewer/2022052822/554f97a1b4c905ad218b471d/html5/thumbnails/28.jpg)
Inventing the future