If you’re not familiar, Pharo is a version of the Smalltalk programming language. If you’re interested in object-oriented and software design in general, you should definitely check it out.
If you go to the Help menu in Pharo, one of the items is Pharo Zen. I thought maybe it would be something like Ruby Koans, but it turned out to be this:
Our values and convictions are condensed in this simple list.
- Abstraction and composition are our friends.
- Quality is an emerging property.
- Communication is key.
- Beauty in the code, beauty in the comments.
- Simple processes to support progress.
- Magic only at the right place.
- Perfection can kill movement.
- Examples to learn from.
- Fully dynamic and malleable.
- Explicit is better than implicit.
- Simplicity is the ultimate elegance.
- Learning from mistakes.
- Tests are important but can be changed.
- Polymorphism is our esperanto.
- There is no unimportant fix.
- Easy to understand, easy to learn from, easy to change.
- Better a set of small polymorphic classes than a large ugly one.
- Classes structure our vocabulary.
- One step at a time.
- Objects all the way down.
- A system with robust abstractions that a single person can understand.
- Messages are our vocabulary.
Words to live by.