Date post: | 11-May-2015 |
Category: |
Technology |
Upload: | pharo |
View: | 1,237 times |
Download: | 2 times |
PharoFor geek souls
Esteban Lorenzano
Pharo “core team” since 1.5yr (and lots of other stuff before, but this is the cool part :)
Remember our vision
• Clean
• Modern
• Innovative
• Maintained, but not (necessarily) backward compatible
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
• …
It is not!
“It is just a bunch of random changes.”
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.
Yeah… just that it does not always works!
“If it ain’t broke, don’t fix it.”
It is all about evolution!
“Patch stacking techniques” work fine for a while, but at the end you have a poorly designed system.
Subsystem replacement
• Not just for the joy of change.
- Enhance design.
- Allow further development.
RPackage
• First class objects
- Replacement of PackageInfo (and System Categories)
- Replacement also of Class Organizer
RPackage
✓ Better handling for packages and classes
✓ We can now include metadata there
• We can think on different/orthogonal ways of categorization
Game changers
✓ Native Boost
✓ RB/AST
✓ Opal
• Object Spaces
Opal
• Fully reified
• Semantic analysis, IR translation, Byte code generation, each stage visiting the AST.
• Marcus wants to use PetitParser :)
Opal
✓ Many “small optimizations”
✓ Class Layouts/Slots
• Reflectivity (allowing “details” like real breakpoints)
New debugger
✓ Fully reified
✓ Pluggable inspectors
• Moldable debuggers
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
Native Boost• Dynamic code generation (ASMJIT)
• Many applications
✓ FFI
✓ Athens
- Mate
- Move plugins/external code from C to Pharo
Athens
• Better suited for modern screens
• CPU usage improvements
• Replace old BitBlt based morphs
Process
✓ Installation
✓ Automatization
• Bootstrap
User eXperience
It is not enough to be the best environment around, we also need to look like the best environment
around.
Brave new world
We want to create a cool environment for all people interested in participate
(because it is yours)
“Ask not what Pharo can do for you, but what you can do for Pharo”
Imagine…
… a world in which you modify and interact nicely (and in runtime) with the outside world.
… a world with contained sources and changes as transaction logs.
… a world in which you can deploy other worlds, worlds that you can create by doing:
!Pharo new fork.
… or doing: !
Pharo new forkAt: 192.168.1.42
Inventing the future