I write Windows software for a living and as a hobby. When Windows 8 came out and they introduced the new Metro/Modern app paradigm, I was unconvinced. I never investigated why I felt that way, but I felt so strongly about it that I didn’t even want to invest the time to figure it out.
I’ve recently had another burst of motivation to get certified in my programming skills, and the training I’ve been studying involves these new-style apps. For a while, I was interested, but then as I saw and learned more, I got less interested.
I think the same reason I dislike the modern apps is the same reason I don’t use any apps on my phone. And that’s not surprising since they are essentially the same thing. The problem I have with the apps is they operate in a singular focus at all times. You start at a high level, you dive in, then you back out and do it again. The bottom line is, this will not work for nearly all business applications and it won’t work for many productivity applications.
The official training is as much marketing as it is instructional, and I understand that. As a developer, you have to sell the reasons for creating an application in a certain way. One of the marketing themes is that the user should be “immersed” in the application. There should be no chrome and no distractions. I don’t see how this squares up with business data, which is primarily a collection of relations.
In a business app, you can have an “Order”. But that order has a related customer and products. That customer has a related company and contacts and previous purchases, and each of those products has related inventory, cost information, purchase history, and so on. How can you “immerse” the user in an “Order”? If the user then wants to see the customer information, now you have to immerse the user in a “Customer”, despite the context that the focus is still an Order and you are viewing the Customer in the context of that Order. Ditto with viewing any Product Details.
And I think that’s the part that bothers me to the point that I can’t even begin to want to understand it. A Modern app feels like, “You are working on this. *click* Now you are working on this. Do not think about what you were working on, this is what you are working on.” In fact, the immediacy of “this” sums up my dislike of Modern apps.
When Windows 10 was previewed, I was excited that Modern apps could be run in windows instead of full-screen. It didn’t dawn on me at the time that windowed Modern apps didn’t fix the root problem that the application itself was single-screen. Even if you think about a lowly web application, even they can open pop-up windows. And by that, I mean real windows, not just frames in the main window.
It all just feels like trying to sell a limitation as “the best way”. We can’t do something that way, but that’s not important, because this is the best way to do it. It’s similar to a situation I have at work on the application I help write. The user can’t have more than one screen open at a time because of the way the form controls talk to the parent form. It doesn’t have to be that way, but the early developers didn’t know how to do it correctly, so this limitation was created. Now it’s considered best for the user to only be able to have one screen open at a time.