Language: EN


Types of programs

When we start in the programming world, it is essential to understand the different types of programs that we can create. This is something that is frequently 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.

In general, we can classify programs into four fundamental types:

  • Console applications
  • Applications with a graphical user interface (GUI)
  • Services or daemons
  • Web applications

Usually when you learn to program, you start by doing one type or another. For example, console or web applications. Then, transitioning from one to another is a bit confusing.

Knowing the types, and their differences (which are not so many either) allows you to have a broader vision, and “lose the fear” of changing between one type of development or another.

Console Applications

Console applications are programs that run on the command line or terminal of a computer. These applications are known for their simplicity and efficiency. Instead of a complex graphical interface, console applications are based on text and commands to interact with the user.


For example, I have a console application that helps me manage blog entries. Since I don’t need a graphical interface, and I have different commands and options available, I manage perfectly (or better) with a CLI application than with a GUI application.

In many courses, you will start by making console applications, because they are the simplest to start with.

Applications with Graphical User Interface (GUI)

Applications with a graphical user interface (GUI) are programs that use visual elements, such as windows, buttons, and menus, to facilitate user interaction. These applications are known for their ease of use and their ability to provide a visually attractive experience.

An example of a GUI application is a word processor, such as Microsoft Word or Open Office Writer. These applications allow users to create and edit text documents using an intuitive and visually pleasing 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 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 is responsible for managing 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 work on different platforms and operating systems without the need to install additional software, only with 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 functions such as posting content, interacting with other users, posting photos, or attaching files.