In the late 1940s and early 1950s two Norwegians - Kristen Nygaard and Ole-Johan Dahl - working for the Norwegian Defense research establishment on the problem of Resonance-absorption computations for a nuclear reactor did Monte Carlo simulations by hand.
In early 1960s they created SIMULA1 to solve modeling problems.SIMULA67 first compilers in late 1960s and early 1970s
1962 Ivan Sutherland wrote SketchPad the first modern interactive graphics program. The user pointed at the screen to input commands.
Dave Collins in "Designing Object-Oriented User Interfaces" says
"Basic Human capabilities for perceiving, thinking and acting on objects in the world have not changed for thousands of years, and these capabilities will not change within the lifetime of anyone reading this book.
"This creates a tension between rapidly changing technology on one side of the interface and unchanging capabilities of the human on the other side."
Collins suggests two ways to resolve the problem:At Xerox PARC early in 1970 Alan Kay created a group (Learning Research Group) to design a book size computer (which there was no technology to implement).
He wanted an interface anyone could use:The result was Smalltalk.
Larry Tesler (at PARC) showed the strong connection between properties of objects in object-oriented languages and properties of objects on the screen.
Early Smalltalk had a mostly text based interface. Dan Ingalls working at PARC developed the Model-View Controller (MVC) architecture used in Smalltalk.
Also at PARC 1975 David Canfield - Pygmalion system was the first iconic programming system. Used manipulation of icons to accomplish tasks. InterLisp was the first environment to equate icons with minimized windows.
Relationship between OOPS and GUI. Example a click on a window results in a message to that window from the system that says it has been clicked. Its response to the click may be just to become the active window (The Listener) or to pop-up (pull-down) another window (menu), or send message to a parent window to close.
All Smalltalk components are members of classes, therefore classes themselves must belong to classes (Meta-Classes). Each class is contained in its own meta class which is created at the same time the class is created. The functions of the meta class are listed under class functions for its class.
Meta classes are not instances of meta classes and they have no name so the only way to access them is through the class functions and variables of the class they contain.
Point x:100 y:150 Rectangle origin:(Point x: 50 y: 50) corner:(Point x: 250 y: 300) Selector (message name) origin: corner:
Look at some samples of the old interface and the new interface.