A recent discussion with a co-worker resulted in the phrase “responsive, and slow.” This came about from using Microsoft Office 2013. Office 2013 is some kind of a pinnacle of where software development seems to be going, and it seems that’s just a bit too far.
For years now, asynchronous programming has been shoved down developers’ throats. “It must be done this way! It’s how you achieve a responsive UI!” Seems like desktop applications have always had background work being done. The original idea was to do processing in the background, so you could cancel the work if you needed to and so you could display a progress bar. This is fine.
Then there’s the case of background loading tasks. Lets say a dropdown list needs filled, so the dropdown list is disabled while the data is being loaded in the background. Meanwhile, you have your mouse hovering over it waiting for it to finish and become enabled. Now we’re starting to see the effects of async programming.
Now, take everything and make it load async. Your application opens and nothing is there, then things start magically appearing all over the place as they finish loading. This is how Office 2013 feels, although that’s not literally what happens. The best example is marking emails read in Outlook and there is a significant delay in updating the unread message count.
As long as I’m griping about Office 2013, I find the new Lync 2013 client to be ridiculous. I keep my conversation windows on the left side of my monitor, which Lync is great about remembering. The problem is, the new message notification shows up in the lower right of the screen, so I have to click there, then the chat window does a wicked-smooth slide all the way across my screen to where I keep them, then it does a fade in. So, in addition to having to move my mouse the full width of my screen, I have to wait for the animations to finish.
But anyway, back to asynchronous coding. It’s all supposed to be in the name of responsiveness, so the UI doesn’t get blocked by anything. The problem is, maybe the UI isn’t ready for use yet! Have you seen a UI with 20 “loading…” placeholders all over? if you haven’t yet, you will soon. T-Mobile’s account management section does it. This is stupid. How can computers be so fast and yet so slow?