Friday, November 01, 2013

IT sure is weird: Part 1

In 1987 the XWindows consortium was formed at MIT (http://en.wikipedia.org/wiki/X_Window_System). X Windows was this weird, powerful thing that allowed an application and its UI to be split across a network. It was very prominent in the GUI wars back in the days when "Workstations" where from companies like Apollo and Sun.

In 1994, W3C consortium was formed at MIT. Web browsers begin to take over the client side of the planet. Meanwhile, Linux - with the X Windows System built into it - is steadily taking over the server side of the planet. In 2013, HTML5 is central to a new era of Web - namely dynamic assembly of "pages" with lots of Javascript being executed client side under the control of the server which is sending over the instructions. The Javascript has access to a canvas element and can basically scribble on the screen pixel-by-pixel. A new era in rich-web-apps is possible.

Sit at, say, an Ubuntu laptop. You are most likely running an X Windows based GUI. It is perfectly capable of doing client/server apps where the server side controls what appears on the screen, down to the pixel level, using the X network protocol. You are almost certainly not doing that however. You are most likely running a browser on top of X. It is most likely using HTML5 to do what the X system could do itself, namely, remote screen control from the server side.

So server generated HTML contains Javascript which ultimately makes X calls, rather than the server side directly doing the X calls. Pretty weird. There appears to be umpteen unnecessary layers involved in all this to me. Part of me thinks that there is an alternative universe where we are all using what where confusing known as "X Servers" on our desktop machines, rather than browsers.

IT sure is weird.

2 comments:

Brant Watson said...

The network transparancy of X often seems to carry this idea that it was intended to be used over a network. In reality though, its design, whilest supporting that (admittedly pretty damn cool feature), was always primarily intended to be run locally. The split of X into a client/server architecture just allowed some really interesting things to happen.

Of course in todays world things have changed drastically. While in many was the graphics stack in Linux is still more performant than PresentationManager or whatever the windows display manager is called, it is showing its age.

Wayland (and to a lesser degree its less-popular step cousin Mir) are beginning to rethink the stack we're accustomed to. GTK (and by proxy Gnome, Gimp, LibreOffice, and other applications) already support Wayland. GTK also has some really interesting features including the ability to use an HTML5 backend(called Broadway) instead of X or Wayland. This means that you can actually launch applications like LibreOffice as a server and interact with them in your browser: http://www.youtube.com/watch?v=wdqgSB9axZQ

We do indeed live in weird interesting times.

Igor Dvorkin said...

HTML5 is like broken English - the closest thing we have to a universal language.

Sure you might be a native Spanish speaker, and sure Spanish is wonderful lyrical language that sings in the ear of Spaniards, but not everyone speaks Spanish.

Since almost everyone speaks broken English, we're going to give instructions in broken English.

For the listener, decoding and translating English to a native language seems expensive, but it's probably cheaper than having the speaker learn all languages.