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).