πSelf and self: whys and wherefores
- authors
- Ungar, David
- year
- 2009
- url
- https://www.youtube.com/watch?v=3ka4KY7TMTU
Values β Principles β Practices
values: what you want, what you like
principles: general rules for achieving values
practices: specific things to do
For every feature in the language, know which value it serves
Donβt just make it elegant, or powerful. Know why for each design choice.
Forget compilers, interpreters / create a consistent experience
q
With great people, you can do anything! Donβt waste them on the possible! (The challenge will attract the great ones.)
Self has quite a legacy
first to use prototype-based inheritance
everything is an object (more so than smalltalk)
smalltalk emphasized classes and tools, not objects
first to use animation
motion blur, shadow, expand, fade-in/fade-out
generation scavenging GC
dynamic compilation (JIT)
Key idea: Misdirection The code that runs only has to fool the user into thinking itβs the code he wrote. Just like stage magic.
lazy compilation
dynamic deoptimization
q
Even if your ideas succeed, the real legacy is the people.
(People who learned on your project go on to other projects and do even more cool things.)
Backlinks
- π Values > Principles > Practices
- π Self (language)
- π Artist vs. Entertainer