Welcome!

Java IoT Authors: Elizabeth White, Stefana Muller, Pat Romanski, Liz McMillan, Yeshim Deniz

Related Topics: Java IoT, Microservices Expo

Java IoT: Article

User Interface Generation Tools: Silver Bullet or Fool's Gold?

User interface generation tools are something that has always been dear to my heart

User interface generation tools are something that has always been dear to my heart. I've enjoyed using them and have been fortunate enough to work on developing them. However, there's a huge tar pit to be avoided when using them on projects that I see people heading towards over and over again.

The problem crops up when one tries to automatically generate GUIs from a model. It doesn't matter what the model is; once upon a time it was a CORBA IDL or a relational database schema, today it's more likely to be a UML model, WSDL schema, RESTful API, or whatever the API du-jour happens to be.

The tool is pointed towards the model's metadata, wizards are launched, and, hey, presto. Alakazam, a brace of fully compliable screens are kicked out in seconds. Things are looking good so far - the application can connect to the messy backend, the GUIs will list elements with trees or tables of child elements, windows are peppered with Add/Edit/Remove buttons, typed attributes are turned into appropriate controls, and it looks like the project is off to a flying start. But beware - this is the same false feeling of well-being that occurs when walking downwind of a fast food restaurant on an empty stomach.

The first problem is that code-generated GUIs are just that - they look and operate as though they are, well, generated by a machine. I feel strongly that GUI software is more art than science, and that the GUI is the most important piece of any application. Musicians use technology to create sounds; animation studios to give life to cartoon characters; however the software's job is to let the artist get on with the job and facilitate the task, not replace them.

The problem with code-generated GUIs is when changes are required. The tool either has a zillion code-generation options that have to be mastered to tweak its output, or more likely you have to tell your users you can't change something awkward or clumsy because that's how the tool made it. This frustrates any skilled GUI developer who looks at the generated code and knows he is perfectly able to change it, but it's forbidden because it can't be round-tripped and would break the link from the model to the GUI.

At this point a standoff occurs between those who think that the model is the center of the universe and those who think that the GUI is more important. I'm firmly in the latter camp - I don't dislike modelling, but it's just a means to an end. The GUI developer has to have total and utter freedom to design something that is totally unconstrained in how it looks or behaves, how it navigates windows, how it reports errors, and so forth.

This has happened because we as an industry create new API protocols so fast that application developers are constantly chasing a shooting star looking for delivery shortcuts. Projects that start out backing one particular language, platform, and backend often find that by the time they're ready to ship the industry has moved on and their once state-of-the-art software looks obsolete.

However, rather than take this approach, I believe that the best route is to hold to the course and focus on the usability of the application and have first-class UI designers on your project to create something that looks like it's been built by developers who care about their user's experience and the beauty of their user interface, rather than the underlying data model. There is nothing wrong with code generation tools, however they should be viewed as cheap furniture - they'll hold up for a short period of time after which they'll bend/warp and crack before they need to be thrown away.  Great if you have a system to build with a short shelf life, however if the software is to have any longevity and you have a choice between investing in modellers who swear by code generation tools, or good developers who have the skill and knowledge to create good applications, for the sake of the user, back the latter.

More Stories By Joe Winchester

Joe Winchester, Editor-in-Chief of Java Developer's Journal, was formerly JDJ's longtime Desktop Technologies Editor and is a software developer working on development tools for IBM in Hursley, UK.

Comments (1)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


IoT & Smart Cities Stories
Machine Learning helps make complex systems more efficient. By applying advanced Machine Learning techniques such as Cognitive Fingerprinting, wind project operators can utilize these tools to learn from collected data, detect regular patterns, and optimize their own operations. In his session at 18th Cloud Expo, Stuart Gillen, Director of Business Development at SparkCognition, discussed how research has demonstrated the value of Machine Learning in delivering next generation analytics to impr...
The Internet of Things will challenge the status quo of how IT and development organizations operate. Or will it? Certainly the fog layer of IoT requires special insights about data ontology, security and transactional integrity. But the developmental challenges are the same: People, Process and Platform and how we integrate our thinking to solve complicated problems. In his session at 19th Cloud Expo, Craig Sproule, CEO of Metavine, demonstrated how to move beyond today's coding paradigm and sh...
@DevOpsSummit at Cloud Expo, taking place November 12-13 in New York City, NY, is co-located with 22nd international CloudEXPO | first international DXWorldEXPO and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. The widespread success of cloud computing is driving the DevOps revolution in enterprise IT. Now as never before, development teams must communicate and collaborate in a dynamic, 24/7/365 environment. There is no time t...
What are the new priorities for the connected business? First: businesses need to think differently about the types of connections they will need to make – these span well beyond the traditional app to app into more modern forms of integration including SaaS integrations, mobile integrations, APIs, device integration and Big Data integration. It’s important these are unified together vs. doing them all piecemeal. Second, these types of connections need to be simple to design, adapt and configure...
In his session at 21st Cloud Expo, Raju Shreewastava, founder of Big Data Trunk, provided a fun and simple way to introduce Machine Leaning to anyone and everyone. He solved a machine learning problem and demonstrated an easy way to be able to do machine learning without even coding. Raju Shreewastava is the founder of Big Data Trunk (www.BigDataTrunk.com), a Big Data Training and consulting firm with offices in the United States. He previously led the data warehouse/business intelligence and Bi...
Contextual Analytics of various threat data provides a deeper understanding of a given threat and enables identification of unknown threat vectors. In his session at @ThingsExpo, David Dufour, Head of Security Architecture, IoT, Webroot, Inc., discussed how through the use of Big Data analytics and deep data correlation across different threat types, it is possible to gain a better understanding of where, how and to what level of danger a malicious actor poses to an organization, and to determin...
To Really Work for Enterprises, MultiCloud Adoption Requires Far Better and Inclusive Cloud Monitoring and Cost Management … But How? Overwhelmingly, even as enterprises have adopted cloud computing and are expanding to multi-cloud computing, IT leaders remain concerned about how to monitor, manage and control costs across hybrid and multi-cloud deployments. It’s clear that traditional IT monitoring and management approaches, designed after all for on-premises data centers, are falling short in ...
We are seeing a major migration of enterprises applications to the cloud. As cloud and business use of real time applications accelerate, legacy networks are no longer able to architecturally support cloud adoption and deliver the performance and security required by highly distributed enterprises. These outdated solutions have become more costly and complicated to implement, install, manage, and maintain.SD-WAN offers unlimited capabilities for accessing the benefits of the cloud and Internet. ...
The deluge of IoT sensor data collected from connected devices and the powerful AI required to make that data actionable are giving rise to a hybrid ecosystem in which cloud, on-prem and edge processes become interweaved. Attendees will learn how emerging composable infrastructure solutions deliver the adaptive architecture needed to manage this new data reality. Machine learning algorithms can better anticipate data storms and automate resources to support surges, including fully scalable GPU-c...
The Founder of NostaLab and a member of the Google Health Advisory Board, John is a unique combination of strategic thinker, marketer and entrepreneur. His career was built on the "science of advertising" combining strategy, creativity and marketing for industry-leading results. Combined with his ability to communicate complicated scientific concepts in a way that consumers and scientists alike can appreciate, John is a sought-after speaker for conferences on the forefront of healthcare science,...