A programming language that provides facilities for the definition and manipulation of objects, an object being a collection of data which can be sent messages that change the values of its components. For example, a typical object in a stock control system is a product which is stored in a warehouse. A product object contains data that is relevant to the use which is made of it, for example its name, the quantity in stock, and the level below which it has to be reordered. Typical messages which such an object would receive include a message which reduces its stock level, increases its stock level, and which returns with the name of the supplier of the product. Object-oriented languages are not new: they date from the late 1960s. However, in the 1990s they have achieved increasing prominence: first through the use of C++ in conventional applications and then through the use of Java in Internet applications. If current trends continue, Java and C++, together with the programming language Perl, will dominate software development for the Internet in the coming years.