When choosing a UI development framework for your next Web application or mobile development project, there are five key criteria upon which a decision to adopt must be based: ease of learning, overall complexity, interoperability with standard technology, ability to handle and solve common problems, and adaptability with emerging technologies.
Ease of learning
A good UI framework should be easy for a junior to mid-level software developer to learn. And we're not talking about a simple "Hello World" type of application. Performing tasks like input validation, managing user state, handling errors, controlling site navigation and connecting to back ends like RESTful Web services or server-side components should be relatively straightforward tasks. If a junior developer can't quickly put together a simple prototype that does these things, that's a telltale sign that the given UI development framework might be a little too difficult to learn.
The whole idea of using a UI development framework is that it alleviates much of the grunt work that's required when developing an enterprise application. That means simplifying tasks such as error handling and back-end integration. But while there is great value in making things easy for the developer, there should never be a point where the developer has no idea about what is going on under the covers. If the underlying technology being used is overly complicated, troubleshooting difficult problems becomes a challenge.
Frameworks should not only simplify standard application development tasks such as exception handling and input validation, but they should also address issues that are unique to the experience.
And when a developer learns the framework, there should be a solid understanding of how the framework does what it does. If a developer uses a given Web or UI development framework, but has trouble understanding what's going on under the covers, the framework itself might be overly complex.
A good test is to take a moderately complex slice of an existing application and see how well a mid-level developer can recreate that functionality using a UI framework your organization is interested in adopting. If serious problems doing the implementation arise, or a variety of challenges are solved without the developer understanding the why or how the issue was addressed, these are warning signs that the framework is too complex.
Interoperability with standard technology
Ability to handle and solve common problems
Frameworks should not only simplify standard application development tasks such as exception handling and input validation, but they should also address issues unique to the experience. It's amazing how many sites in production today still have trouble with bookmarks or the back button. A Web framework should have an approach to the challenges that come with solving these types of state management and UI navigation issues. If a UI development framework doesn't provide functions that simplify the really tough parts of UI design, then what's the point of adopting the framework?
Adaptability with emerging technologies
New programming trends will inevitably emerge, and UI development frameworks need to be able to adapt to them easily and quickly. Although commonplace now, Ajax was a breakthrough technology, but not all frameworks were capable of incorporating asynchronous interactions. Mobile support is another requirement that emerged that many frameworks had difficulty adapting to, and, today, we see many sites wanting to provide a single-page interface (SPI) type of experience to their users. Before adopting a UI framework, look at how quickly that framework incorporated changes, provided facilities for delivering SPI sites or adapted to mobile development. If the framework was slow to do so, it might leave your organization high and dry the next time a major shift happens in the industry.
There are no silver bullets when it comes to UI development -- be it over the Web, writing desktop applications, creating mobile apps or developing and delivering software over the Web. There will always be difficult challenges that need to be addressed and unusual corner cases that development teams will have to design around. But a good UI development framework can help make dealing with challenges and addressing corner cases an easier task. Keep these five key points in mind when choosing a UI framework for your next project and you'll find that few problems will be encountered. When problems are encountered, they will be much easier for your development team to solve.
What qualities do you consider to be most important when choosing a Web development or UI development framework? Let us know.