Ursprünglich dienten Computer ausschließlich dazu numerische Aufgaben zu lösen. Ihre Aufgabe war es Rechenaufgaben zu lösen, deren Umfang und Komplexität die Grenzen menschlichen Rechenvermögens erreichte oder gar überschritt. Ein typisches Beispiel für diese Verwendung ist das Berechnen von Logarithmentafeln, eine Aufgabe, für die viele der ersten Computer konstruiert wurden. Diese wurden für viele Berechnungen im militärischen und ingenieurwissenschaftlichen Bereich benötigt und die von Hand erstellten Tafeln waren zumeist sehr fehlerbehaftet.
Für diese numerischen Zwecke war ein Programmierkonzept völlig ausreichend, das auf der einen Seite einen Satz von Daten vorsah (gegebenen und berechneten) und auf der anderen Seite Funktionen, um diese zu ändern. Hinzu kam, daß die Programme noch relativ klein waren (gemessen an heutigen Maßstäben) und nur für eine bestimmte Nutzungszeit, den sogenannten Software-Lebenszyklus, entworfen wurden.
Mit steigenden Anforderungen an die Computer wuchs aber der Umfang der Programme sehr stark. Auch beschränkten sich die Anwendungen nicht mehr nur auf das Lösen numerischer Probleme, sondern der Computer vollzog einen Wandel zu einem universellen Arbeitsgerät, bis hin zu Multimedia, Künstlicher Intelligenz und Computervermittelter Kommunikation.
Diese Entwicklung erforderte ein Umdenken auch bei dem Programmierkonzept. Die Komplexität der Software erforderte nicht nur eine größere Übersicht bei der Programmierung, sondern es war auch nicht mehr praktikabel, Software jedesmal von Grund auf neu zu programmieren, um dann ein Produkt zu haben, das so starr angelegt war, daß man es fast nur noch ersetzen konnte, wenn es nach einigen Jahren überholt war.
Es wurde nötig, Software in kleine Sinneinheiten aufzuteilen, die immer wieder verwendet werden können. Dabei stellte sich eine Aufteilung in Datensatz und Funktionalität, wie sie bislang üblich war, als sehr unhandlich heraus. Man strukturierte statt dessen die Programmteile in Funktionseinheiten, die die für sie benötigten Daten gleich mit enthielten, womit das Konzept der OOP geboren war.