The coming pain of High DPI in Windows

Posted on 1/15/2014 @ 2:40 AM in #Non Techie by | Feedback | 2489 views

I read Scott Hanselman’s post about High DPI life being painful with great interest. Scott in his fantastic style details out different applications in Windows, some that work well in high dpi, and others that don’t.

Go ahead, read what Scott says first, and come back here.

Living a High-DPI desktop lifestyle can be painful

Lets face it! Windows is behind. Retina displays have been on Macs for a few years now, and Windows is just beginning to support retina displays.
And with that comes the nastiness that you will have to deal with because of no forethought in Windows in supporting retina displays.

Macs use a completely different approach, they let you pick a scaled resolution, and for most users they say “use best for Retina”. Applications, both on iOS and MacOS, work with usual pixels. The only nuance the programmer has to worry about, is supplying two versions of icons. I high resolution for retina, and a low resolution for not retina. Thats it!

The result is, every application on Mac, scales nicely. Programmers don’t have to worry about multi resolution support at all. Programmers drop a button on their UI, and set text on it. They don’t have to worry about what DPI you are running under.

You know what is even funnier? Parallels and VMware Fusion on Mac, both offer to run a scaled version of Windows. So right now, I am typing this on my Mac. I am using two desktops, one running full screen windows, where I am typing this from using Live Writer, and the other running Mac. Windows is running on 1920X1200, and Mac is on full retina (2800 by who cares). And y’know, it works! No wonkiness, no craziness. IT WORKS! I don’t have to screw around with DPI settings at all. Every application in WINDOWS looks nice! You may argue that I am not taking full benefit of Retina on my Windows OS – I don’t agree. Text looks crystal crisp clear and if it were any smaller, I wouldn’t be able to read it comfortably.

Another claim Scott makes is, Windows Metro apps (modern apps), look nice on high resolution. Well again, I find myself in disagreement. If you have written even one Metro App, you will know the royal pain a programmer has to go through to support resolutions in metro apps. There are 6 resolutions to worry about, 3 docked modes, and portrait and landscape. That leaves us to test 36 different combinations. NUTS! When we have to explain to business users why that half-cut-out tile on the right hand side is a good idea, explaining why it behaves differently on different devices, is even more difficult. I guess I could explain, but it takes longer to build, longer to test, and frustrating to explain.

XAML is more flexible when it comes to scaling, but still, the programmer has to worry about all this. This is something the OS should handle. I would argue that most Metro apps look nice only because they were written recently. Once we go to 16K displays (only a matter of time), Metro apps will look wonky too.

On top of that is the marketing spin. “Windows” phone, “Windows” RT, and “Windows” desktop, have not very much in common between them except “Windows”. The reality is, the APIs are so different, you can’t write an app on one and easily port it to another. There is some reuse, but not enough. In contrast, an app written for MacOS, or iOS, share a huge set of common APIs. Porting from iPhone, to iPad is almost trivial. You just write a new view. And porting to MacOS is slightly more difficult, but not really difficult. Windows on the other hand, XAML in Win8 apps is just a huge wrapper around System.NotImplementedException. As a developer, I feel being lied to when they say “Hey its just XAML and .NET, use the skills you already know”. Not really, I can’t use half the crap I can in WPF in Win8 apps. How about some truth and honesty here?

What really bugs me though, is that the brilliant engineers at Microsoft have solved this challenge before. Those of us who have been programming since Win32 or before, know that printers worked on very high resolution, much higher than your screen. So when we printed to printers, we didn’t print in pixels, we printed in scaled pixels. And it worked very nicely. In fact, Win32 printers, printed without scaling, would print a full page, in about a postage stamp.

So, this leads me to my final conclusion. Microsoft needs to put engineers back in charge, including one at the top. The guys at the top as of now, who want to “checkbox off” features, like Windows runs on Retina – need to take a backseat, because they clearly do not understand technology. If it runs badly on retina, well thats worse than not running on retina at all. And if they keep going down this path, they will eventually kill windows. I hope that doesn’t happen, but as of now, I don’t see any impetus in preventing that from happening… yet!

You have to ask yourself, if Mac can run Windows nicely in a scaled resolution mode, why can’t windows do it on it’s own? Is it lack of talented engineers or foresight at Microsoft? I highly doubt that.

Maybe its lack of execution.

Sound off but keep it civil:

Older comments..