The basic technologies of electronics, virtual machines, and software have gone through cycles of breakthrough, replication, empiricism, theory, automation and maturity.
Computing technology has progressed through a repeated pattern of breakthroughs in one technology, leading to its playing a key role in initiating a new generation. It is time that we provided foundations of engineering human-computer interaction (HCI) as explicit and well-founded as those for hardware and software engineering. The human-computer interface is increasingly the major determinant of the success or failure of computer systems.