O'Reilly From the Editors List
BooksSafari BookshelfConferencesO'Reilly NetworkO'Reilly GearLearning Lab
 



Are Rich Clients Taking Off or Tanking?

Edited by chromatic
November 2002

In the late 1990s, Netscape had an idea. Instead of writing applications for a particular operating system, write them to a Web browser. Given ubiquitous Internet availability and the presence of a known reliable middleware platform, people could work whenever and wherever they had a Web browser.

History reveals that the plan didn't quite work, as incompatibilities, monopolies, and other intangibles interfered. However, the idea never went away. The W3C eventually standardized a set of technologies that made dynamic HTML possible. Mozilla finally released an amazingly powerful and mutable browser suite. A few client-side plug-ins evolved into quick and easy UI components from annoying toys.

What follows is an email discussion between some of O'Reilly's editors.

From Simon St. Laurent:

I have to admit that I'm worried about the web client space and what looks to me like its ongoing fragmentation. As complicated and annoying as the browser wars were, there was excitement in that space and continuous change. Right now, I see both stagnation (XHTML 2 is FINALLY making some useful changes after years of nothing) and fragmentation ('rich clients' in .NET, Java, Flash MX, etc. while the browser is de-emphasized.)

Much as I hate to say it, the Web seems to be in decline right now, damaged by too much ambition (and long delays) at the W3C, too little genuine interest at Microsoft or Netscape/AOL/whoever, and a lot of programmers who can grasp RPC easily enough but have little interest in working on a machine-readable Web.

So far as I can tell, Microsoft's dispersed the IE team(s) and withdrawn from participation on a lot of W3C activities, focusing only on the bits it wants for other projects. Mozilla may yet prove useful, and I've heard Opera's in the midst of a major architectural renovation.

From Tim O'Reilly:

This is interesting news, Simon. I hadn't heard bits of it. On the other hand, I see the fragmentation perhaps leading to a new renaissance. Things I find *very* interesting:

* You can make really nice UIs in Flash. I'm very taken with the whole "Rich Internet Application" story. I'm not sure it's easy enough yet to develop for, but it's sure as heck a pleasure to use a site that is designed for single screen operation with regional updates, rather than constant page refresh for every new step. Is this "the web" as we knew it? No. But is it interesting, and will it lead to new opportunities? Yes.

Related Reading

ActionScript for Flash MX: The Definitive Guide
By Colin Moock

* I'm also interested to see, in Watson and Sherlock on OS X, the idea of specialized UI apps that are really oriented at the *data* from web sites (i.e. Web services) rather than the document/page model. Again, I see this as the early sign of some rich innovation.

* I also think it's great that we're getting beyond the "everything looks like a nail" stage in which every net application is a browser application. Napster broke the mold. Now lots of people are doing it. Fragmentation, yes. But the bigger picture is that network programming is entering the next phase. P2P is over as a buzzword, but there's lots of that happening.

It was amazing to be able to sit in the audience at Mac OS X Con, pop up iChat, and see, via Rendezvous, all the other folks in the audience, and, if I wanted, to chat with any of them.

The whole digital hub thing is happening. Digital Photography is pushing personal web publishing again. Weblogs. Massively Multiplayer Gaming. In short, there are oodles of interesting opportunities.

This is like the web in 1992, when we published the Whole Internet User's Guide, and there were only 200 web sites.

The web is dead. Long live the web, or at least the impulse behind the web, which was to take advantage of the network to share information.

Nat Torkington replied to the "Rich Internet Application" quote:

It seems like a profoundly retrograde step to me.

Simon agreed:

It feels profoundly retrograde to me as well. I'd hoped to see better approaches for extensible browsers and information models rather than the slow death of the browser combined with everyone building new apps.

Tim's response:

I'm curious to understand why DHTML is OK, but flash is "retrograde." Flash runs in the browser, just like DHTML and JavaScript, and in fact, ActionScript is just another form of ECMAscript. Have you guys looked very hard at this, or are you just expressing bias?

And as to "everyone building new apps" -- that's a natural consequence of the web services story, so that seems OK to me too. What are web services for but to make it easier to make apps that don't use the browser? The browser as universal client lead us to WAP (a dead end--let's just make a smaller, more limited browser), where web services say, "let's assume that the code to drive the browser is a kind of middleware; what kind of middleware might we write if we were able to get directly at the data for other purposes?"

In short, I see things like the Flash RIA vision *extending* the browser to make it a more functional client, at the same time as web services (and specialized web services clients like Sherlock and Watson on OS X) are deconstructing the browser-server paradigm. But both are saying the same thing: the browser was designed for text, not apps. CGI and its sequels took us a certain distance, but not far enough. Let's go the rest of the way to a general programming paradigm for distributed applications.

I don't think any of these things are the be-all and the end-all. In fact, they are very clearly intermediate steps. But they are interesting steps, and in a useful direction.

Bruce Epstein also replied to the "retrograde" comments:

I've asked Tim the same question frankly. I don't know enough about Java to know the answer. Maybe Flash is just easier to use. I don't think it is "retrograde" so much as Tim catching up with something that has been around a long time. FWIW, Flash and Director can easily create desktop clients that do NOT live in the browser. You've been able to build really interesting desktop apps that access a back-end server in Director for, like, 5 years. But this was at a time when all the money was going into the Web.

From Tim:

Well, if you want to talk stuff that's been around a long time, the prior art on dynamic, distributed objects actually goes back at least as far as Viola, which Dale was championing in 1992 (and which has been used as prior art in at least one patent case involving Microsoft as a defendant.) [ The Viola homepage contains a detailed history of the first web browser. ] So it's not a matter of "Tim catching up with something that has been around a long time" so much as Tim seeing that something that has been around a long time (and a long time interest at O'Reilly) is finally, *perhaps* going to get a crack at the mainstream.

What excites me about RIA is that it represents a change in metaphor for application development. Java applets and Flash animations were fundamentally trivial. For whatever reason (security fears in the case of Java, a focus on multimedia in the case of Flash), this type of technology was never seen as the stuff of real business applications. But the Flash RIA story is about functional, business-like front ends, with easy back end connectivity. All the pieces of the puzzle seem to have arrived. [ The Broadmoor hotel's web site is a good example of RIA in action. ]

Flash has wide penetration, so flash interfaces are almost completely portable, if a bit slow on first load over a dialup line. The back end story is good too, with both .Net and Java (as well as Cold Fusion) supported. It's not clear if this run at the richer front end will work, but it has a better chance at it than anything I've seen in a long time, if Flash can shake the preconceptions that it is a toy. (Macromedia has to stop doing gratuitous animation in their demos. It completely hides the real power.)

From Jonathan Gennick:

Let me say upfront that I don't follow Flash all that closely, but I am aware of Macromedia's efforts to promote Flash for what Tim refers to as "rich Internet applications".

What I find interesting about all this is that when Java first came out it was touted as the holy-grail for rich Internet apps (that's what I recall). Yet Java completely flopped at what it was originally designed to do. Now, along comes Macromedia with Flash, and they've put all the pieces together when no one was looking.

I should probably stop with the above, which is the main point I wanted to make, but I'll add the following thoughts, which I've really not spent a whole lot of time thinking about.

Who cares whether Flash is a de-jure "standard" or not? It certainly seems to be a viable de-facto standard. (Imagine what a mess an ANSI-Flash would be.) Flash works. It works on different platforms. It's lightweight enough that it doesn't seem to bother anyone, and Macromedia has managed to get it out there to huge numbers of people.

I watch what my kids do. The sites they go to are almost all Flash. My son Jeff plays what I believe to be Flash games every day after school. He's happy with it, which tells me that Flash works.

Is Flash a step backwards because you can't bookmark pages? Well, I admit that I like bookmarking pages, but again, look at my kids. They are happy with Flash. They are growing up with Flash. Neither one is ever going to clamor to return to plain old HTML. If we're going to have interesting web applications, and by "interesting" I mean engaging and interactive, and responsive, we're going to need some sort of unified, client-side toolset to work with. This business of using HTML, XHTML, DHTML, CSS, and all sorts of other acronyms just won't work.

From Simon:

Are your kids actually using Flash to create applications, or are they just consumers?

Related Reading

Dynamic HTML: The Definitive Reference
A Comprehensive Resource for HTML, CSS, DOM & JavaScript
By Danny Goodman

From a strictly consumer point of view, I don't think most people care at all about what technology provides their Web experience. Whether or not Flash is part of the browser is not something that would likely occur to my mother to ask, unless she encountered a situation where that separation mattered (an upgrade, incompatibility, etc.)

From a developer's perspective, though, there are a lot of different issues. I tend to divide them into short-term and long-term, as different technologies have different advantages.

In the short term, ease of development matters, especially for Web-based tools where lots of people still expect things to get done in "Internet time," whatever that was. Quick development cycles (typically aided by GUIs) and consistent results are key features here, and Flash can certainly provide those. XHTML+CSS+ECMAScript+XML+XSLT may not do that as consistently, thanks to browser variations and GUIs that tend to obscure as much as they help.

In the longer term, ease of maintenance is a much more important set of issues. Can generations of different development teams reuse the code they've been handed while writing in additional updates? How tightly bound are the data and the processes for working with that data? Can I collect information from different sources or send it out to different places? This was a Web application, but now we want to be able to access it from cell phones, PDAs, and CB radios.

Those longer-term issues are a lot more difficult to address, and they typically require a combination of technology capabilities and best practices. Spaghetti DHTML isn't going to have any maintenance advantages over spaghetti Flash, but a setup that uses XML as a foundation for XSLT transformations into a variety of different target media, including XHTML+CSS+ECMAScript (and possibly different versions of that) may well have an advantage over the long term over an application that uses XML or SOAP to communicate with a monolithic client.

There's a lot of interesting stuff going on, but I think we're a long way from a shakeout that presents us with a single winner.

From Jonathan:

I went out and checked. The games my kids are playing are done as Java applets. Flash seems to be part of the UI, but the actual games are Java. Ok. Go ahead. Laugh. Obviously I can't tell my Java from my Flash. I saw things moving on the screen and just assumed it was Flash.

My point below, however, isn't so much related to Flash as it is to the whole rich Internet application thing. My son is used to highly interactive sites like bonus.com (his favorite). He isn't interested at all in plain old HTML sites. To capture people like him (and my daughter, and the kids I see using the web at school), site designers are going to have to design highly interactive (so called rich) web applications. In fact, the games my kids play wouldn't be possible without some underlying rich Internet application technology.

And I really don't think I'm going to say more, because this just isn't a space I've been watching closely. I've probably blurted out enough half-baked thoughts for one day.

From Bruce:

At 10:31 AM -0400 10/15/02, Simon St.Laurent wrote:
Flash runs in the browser but as a separate and (still) proprietary layer. That's my fundamental objection, and I don't see it going away.

Well, that is a political/religious objection, and as such, you're right, I don't see it going away. That said, I'd wish you'd admit that there are open source players that implement the SWF file format. [ Macromedia's SWF file format is freely documented. ] Did you see the news in New Architect about someone claiming a patent on JPG images? Are you going to refuse to use JPGs now? What about GIFs? The web grew up on these proprietary file formats. SWF is no different.

In the longer term, ease of maintenance is a much more important set of issues. Can generations of different development teams reuse the code they've been handed while writing in additional updates?

Of course. Macromedia pays a LOT of attention to backward compatibility. For that matter, you can't even need to upgrade legacy swf files. Macromedia makes sure that files from Flash versions 3, 4, and 5 also play in the Flash 6 plugin.

How tightly bound are the data and the processes for working with that data?

They were fairly tightly bound in Flash 5. They are not tightly bound at all (by comparison) in Flash MX/6. Yes, they are more tightly bound than they would be in XML, but Macromedia has struck a very effective balance given the installed base of users who PREFER it to be tightly bound and the needs of the applications for which it was designed.

Can I collect information from different sources or send it out to different places?

Sure.

This was a Web application, but now we want to be able to access it from cell phones, PDAs, and CB radios.

Well, not CB Radios, but Flash has players in place for handhelds and PDAs. I think they have them for cell phones too. Portability in theory is great, but if XML is too slow and bloated for some devices, the portability becomes moot.

Please note, I'm usually very careful not to characterize stuff I'm not familiar with, and I don't mean to mischaracterize XML. That said, Macromedia is doing stuff today, so yes, their time horizon is different than yours. As Tim once complained about me, it is meaningless to discuss ad nauseam what might transpire in the future if it is unpredictable. XML is more like basic research into physics, like the Manhattan project, whereas Macromedia is more like a chemistry lab trying to refine gun powder or invent TNT.

At 10:40 AM -0400 10/15/02, Jonathan Gennick wrote:
Is Flash a step backwards because you can't bookmark pages?

I repeat. You can bookmark pages that contain Flash. You can bookmark "pages" (if you want to call them that) within properly written Flash documents. This was true in Flash 5, but it is easier to develop this way in Flash MX/6. FWIW, there are dozens of pages that I visit every day where bookmarking doesn't work, and these have nothing to do with Flash. These are usually database-driven pages using, say, ASP or ColdFusion. It is easier to bookmark Flash than a frameset in most cases, and Flash can eliminate the need for framesets.

From Simon:

At 01:24 PM 10/15/2002 -0400, Bruce Epstein - Zeus Productions wrote:
That said, I'd wish you'd admit that there are open source players that implement the SWF file format.

Related Reading

SVG Essentials
By J. David Eisenberg

I'll happily admit it. I don't think they matter very much overall, however - more fringe than Mozilla, and hardly worth comparison to the piles of open source XML and XML application tools out there.

Did you see the news in New Architect about someone claiming a patent on JPG images? Are you going to refuse to use JPGs now? What about GIFs? The web grew up on these proprietary file formats. SWF is no different.

JPG and GIF at least started out as theoretically multi-vendor standards long before patents appeared to tangle them. I'm transitioning from GIF to PNG myself, but I don't think the comparison is all that apt. Putting a graphic in GIF/JPG/PNG is a matter of choosing a value in the 'Save As' box of a graphics app. Choosing between SWF and other technologies (Java, Curl, Web, whatever) is a much bigger choice.

Of course. Macromedia pays a LOT of attention to backward compatibility. For that matter, you can't even need to upgrade legacy swf files. Macromedia makes sure that files from Flash versions 3, 4, and 5 also play in the Flash 6 plugin.

Backward compatibility is a good story for vendors. That's not what I'm asking here, however. I'm asking how difficult it is to reuse the existing code base in new versions of an RIA moving forward. Macromedia may have a good story on that, but it's not something I've seen them selling hard.

They were fairly tightly bound in Flash 5. They are not tightly bound at all (by comparison) in Flash MX/6. Yes, they are more tightly bound than they would be in XML, but Macromedia has struck a very effective balance given the installed base of users who PREFER it to be tightly bound and the needs of the applications for which it was designed.

Sure thing. I guess that's another religious war, since tight binding seems suicidal to me in Internet contexts, but they're certainly welcome to it.

...

CB radios was kind of a joke, but the VoiceXML people had some fun with a story like that. Is Flash available for cell phones?

I think they have them for cell phones too. Portability in theory is great, but if XML is too slow and bloated for some devices, the portability becomes moot.

XML itself isn't slow - it's just a data format. Bloated, sure, but easily compressed if that's the issue. Whether the applications (HTML browsers / SVG viewers / Web Services clients and servers) are slow and bloated is another issue, of course.

Please note, I'm usually very careful not to characterize stuff I'm not familiar with, and I don't mean to mischaracterize XML. That said, Macromedia is doing stuff today, so yes, their time horizon is different than yours. As Tim once complained about me, it is meaningless to discuss ad nauseam what might transpire in the future if it is unpredictable.

Predicting the future is ridiculous. Designing systems with an eye to flexibility in order to preserve future evolvability is pretty sane.

XML is more like basic research into physics, like the Manhattan project, whereas Macromedia is more like a chemistry lab trying to refine gun powder or invent TNT.

Wow. That feels like a grotesque mischaracterization to me. How about I try one?

XML is more like contractors who take care to ensure that the foundation and building are up to code and will last a long time for their homeowners, while Macromedia is a company that builds feature-filled homes quick without much concern for the building code and rents them out to whoever needs a house in a hurry...

Maybe some TNT is in order?

Jonathan replied:

On Tuesday, October 15, 2002, 2:10:55 PM, Simon St.Laurent wrote:
XML is more like contractors who take care to ensure that the foundation and building are up to code and will last a long time for their homeowners, while Macromedia is a company that builds feature-filled homes quick without much concern for the building code and rents them out to whoever needs a house in a hurry...

LOL! I don't want to agree or disagree with this analogy. I only want to say that I'm still laughing over it. It's not one that I'll soon forget.

I need a few laughs today too.

Nat Torkington:

Simon St.Laurent writes:
Wow. That feels like a grotesque mischaracterization to me. How about I try one?

Ooh ooh! My turn!

XML is like a VW Jetta: environmentally sensitive, slow, dependable, and terminally uncool. Lasts a lifetime.

Flash is like a mid-80s Corvette: impressive but environmentally destructive. Oh sure, it gets you the chicks for a while, but ultimately most people sharing the road with you are thinking "what's *he* compensating for?" It only lasts a lifetime by decreasing your lifetime.

Nat
(grotesque mischaracterizations R us!)

Simon again:

Just remember that I prefaced it as a "grotesque mischaracterization"...

Return to: From the Editors List





O'Reilly Home | Privacy Policy

© 2007 O'Reilly Media, Inc.
Website: | Customer Service: | Book issues:

All trademarks and registered trademarks appearing on oreilly.com are the property of their respective owners.