User interface is one of the key external visible faces for any application. Getting the user interface design right and picking up a rich user interface technology is the key for a successful project. Selecting a Rich user interface technology depends on various criteria. In my view, some of key criteria for selecting a Rich user interface technology include the following –
- Tooling and debug environment.
- Remote debugging support.
- Support for unit test and Integration test.
- Licenses, Road Map and support – Open source support (Active community, Jira fixes, resolutions)
- Customization and extensions. Turnaround time to introduce new changes after deployment.
- Skill set of available resources
The last two points are also a major enabler for selecting a user interface technology. For instance if your organization had skilled Java script resources, then you could pick up any Java Script AJAX framework like EXT JS or DOJO. On the other hand, if your organization has skilled Java resources (not really web developers) you could very well use GWT. The GWT is a development toolkit, which provides a set of core Java APIs to write AJAX based applications in Java, which is later complied to JavaScript that runs on widely supported browser (which GWT supports). The development environment (eclipse extensions) lets you debug AJAX based applications which is quite useful as compared to using Java Script directly. I would really like to see a graphical way of creating AJAX applications in GWT and it seems with the recent Google acquisition of Instantiations ,they could provide this capability with GWT toolkit. One of the features, I would like to see in GWT is to make the generated code more readable, so I can add my code extensions easily if there are issues with the generated code.
Adobe Flex on the other hand has a different model – where you create Rich applications (using Action Script – which is similar to Java Script) based on Abode Flash platform using Flex Builder which provides Debugger and Profiler capability. The Flex applications runs on a browser which needs to have Flash plug-in installed. The Flash plug-in ensures cross browser compatibility on the browser, but then you have to move away from the browser native functionality and need to have Flex Skills in your organization. With the HTML 5 specification, some of the Rich internet application functionality would be uniformly supported and one needs to look at trade of using Flex in future for features which are not supported by HTML.Personally I see Flash going away with HTML 5 and with mobile adoption.
With respect to code maintenance and debugging applications, if you have large scale web projects, writing and organizing Java scripts code is difficult as compared to other technology like GWT.
In my view, based on your requirements you carefully need pick up a user interface technology and look the roadmap support for that technology. Hopefully this blog gave you some of the insights on how to select a rich interface technology.