When we start in the world of programming, it is essential to understand the different types of programs we can create (and this is something that is often forgotten to explain in development courses).
I find it interesting that if we are going to develop programs, it is better to know what types of programs exist beforehand.
In general, we can classify programs into four fundamental types:
- Console applications
- Graphical User Interface (GUI) applications
- Services or daemons
- Web applications
Normally, when you learn to program, you start by making one type or another (for example, console or web applications). But sometimes they focus so much that making the transition from one to the other is a bit confusing.
Knowing the types and their differences (which are not that many after all) allows us to have a broader perspective. This way, we can “lose the fear” of switching between one type of development or another.
Console Applications
Console applications are programs that run in the command line or terminal of the computer. These applications are known for being simple and efficient. Instead of a complex graphical interface, console applications rely on text and commands to interact with the user.
For example, I have a console application that helps me manage blog posts. Since I don’t need a graphical interface at all, and I have many commands and options available, with a CLI application I manage perfectly (or even better) than with a GUI application.
In many courses, you will start by creating console applications because they are the easiest to begin with.
Graphical User Interface (GUI) Applications
Graphical User Interface (GUI) applications are programs that use visual elements to interact with the user (like windows, buttons, menus, etc). These applications stand out for being easier to use and because they provide a better visual experience.
An example of a GUI application is a word processor, like Microsoft Word or Open Office Writer. These applications allow users to create and edit text documents using an intuitive and visually appealing interface.
To develop GUI applications, programmers use specialized libraries and frameworks, such as Tkinter for Python, WinForms or WPF for C#, or JavaFX for Java.
These tools provide predefined components and functionalities that simplify the creation of graphical interfaces.
Services
Services are programs that run in the background and are designed to perform specific tasks on a computer or network. Unlike console or GUI applications, services do not interact directly with users. Instead, they provide functionalities and resources that other programs can use.
An example could be the operating system service that manages networks. It is a program that runs without user interaction and is responsible for identifying networks and making them available to other programs.
Web Applications
Web applications are programs that run on a server and are accessed through a web browser. These applications have gained popularity due to their ability to function across different platforms and operating systems without the need to install additional software, only requiring a browser.
For example, an example of a web application would be a social network. Users can access it through a web browser on their computer or mobile device and use its features such as posting content, interacting with other users, posting photos, or attachments.