Most recently used programs list not updating
Why do we expect programmers to "look up" functions in "documentation", while modern user interfaces are designed so that documentation is typically unnecessary? The computer traces a path through the code, looping around loops and calling into functions, updating variables and incrementally building up the output. People understand things that they can see and touch.A programming environment is a user interface for understanding a program. In order for a learner to understand what the program is actually doing, the program flow must be made visible and tangible.
A good system is designed to encourage particular ways of thinking, with all features carefully and cohesively designed around that purpose. The trick is to see through them -- to see the underlying design principles that they represent, and understand how these principles enable the programmer to think.
Here's a trick question: How do we get people to understand programming?
Khan Academy recently launched an online environment for learning to program.
This essay presents a set of design principles for an environment and language suitable for learning.
The environment should allow the learner to: We often think of a programming environment or language in terms of its features -- this one "has code folding", that one "has type inference".