Developing principles of GUI programming using views