Programmation événementielle
En informatique, la programmation événementielle est un paradigme de programmation fondé sur les événements. Elle s'oppose à la programmation séquentielle. Le programme sera principalement défini par ses réactions aux différents événements qui peuvent se produire, c'est-à-dire des changements d'état de variable, par exemple l'incrémentation d'une liste, un déplacement ou un clic de souris, une saisie au clavier...
La programmation événementielle peut également être définie comme une technique d'architecture logicielle où l'application a une boucle principale divisée en deux sections : la première section détecte les événements et la seconde les gère. Elle est particulièrement mise en œuvre dans le domaine des interfaces graphiques.
À noter qu'il n'est pas ici question d'interruptions logicielles : le traitement d'un événement ne peut pas être interrompu par un autre, à part en des points précis explicitement prédéterminés du code logiciel (points qui, en fait, créent une seconde boucle événementielle au sein de la première).
La programmation événementielle peut être réalisée dans n'importe quel langage de programmation, bien que la tâche soit plus aisée dans les langages de haut niveau (comme Java). Certains environnements de développement intégrés (par exemple Qt Software) permettent de générer automatiquement le code des tâches récurrentes dans la gestion des événements.
Quelques exemples
- la bibliothèque Qt (via les slots et signaux, ou boost::signal)
- Interfaces graphiques utilisant la Windows API
- C# avec les EventHandler (voir Observateur (patron de conception) dans la partie C#)
- Tcl/Tk
- Swing une bibliothèque graphique Java
- MATLAB avec Stateflow et Simulink
- Node.js
- Android
- Tornado
- Twisted
- Nginx Serveur web événementiel
- Vert.x, moteur événementiel écrit en Java
- Visual Basic