Web UI Frameworks

The web is an interesting place because it is both visual and text based. The browser provides a middleground between text and what we see with GUI toolkits. HTML 5 seems to expand this role closer in both directions by providing more interactive tools along side meta data to make documents contain more information.

My interests have traditionally been on the server side of web development. JSON as an interchange format has been helpful in allowing a simple goal of computing data and utilizing it in web applications. REST based services utilizing JSON has become a welcome norm to allow dynamic applications in web browsers.

What has always been missing for me personally are the tools to make the UI look good easily and fully utilize a JSON data service. The idea of a UI created completely in the browser has always been appealing, but impelementing such a system has always been difficult. Fortunately, that all seems to be changing.

In terms of making consistent, clean UIs, we have a wealth of CSS frameworks to choose from. I’ve used YUI and Blueprint with some success. More recently, Bootstrap from Twitter seems like a promising option to get a great headstart on a nice interface. Most of these sorts of tools focus on some basic defaults and patterns, but that is often times extremely helpful when you’re like me and your interests are on the server side.

Another really interesting project that I hope to try is Obviel. It is basically a client side templating system that relies on JSON data to fill in the content. This isn’t an entirely new idea, but considering there are plenty of options that perform this sort of function suggests the idea is getting clearer and more concise. The issues that others found in creating systems like this seem to be getting solved, which is great news.

When I first got out of school I worked at a company that had an actual desktop application. I wrote a few GUI tools in addition to working on the actual applications. It was always fun designing a GUI, yet horrible to actually implement it. The nice part was that almost all the basic design questions were answered. You knew the colors and the menu structures. You had a suite of widgets to work from and they all were pretty consistent in look and feel. Actually implementing these ideas was never trivial though, primarily because C# was complex and required tons of code.

With web applications the complexity can live in the browser, the server or both. The result being that there are more opportunities to contain complexity. Fortunately, thanks to tools like the ones above, there seems to be actual means of hiding more complexity along with tools that help to keep the process consistent and simple. While I think many people see more excitment in HTML 5 features like video and WebGL, I’m personaly happy it is easier than ever to provide the services I enjoy with clean, simple interfaces.