Wednesday, July 16, 2014

The Flaws in Microsoft’s Windows Store (Windows 8, 8.1)

There is no question that Microsoft’s Windows Store is convenient.
  1. It allows people to download applications in a seamless way.
  2. It allows easy upgrades of applications.
  3. It’s an incredible platform that allows anyone to develop and sell applications that can compete with the big players.
  4. It is more secure than regular desktop apps since Microsoft verifies applications before posting.
However, Windows Apps have a few major issues that Microsoft needs to address.

1: Performance

Microsoft’s Windows Store Apps have horrible startup performance.
Try this performance test on Windows:
  • Open Visual Studio and create a new Windows Store Application
  • Run the application without changes
The splash screen appears.
SplashScreen
After a few seconds, the main app starts.
  • Switch to either the desktop or another Windows Store app
  • Switch back
The splash screen appears again and stays there for at least a second.

Why does it take so long for the application to start, even though there is no user code?

The answer is that Windows stops the application and saves its state. It then reloads the app when the user switches back.

2: Attention Hog

Imagine you execute a command that takes ten seconds to complete. If you were running a traditional desktop application, you could switch to another program and then switch back when the application completes its task.
Unfortunately that is not an option with Windows Store Apps. Windows pauses the application the moment you switch away from the app.
It is true that applications can do some background work while paused. However, in my opinion, this will make the application unnecessarily complicated.
Also, Windows only gives the application 2 seconds of processor time for every fifteen minutes of run time*. That means the application might take hours to execute a command that would otherwise take seconds.
Currently the only thing the user can do is sit at the computer and do absolutely NOTHING while the application does what it needs to do.
Many applications work best when run in the background. A perfect example is your music application. It plays music in the background while you do other things. A Windows Store App is currently not an option since switching away would shut off the music.
I like listening to WARM 106.9 in my web browser. (URL: http://player.liquidcompass.net/KRWMFM) How would I listen to that if the web browser were not in the front and taking up monitor real estate?


The same is true for video processing applications that perform time-consuming tasks.
> Windows Store applications force users to give applications 100% of their attention and prevent them from multi-tasking.
What can be done?
The solution is to allow the user to decide if an application should be paused when switching away from it.
Ideally the user should have two choices:
  1. Users need a global switch to turn on or off whether all Windows Store apps are paused
  2. Users need to be allowed to create exceptions. Ideally users should be able to do this through the task manager.
Since the ability to pause an app affects power consumption, it would make sense that it be in ‘Control Panel\Hardware and Sound\Power Options’.
The user would then choose application sleep options based on if the computer is plugged in or if it is running on batteries.

By letting application run in the background like regular desktop applications, the time delay for switching applications should be eliminated. This would give users a better user experience.

3: Windows Store Crashes

I notice that Windows Store applications can be very temperamental. For example I sometimes like playing Microsoft Solitaire or Mahjong. However, it tends to crash a lot when I do the daily challenges. This tells me two things:
  1. Microsoft’s Windows Store is running on Windows Azure and it is close to its limits.
  2. Windows Store applications can’t handle when connectivity is an issue.

4: Conclusion

Windows Store applications could be incredible if Microsoft fixed the performance issue. They also can’t be run as desktop applications. This means some applications, such as a music player, can’t be packaged as a Windows Store application.
My desktop computer is not a phone. Why should I be limited to what a phone can do?
* Professional Windows 8 Programming, Application Development with C# and XAML, 2012, ISBN: 978-1-1182-0570-9, page 168

No comments:

Post a Comment