I am trying to understand the differences between an app and a program on Windows 10. For example, with Skype I can either download it as an app from the Windows Store, or download the classical exe program and install it. Which are the main differences? Can you list them all, I am speaking about general differences common to all the programs-apps, and some example of differences which could be program-app specific.
I am trying to understand the differences between an app and a program on Windows 10.
The difference between the two is primarily programming platform(s):
"Apps" use the Universal Windows Platform (UWP), introduced with Windows 10.
Classic "Desktop" applications typically use the traditional Win32/COM API or possibly the newer .NET Framework (though Microsoft does technically include the UWP in this list).
Compared to Apps, traditional desktop programs are generally more powerful and unrestricted as a whole. Because Apps are intended to be cross-platform among Microsoft products (PC/Xbox/Tablet/Phone) and the hardware/security considerations are so different between these devices, there are built-in limitations in the UWP platform that potentially restrict what Apps can do and how well they can do it.
This matters less with certain kinds of lightweight programs and being cross-platform can even be a benefit in some cases. For instance, when Microsoft killed off desktop Gadgets in Windows, the Pandora Radio Gadget was essentially resurrected as an App intended for phones that could also be used on Windows 10.
However, with more "serious" desktop applications (think PC gaming), UWP starts to lose its advantages and may even begin to grow some thorns. The level of control and programming power available to a specialized Win32-based game engine isn't easily replicated by an App because the UWP and Win32 platforms are implemented so differently.
Then there is also the potential issue of App "compromises".
Apps that use the UWP can be "extended" to take advantage of the power of different hardware... but this isn't always desirable. It's possible to end up with programs that perform much differently when run on e.g. a desktop vs. a tablet, despite being (arguably) the "same" application.
As a remedy to this kind of thing, getting a program to work well on the least powerful/most restricted hardware is often a priority. So a program implemented as an App might limit its graphical fidelity overall to minimize visual differences. Likewise, perhaps a set of on-screen controls designed for a touch interface might not work so well with a mouse (cough... Windows 8 Charms... cough).
Desktop applications often face fewer of these issues in that PC specs (laptop or otherwise) tend to vary less within a given generation of hardware.
There are a couple more things worth noting.
First, despite being available on a traditional PC or even console, Apps are squarely targeted at the mobile space. Microsoft has made a concerted effort to make them only available from its store, much like Apple does for its products or the de facto monopoly Google has on Android. By contrast, desktop programs are still available from a variety of sources.
Second, while it may seem small, icons are a difference. Not just with live tiles and where the icons naturally live, but also the ability to remove them under certain circumstances. Desktop applications can have their icons removed from the All Apps menu, whereas Apps cannot. If you want to remove an App icon from the All Apps menu, you must uninstall it.
More broadly, Apps in general are installed in and live in completely separate, fixed folders which arguably aren't intended to be accessed by users. Win32 programs, on the other hand, retain the ability to be installed almost anywhere and are more easily accessible by whomever is using a given device.