Programming languages have changed a great deal since the first days of application development. Back in the day, procedural languages were state of the art; as a matter of fact, there are still thousands of COBOL and other procedural applications in use today. As time went on, coding became more efficient, and reuse, encapsulation, abstraction, and other object-oriented characteristics became fundamental keys to application development. As languages evolved, they began to incorporate the idea of using objects within programs. The Lisp language introduced some object-oriented techniques as early as the 1970s, but true object-oriented programming did not take off in full blast until the 1990s.