Programación Dirigida por Eventos: Conceptos y Aplicaciones

Clase 11 de 21Curso de Historia de la Programación: Lenguajes y Paradigmas

Resumen

La programación dirigida por eventos se caracteriza por no controlar la secuencia de ejecuciones. Más bien, en la programación dirigida por eventos se reacciona a los sucesos ocurridos. Para ello, generalmente los programas corren indefinidamente integrando manejadores de eventos (event handlers).

Eventos y event handler

Los programas dirigidos a eventos se mantienen en estado de reposo, hasta que una acción dispara un event handler. Este se encarga de procesar el evento en cuestión. Algunos eventos comunes son:

  • Clics (ya sea en un mouse, teclado, pantalla, etc.)
  • Sensores (de temperatura, movimiento, etc.)
  • Mensajes
  • Triggers
  • Casos de aplicación
  • Solicitudes HTTP

Casos de uso

Entre los casos de uso de la programación dirigida a eventos encontramos.

  • GUIs
  • Aplicaciones web
  • Sistemas de booking
  • Sistemas de alarmas
  • Robótica
  • Videojuegos

Funcionamiento

En la programación imperativa tenemos una secuencia de pasos que se van a ejecutar de manera secuencial, y después puede repetirse el ciclo o puede llegar a detenerse el programa porque así lo decidimos o porque forzamos su detención.

Por otro lado, en la programación dirigida por eventos, tenemos un ciclo el cual mientras haya una condición que sea verdadera, se puede estar ejecutando de manera indefinida. Este ciclo va a escuchar ciertos eventos que van a modificar algunas variables de estado (por ejemplo, el contador de vidas en un videojuego). La modificación de estas variables puede resultar en que el ciclo se detenga, y que el programa finalice.

Lenguajes y ejemplos

Algunos lenguajes que implementan este paradigma son:

  • Java
  • JavaScript
  • C#
  • Librerías/Frameworks de GUI
    • JavaFX, React.js, PyQT
  • Prácticamente, cualquier lenguaje orientado a objetos.

Aquí vemos un ejemplo en JavaScript. Nota el uso de addEventListener
Ejemplo en JavaScript

Y un ejemplo en Java. Añadimos un event listener con addMouseListener

Ejemplo en Java

Conclusión

La programación dirigida por eventos nos permite tener programas que corran indefinidamente, y que respondan cuando ocurre un evento. Deja en los comentarios si consideras que la programación orientada a eventos es un paradigma imperativo o declarativo 😉.

Contribución creada por: Ciro Villafraz con los aportes de Valentina Barrios.