In another thread, @Haberjr recently raised the question of “Tinderbox’s learning curve”. Is Tinderbox hard to learn? Why?
I’d like to distinguish three kinds of difficulty:
- Some things are hard. That can’t be helped.
I distinctly remember how hard it was to learn to read, in part (I suppose) because I was, at first, particularly bad at it. Reading is hard! It takes most people months or years to master.
- Some things are hard because they’re unfamiliar to some new Tinderbox users, even though they’re familiar to others.
For example, the general meaning of the expression
$Color(parent)="red"is likely to be evident to users who have a semester of computer science, or equivalent experience. You can guess what the quotation marks mean, for example, by analogy to C or Java or Scheme or whatever else you used in school. If you’ve never tried programming at all, though, it would be less clear what this means.
In cases like this, we can help but we can’t make the complexity vanish entirely. Tinderbox uses a number of important ideas that emerged over the first generations of computing, and if those ideas are new to you, they’re new. The good news is, they’re worth learning! But some difficulty may be anticipated, just as you’d expect a certain degree of difficulty commencing work in an unfamiliar area.
- Some things are hard because Tinderbox explains them poorly.
For example, until recently the main Tinderbox window had two adjacent buttons, both labelled “+”. One added tabs to the tab bar; the other added attributes to the displayed attributes table. This wasn’t idiotic: both buttons are adding things, and each is clearly placed within its own visual context. Each had an explanatory tooltip. Still: two buttons with very similar labels, quite close to each other.
This was, as it happens, not easy for me to see. In the development environment, those two buttons lie in completely different files, in different parts of the program. I know what each of them does. As a result, the possibility of confusing one with the other was not apparent!
So: what’s intrinsically hard? What are challenges that could be addressed with better demonstrations or more ample illustrations? What confusions could be reduced through different labels or new gestures?