This text explains what it means for an environment to be truly object-oriented (OO), not just by having a modern user interface but by applying the concept of data abstraction. It introduces five design principles for OO environments and a complete set of tools for applying these principles. The work also describes a novel approach to compilation - the melting ice technology. It discusses how to use C as a target language for efficiency; explains the principles and application of GUI application building; and introduces the Context-Events-Command-State model of GUI application building.