Naive realism is an extension of the "what you see is what you have" idea that has become commonplace in the design of text editors and spreadsheets, but not for programming languages. The point is that users should be able to pretend that what they see on the screen is their computational world in its entirety. For example, (1) any text that appears on the screen-whether typed by the system, entered by the user, or constructed by a program-can be moved, copied, modified, or (if it is program text) evaluated; (2) you can change the value of a variable simply by altering the contents of the variable box on the screen. If a program modifies the value of a variable, the contents of the box will be automatically updated on the screen. In general, there is no need to query the system to display its state, nor any need to invoke a state-change operation to affect the system indirectly.
— Boxer - A Reconstructible Computational Medium