24 December 2013

Desktop UI

Building a user interface requires a three dimensional view of thinking. One of the core requirements is for the application to be responsive. Even though, certain established approaches have garnered much traction in the enterprise, they have not been wholesome enough nor flexible for the multitude of user cases. Using Java as a front-end has always been a corner case much avoided. In past it was a case of building out light weight UIs that pushed much of the processing on the server-side. In turn, a UI was essentially a dummy interface with customized graphics as part of presentation. These days, however, it has become more about pushing and polling as well as relying on a mixture of processing on client-side as well as server-side to achieve a better responsive feel. JavaScript frameworks and libraries have become the main stay for much of the front-end development on the web. However, JavaScript related desktop UIs are still a road block for security. Approaches, like Swing, Flex, Qt, WPF, have become more appropriate in the enterprise for building out desktop intensive applications even with their limitations. Perhaps, JavaFX is a fairly new and still a very limited option. Flex and Qt are still quite the front runners in desktop domain. However, there are alternatives emerging every so often. Even Griffon can be seen as a Grails alternative for the desktop but has not had much the same level of community support.  Even Mozilla XUL based approach is an option. HTML5 has brought in a new dimension of thinking about UIs in what seems like a challenge for even Flash to keep up. Many desktop UI frameworks have come and gone along the way even from Yahoo and Google. Building a framework that can be utilized both for desktop, mobile, and web is a challenging option as they bring about a multitude of compatibility and performance restrictions as well as each unique set of complexities. Taking a web specific approach then molding it to support desktop and mobile still seems to be the best approach for most. Even building a web application that is supported for mobile from the start is a better approach for responsive services. Desktop UIs need to be available for web interaction in a lot of cases so essentially it seems that in future it will pretty much be about lending web technologies to the desktop feel much to the chasm for HTML5.