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 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.