π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.)
- Artist vs. Entertainer
Backlinks
- π Values > Principles > Practices
- π Self (language)
- π Artist vs. Entertainer