On peut distinguer deux grands types de programmation : la programmation orientée objet (POO) et la programmation procédurale.
La programmation procédurale ou structurée manipule des fonctions s’appelant mutuellement et pouvant contenir des sous-actions. Une fonction peut être appelée à n’importe quel moment dans un programme sans avoir à la réécrire. Elle permet la création d’un code plus structuré. ALGOL, Ada, perl, php sont des exemples de langages utilisant la programmation procédurale.
La programmation orientée objet consiste à faire interagir un ensemble d’objets entre eux. Par exemple, dans un jeu on peut créer un univers avec comme objet un « personnage » ou bien une « voiture ». Ces objets possèdent différentes caractéristiques permettant de les décrire comme : le type de voiture, la couleur de la voiture ou bien la force du personnage, c’est ce qu’on appelle les attributs de l’objet. Un objet peut également effectuer des actions (se déplacer, rouler, reculer etc.) qui correspondent à des fonctions.
Toutes les informations d’un objet sont regroupées dans une classe. La classe définit le type de l’objet, par exemple on peut créer une classe « animal » avec un objet de type « herbivore » ou "carnivore".
On peut se servir de la classe animal pour créer autant d’objet de type herbivore ou autre (par ex : carnivore) qu’on veut. Ainsi, lorsqu’on fait appel à l’objet chat dans le programme, on n’a pas besoin de redéfinir ces caractéristiques. La POO permet le regroupement des données.