Guest contributor, Paul Herzlich, Principal Analyst, Creative Intellect Consulting
Bruisers and browsers: through thick and thin
Another perennial seesaw act in software architectures has been the thin or thick client debate.
With the Internet came the viability of the thin client (the concept had been around for many years, after all, what were dumb terminals?). However, permanent connectivity and bandwidth have made it a fairly slow process of moving towards computing in what we now call the Cloud. Let’s take email as an example. It took quite a few years for people to accept using web mail solutions instead of Outlook or other desktop mail client. And to this day, thick mail clients are still widely used. Likewise for most ‘office productivity applications’. Maybe that is now changing.
But the Internet did usher in a whole new era of self-service applications like banking, retail and even financial trading. These new applications were presented to us through the browser, which became a powerful execution and presentation engine through the addition of Web 2.0 technologies. It is now to the point where a browser-based application can be as functional, interactive, responsive and robust (maybe more so) as a thick client application.
The heterogeneity of technologies to achieve this is both a wonder and a worry. Look under the hood and you find a dog’s dinner of simple HTML with embedded scripts – in multiple script languages; outward references to style sheets who are acting in a passive, declarative way; calls to external services; coupled with implicit browser behaviour. Who’s in charge? Use CSS floats and you can’t even tell what order the HTML elements will be displayed on the page. Not the worst problem in the world, but a fundamental violation of a simple premise of HTML in the beginning that things just stacked on top of each other from top to bottom.
Never mind where’s the data? Where’s the program? It’s all in there somewhere. Despite this muddlement, the browser became a bruiser and looked destined to dominate the shape of programs and programming until…
Back to the smartphone future
What got me thinking about data versus programs and thin versus thick clients – about architectures in general – was the introduction of the iPhone. Among the many disruptions it caused, it equivocated over the direction of application development. At the launch, Steve Jobs proudly revealed how browsing on the iPhone became feasible. The device had a clear screen. Tap to enlarge an area of interest on a page. Touch to interact with buttons, good drop down lists, usable text entry. Anything you could work with in a browser on your desktop computer, you could do on the iPhone. (Except Flash, we all know.)
But in the wake of the phenomenal success of the iTunes Store, Apple also launched the App Store, which has become a model for the industry. What we got from that was a whole new way (yet again) of delivering old-fashioned programs. I don’t know whether Apple knew how this would pan out. But what has happened drives me to blog. Or should I say rant?
Rant 1: Simple. Rejoice. Great to have new ways of delivering functionality that requires portability and mobility.
Rant 2: Democratisation of software. Anyone with an idea can build and market an App. They could have done that on the Internet using web technologies. The App Store adds the dimension of a clear marketing vehicle. It was probably more rewarding when the Apps numbered in the thousands. Trouble is, of course, app stores (no brand intended here) give credibility to some unholy and unmitigated junk. I resent the lies, the deceptively named-to-confuse Apps, and the debilitated functionality. This includes software that is nothing more than advertising. How does it get through screening? As bad as a link farm.
Rant 3: Half-baked mobile software. Make up your minds. Is it something I should run in a browser or is it a self-contained App. Thank you for your App’s big buttons to select a primary function, but shame on you for those buttons that simply take me to an in-App or out-of-App browser window. The user interface suddenly changes and the out-of-App browser window has no integral navigation back to the App.
Rant 4: If I have the App please don’t run the browser version. I hate when this happens: Facebook, YouTube, Twitter – Apps all on my iPhone. Sometimes they open in the browser; sometimes in the App. Why?
Rant 5: Same functionality everywhere, please. I notice that with iOS 6, if you use the browser it will tell you that there is an App. Good idea. I’ll get that App. Of course, your App had better not do any of the nonsense mentioned in my prior three themes, and one other further thing, too. If you tell me to use the App, it had better have at least the same functionality as your browser application. The worst case is that they both do some things not done by the other. That’s a nightmare for a user – for your customers if you need reminding.
Rant 6: Where’s my data? Clearly not an issue for most people, although I daresay, some people might detect there’s something wrong when they can’t see text done in one program (say a Note) when they want to look at it in another program (say a Diary). The trouble is that programs make very poor viewers of collections of data. If I have word processing documents filed by topic on my computer, why can’t I have them filed with documents of all formats about the same topic on my smartphone or tablet? Is staying organized really anathema to mobile computing? I know that Search is the new organizational paradigm (i.e. don’t organize, but instead use Search find your needle in a haystack) but I just did an experiment to see if I can find a Pages document via title or contents on my iPhone with Spotlight. The answer is no.