ACM Queue writes:
In his keynote address at OOPSLA ’98 (Object-Oriented Programming, Systems, Languages, and Applications), Sun Microsystems Fellow Guy L. Steele Jr. said, “From now on, a main goal in designing a language should be to plan for growth.” Functions, user-defined types, operator overloading, and generics (such as C++ templates) are no longer enough: tomorrow’s languages must allow programmers to add entirely new kinds of information to programs, and control how it is processed.
This article argues that next-generation programming systems can accomplish this by combining three specific technologies:
-> Compilers, linkers, debuggers, and other tools that are frameworks for plug-ins, rather than monolithic applications.
-> Programming languages that allow programmers to extend their syntax.
-> Programs that are stored as XML documents, so programmers can represent and process data and meta-data uniformly.
These innovations will likely change programming as profoundly as structured languages did in the 1970s, objects in the 1980s, and components and reflection in the 1990s.