December 20, 2001
Mark Pilgrim writes good stuff
Mark Pilgrim writes good stuff about the Model-View-Controller architecture, but misses one of the main reasons to use it: asynchrony. An MVC application is inherently capable of running asynchronously, with very weak coupling between the model, view and controller. If you're building an Internet-scale application, latency is horrible and unpredictable, and RPC-driven patterns make the latency problems visible. This reminds me of the second time I visited Groove (almost two years ago now, the snow around Beverly was a foot deep, and we stayed in the nicest B&B ever). I was talking with Ray and saying something vague about a epiphany I'd found at LambdaMOO: that you can build sophisticated asynchronous groupware atop a realtime platform (MOO activity is mostly chat, but everything's persistent, and beside the realtime interaction in rooms there are lots of really powerful applications there ranging from mailing lists through to a byzantine political system), but not vice versa (Lotus Notes will never deal with simultaneous document manipulation in a seamless way, because the platform exposes nothing at all about presence or sessions or real-time users interacting). So I was well pleased that Groove's infrastructure is built on realtime awareness and a "live" distributed object model. I called this "synchronous" and Ray corrected me quickly: "No, it's all asynchronous". That took a long while to sink in, but it's absolutely true and really critical. All the network operations in Groove - their entire MVC-based model - are completely asynchronous: fire a message, and it'll be delivered, but please don't wait for a response before carrying on with your own local operations. This is the most asynchronous system I've ever seen, and it works because of message queues. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
vcard
archives: January 2005 December 2004 November 2004 October 2004 September 2004 August 2004 July 2004 June 2004 May 2004 April 2004 March 2004 February 2004 January 2004 December 2003 November 2003 October 2003 September 2003 August 2003 July 2003 June 2003 May 2003 April 2003 March 2003 February 2003 January 2003 December 2002 November 2002 October 2002 September 2002 August 2002 July 2002 June 2002 May 2002 April 2002 March 2002 February 2002 January 2002 December 2001 November 2001 October 2001 September 2001 August 2001 July 2001 June 2001 see also: {groove: [ ray, matt, paresh, mike, jeff, john ], other: [ /* more blogroll to follow */ ] } The views expressed on this weblog are mine alone and do not necessarily reflect the views of my employer. RSS 2.0 RSS 1.0 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||