“This type of support is highly useful but,
computationally speaking, trivial compared to the
challenges ahead attempting to support users to
produce meaningful programs. The most daunting
challenge will be to support pragmatics, that is the
study of what code means in particular situation.
- Alexander Repenning
WHAT ARE THE HARD PARTS?
➤ Conditionals are hard to read
➤ Abstraction is hard & might require
inventing new visual grammar
➤ Code reuse is hard
➤ Hard to diﬀ & merge
➤ Type checking may be hard to visualize
➤ Doesn’t ﬁt on-screen well
➤ Code comments are hard
➤ Your face can only absorb so many shapes
WHAT ABOUT RUBY?
What does its design optimize for?