blog.lukhnos.org

The Remote Desktop Envy

For all the advantages of Mac OS X over Windows, there is one thing that my IT friends always sneer at: That OS X has the inferior remote desktop protocol.

Apple makes remote management quite easy. Its Apple Remote Desktop, although expensive, has great user interface and is indispensable if you manage over a bunch of machines. Since OS X 10.5, it has become even easier and cheaper if you just need a quick access to another box—the screen sharing feature is built-in gratis.

This being said, OS X's core performance of remote desktop management itself has a bad reputation. If you compare it to that of Windows, OS X's remote desktop is slow. If you use Microsoft's own client software to talk to a remote machine, it uses its proprietary protocol and only requires essential drawing commands. This is why the remote desktop is stripped of any theme when drawn in the client side (and many people like it). OS X, on the other hand, builds on the open VNC protocol and transmits lots of raw pixel information. That OS X has far more visual effects and its UI is more sophisticated is of no help. It seems that when OS X's window system was designed, remote desktop was never taken as a high priority, even if the window system is also client-server based, like most modern desktop GUI systems are.

Another interesting consequence when all those design decisions got lumped together is that you can never have more than one person using the desktop remotely. That is, if someone is logged into the local desktop console, it is impossible for you to login remotely and have your own desktop served to you. Programmatically it has also limited the usefulness of OS X as a graphics server, as window-backed drawing processes must either be under an actively logged-in user (and that has to be in the local desktop console) or root, which is highly undesirable if your graphics program powers some web service. My experiences show that Quartz, when being used with higher-level abstraction layers like Cocoa, is far superior to any graphics package out there (e.g. ImageMagick), especially with its supported range of formats (especially PDF) and excellent graphics model, but that graphics server permission thing limits its usefulness.

On the other hand, the decline of the desktop—if we can term the trend as such—is evident in the way that not much has been changed in the basic design of modern window-based GUI, and remote desktop is among the laggards. And when laptops are so cheap (but bandwidth still a problem), it's easier to build a service architecture around client-rendered web pages and server-provided web services. Serving desktops remotely is out.