Running applications on one machine while displaying the user interface on another is nothing new.

There are two basic ways to do this: first, transmit an image of the server screen to the remote client; and second, send rendering instructions from the server to the client machine.

The second way is obviously much more bandwidth-efficient. Even when the transmitted image is nicely compressed (e.g., JPEG), image data will always be much larger than simple rendering instructions.

UNIX's X has used the rendering-instruction method since 1984. The problem with using X over the Internet has to do with security: X has nothing to do with HTTP, but tightly locked-down servers on the Internet will often try to allow as little non-HTTP traffic as possible. The result is that the much less efficient first method, the image-transmission method, has been used in popular Internet remote desktop applications (e.g., VNC).

Now comes an article from Manuel Lemos showing how the slow-developing PHP-GTK project -- language bindings allowing GTK+ apps to be written in PHP -- could be combined with some new features of GTK+3 (specifically the wayland and broadway graphical-output backends) to create highly efficient, X-like remotely served applications...

...and then display those PHP-written desktop apps in a browser using HTML5 Canvas.

So: bandwidth-efficient remote desktop via browser; no special client software necessary.

As a one-time remote desktop support tech, I totally love this idea.

Some practical stumbling-blocks remain, though. In particular, Manuel notes:

It may not be hard to make [PHP-GTK] work with GTK+ 3 too but the fact is that currently there is not much development going on in the PHP-GTK project. A group of motivated developers would need to get back to the project and update it to make it run with GTK+ version 3.

If you're interested and maybe even inspired, check out the full article.