Cuando comenzamos en el mundo de la programación, es esencial comprender los diferentes tipos de programas que podemos crear (y es algo que se olvida frecuentemente explicar en los cursos de desarrollo).
A mi me parece interesante que si vamos a desarrollar programas, antes conviene saber qué tipos de programas existen.
En general, podemos clasificar los programas en cuatro tipos fundamentales:
- Aplicaciones de consola
- Aplicaciones con interfaz gráfica de usuario (GUI)
- Servicios o daemons
- Aplicaciones web
Normalmente, cuando aprendes a programar, empiezas haciendo un tipo u otro (por ejemplo, aplicaciones de consola o web). Pero a veces se centran tanto, que hacer la transición de una a otra es un poco confuso.
Conocer los tipos, y sus diferencias (que en el fondo tampoco son tantas) nos permite tener una visión más amplia. Así podemos “perderle el miedo” a cambiar entre un tipo de desarrollo u otro.
Aplicaciones de consola
Las aplicaciones de consola son programas que se ejecutan en la línea de comandos o terminal del ordenador. Estas aplicaciones son conocidas por ser simples y eficiente. En lugar de una interfaz gráfica compleja, las aplicaciones de consola se basan en texto y comandos para interactuar con el usuario.
Por ejemplo, yo tengo una aplicación de consola que me ayuda a gestionar las entradas del blog. Como no necesito interfaz gráfica para nada, y tengo muchos comandos y opciones disponibles, con una aplicación CLI me apaño perfectamente (o incluso mejor) que con una aplicación con GUI.
En muchos cursos empezaréis realizando aplicaciones de consola, porque son las más sencillas para empezar.
Aplicaciones con Interfaz Gráfica de Usuario (GUI)
Las aplicaciones con interfaz gráfica de usuario (GUI) son programas que utilizan elementos visuales para interactuar con el usuario (como ventanas, botones y menús, etc). Estas aplicaciones destacan por ser más fáciles de usar, y porque proporcionan una mejor experiencia visual.
Por poner un ejemplo de aplicación GUI es un procesador de texto, como Microsoft Word o Open Office Writer. Estas aplicaciones permiten a los usuarios crear y editar documentos de texto utilizando una interfaz intuitiva y visualmente agradable.
Para desarrollar aplicaciones GUI, los programadores utilizan bibliotecas y frameworks especializados, como Tkinter para Python, WinForms o WPF para C#, o JavaFX para Java.
Estas herramientas proporcionan componentes y funcionalidades predefinidas que simplifican la creación de interfaces gráficas.
Servicios
Los servicios son programas que se ejecutan en segundo plano y están diseñados para realizar tareas específicas en una computadora o en una red. A diferencia de las aplicaciones de consola o GUI, los servicios no interactúan directamente con los usuarios. En su lugar, brindan funcionalidades y recursos que otros programas pueden utilizar.
Un ejemplo podría ser el servicio del sistema operativo que se encarga de gestionar las redes. Es un programa que se ejecuta sin interacción del usuario, y que se encarga de identificar las redes y hacer que estén disponibles para el resto de programas.
Aplicaciones Web
Las aplicaciones web son programas que se ejecutan en un servidor y se acceden a través de un navegador web. Estas aplicaciones han ganado popularidad debido a su capacidad para funcionar en diferentes plataformas y sistemas operativos sin necesidad de instalar software adicional, sólo con un navegador.
Por ejemplo, un ejemplo de una aplicación web sería una red social. Los usuarios pueden acceder a través de un navegador web de su ordenador o dispositivo móvil, y utilizar sus funciones como publicar contenido, interactuar con otros usuario, publicar fotos o ficheros adjuntos.