When two people who’s work I respect say almost the same thing within a couple of days of each other, I take notice.
Howard says:
there’s a prevalent myth that a single web application should cater to a desktop client, a palmtop client and a cell phone client in exactly the same way.
Ted says:
I’m firmly convinced that trying to build a single user interface code base that knows how to render itself to multiple channels is not only a waste of developers’ time, but a waste of users’ time, too. Inevitably, you want to do something (or, more likely, the users want you to do something) that needs to take advantage of the unique, value-added features of that particular channel, and suddenly you’re in the world of #ifdef-ed or special-case coding. This is also where you start down the slippery slope of tangled concerns and spaghetti code.
I think they are right. I’ve never written an application that uses the same display layer to target separate devices or display modes, but I have written apps that have multiple client types connecting to the middle-tier layer. We continually see issues even with this separation of data - the thin client needs “just a bit” more done, or the thick client sends the data “just a little bit” differently.
Surely similar issues happen when the display layer trys to cater for more than one device? (I’m not interested in theoretical arguments here - I understand perfectly well the attraction of writing code one. What I’d like to hear about is an application where it has been done successfully).