This article examines the inner workings of Prolog, with an eye on widening the language's appeal. He claims that the most important aspect of good user interface is how well it leads the user to an accurate conceptual model of how the application works. If the user develops an accurate conceptual model, then the application works as expected. This leads the user to try more things, which also work as expected, leading to an even better understanding, thus drawing the user further and further into the tool. On the other hand, if the user develops an inaccurate conceptual model, then things do not work as expected.
Experiments fail and frustration sets in.
Without a way to get a good understanding of how the application works, the user eventually loses interest no matter how slick the interface. How the application works is not as important for user success as whether or not it works as expected. The goal of the user interface, then, should be to set the user's expectations correctly. In other words, the user interface should teach the user how the application works. With this in mind, we can see why a language like C is so addictive.