The main motivations behind the Rust programming language are according to the FAQ:

Rust exists because other languages at this level of abstraction and efficiency are unsatisfactory. In particular:

  1. There is too little attention paid to safety.
  2. They have poor concurrency support.
  3. There is a lack of practical affordances.
  4. They offer limited control over resources.

What does 3. mean in this context?

1 Answer 1


An affordance is an obvious way of using something. If a door has a flat metal 'push-plate' affixed to it, that is a 'push me to open' affordance. If it has instead a 'pull-handle' on it, that is a 'pull me to open' affordance. If the door has a 'pull-handle' but opens inwards instead of toward you when you pull it, that is a poorly designed affordance for that door.

In the case of 'poor affordances' in computer languages, it may be possible to do something in that language even though it may not be easy to figure out how to do that, just like it is possible (but not easy to figure out) how to push a door with a pull-handle on it.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .