Tuesday, 14 July 2009

To render or to compute?

From time to time I hear fruitless discussions about rendering documents versus computing data (maybe this post is another one). Person X says something like “in order to be able to preserve these documents, we need to preserve the means to render them.” But person Y says “ah, but for data rendering is not enough. I don’t want to see the data values, I need to be able to feed them into complex computations. That’s quite different.”

I want to yell and shout (I don’t, but I guess my blood pressure goes up). I guess there may be some kind of essential difference here that these discussions are failing to capture. But to me it’s angels dancing on a pin. Rendering a modern web page involves computations unimaginable barely 20 years ago (other than on Evans and Sutherland high end graphics systems). You take a substantial amount of data from perhaps dozens of different sources, in different kinds of loosely standardised formats, and you project it onto a user-defined space, dependent on a wide variety of different settings; this is tough! Rendering a web page can also change the state of complex systems (hey, it can move hundreds of pounds from my bank account into an airline’s bank). Rendering a web page is serious computation.

A significant part of rendering (one might think, THE significant feature of rendering, with the exception of the state-changing role above) is to present information for the human consumer. That’s also a key intent of computation on data. I’ll assert that with few exceptions, ALL computation is ultimately intended to render results for human consumption. You may spend a gazillion petaflops sifting through data and silently chucking out the uninteresting stuff. But sooner or later your computation finds some prima facie evidence of a possible Higgs Boson, and sure as eggs is eggs you want it to tell you. I reckon you’ve just rendered the result of part of your LHC experiment!

So perhaps rendering involves (potentially) multiple inputs with some state change and significant human-readable output. And computation involves (potentially) multiple inputs and outputs and state changes, with eventually some human-readable output. No, I give up. Anyone got a better idea?


PS, apologies for the break in postings. I've been rather busy with a re-funding bid. I hope I can do better now! I'm way behind my targets for the period (:-(.


Post a Comment

Please note that this blog has a Creative Commons Attribution licence, and that by posting a comment you agree to your comment being published under this licence. You must be registered to comment, but I'm turning off moderation as an experiment.