Hi, I would like to share my thoughts considering remote appliation problem.
In beginnig there was X server :) It was designed in mind to enable using of applications in distributed environment. You could open window which was just running on other computer. Time passed and things changed. There is attitiude to use Wayland for Unix GUI which is fast versitile and easy, but not remote. On other side remote apps tend to be run in browser, which is nightmare for developer. X server demise is caused, by difficult problem it tries to solve. Abstracting GUI toolit protocool is painful. But I just look into idea that you do not need to do so. I think it could be possible to pass shader program to X server (even as string). This shader program could be whole GUI lib. It could manage theme, layouts, fonts, widgets, data model on its own on x server. It would depend on widget system how exchange data between client and server. There are already similar solutions done in browser by libs like Apache Wicket, ZKOSS and others. They act for user input, send it to server and server sends updates client. However client state (or rather X server) is rich and you update it by widget properties so communication is really efficient. Cheers, Marek Mosiewicz http://marekmosiewicz.pl