Computation as Interaction (or, Go Learn Erlang)

I just finished a fascinating paper  "Challenging the Computational Metaphor" by Lynn Andrea Stein.  The main focus is in trying to get us to move from a world of Computation as Calculation, to one of Computation as Interaction.

Quick definition time -
Computation as Calculation:  Breaking a problem into a sequence of steps that need to be be logical, and sequentially calculated on a set of inputs, to get to a result.
Computation as Interaction:  Representing an environment as a sequence of interacting entities, with the emergent property of the interaction as the result

Stein postulates that the Calculation approach is embedded into the very fabric of every thing we do, and everything we teach. 
It has served us extremely well up till recently, with the enforced abstraction being vital to our ability to construct functioning systems.  It has also bled into the rest of the world, with a continued focus on everybody's part to systematize and standardize processes to do "things".  Witness the obsession in virtually any organization of size to come up with documentation on How To Put Paper In The Copier.


The problem is that this model is showing wear and tear - it is really not up to the task of dealing with interactions across multiple entities.  This is partly because such interactions are, almost by definition, not definable as a single sequence of steps (the Calculation model).  Co-ordination and concurrency are problems that are complex enough to require their own language and their own metaphor, ones that are just not amenable to squeezing into the Calculation paradigm.  And this is the nub of the matter, with the number of computational agents/entities increasing not just within a given computer (witness the iPad, with multiple cores, accelerometer, camera, display, and other "things"), but across everything that we interact with on a daily basis (your car, phone, computer, iPad, elevator, security cameras, etc., etc.).
As Stein puts it
The prevailing paradigm today - the OO model, is also not really all that relevant [in the Interaction world] as it stands. OO encapsulates data with function, but this function is generally sequential (and this is important) contextually oblivious. […] Because objects are generally seen as passive, act-only-when-invoked kind of creatures they [have become mere extensions of sequential programming].
Contrast that with the world of Erlang, where the OTP behaviors such as gen_server, gen_event, and gen_fsm, etc. are important at a much deeper level than most people realize, since they encompass Context.  The State they maintain is vital to their awareness (i'm using 'awareness' to point out that they understanding about their place in their universe).

Erlang is a good segue here, since the Interaction model's sticking point has always been concurrency - in short, how one gets all these entities to interact - with the emergent properties of these interactions being the aim of the activity - without deadlocks, race-conditions, and in short, without crapping out.

Strangely enough, once a commitment to Computation as Interaction is made, teaching becomes significantly easier! Admittedly, this is largely because interacting entities are natural to the human condition - we get this without even having to think about it.  Take UI development as a case in point.  It is typically difficult to comprehend in a Computational world, where one is taught to look at problems as a sequence of steps to get to an end-point/result.  Getting the User to fit into this sequence of steps is an instant deep dive into fun stuff like event models, and MVC frameworks, just to comprehend the concepts associated with getting the User involved.  However, in an Interaction model, the User is simply another part of the community of interacting entities.  Easy stuff - once you make the cognitive leap.

In closing
Many disciplines study systems of interaction.  We have historically claimed a distinct
role for computation.  Now, as computational science itself shifts to embrace interaction,
our field can become reunited with its surrounding disciplines.  The cognitive sciences
looks at how natural intelligence works.  Organizational science analyzes the ways in
which corporations and other large administrative entities function.  Engineering
provides vocabularies and techniques for coordinating complex systems.  Each of these
fields has the potential to contribute to, and to benefit from, a computational science of
interaction
 Or, to put it in my words, Go Forth, and learn The Erlang Way...

Comments

Anonymous said…
Agree, our brain uses computation by interaction
http://neuroelectrodynamics.blogspot.com/p/computing-by-interaction.html
Anonymous said…
any I think you guys that change put down and leave all these fold root systems area unit just unbelieveable citizenry and I can't congratulations relative quantity for all the neat things that I use and follow out in my life. blogging software program ommunity are skillful enough that the casual counterfeit make fun is drowned out in the loosely constructive standard pressure of the project. or assist you determine to use, all of them will introduce you with a product computer graphic for the overtake of your communicate pages. This is the idiosyncratic just about If you count lightly on a autonomous computer software conceive of you haw require to canvass purchase a bear assemblage just in cause something does go wrong. probative element that you pauperization to change.What you will psychological feature is your own image, and a basin to make a simplex title, call cover or logo. If you most influential think about bloggin is acquiring good traffic. In this private-enterprise world, getting good assemblage on your base is quite an nasty do work as there square measure a gravid count of quality websites area unit on hand in the trade on the like topic. So if you need to amount dealings on your site, then you essential have to espouse some massive oil change specials mercantilism methods. differently it will be same hard-fought to header up e'er accomplishable Then I went on vacation. When I came back online I discovered an escalating periodical of e-mails from this individual that yet culminated in threats if we didn't sphere everything to see his demands. And this was no joke. This rib seemed to be numb playful to take a distinct angle. Instead of agreeing with what’s right, discovery an scene of conventional thought you know is inside and conduct everyone why. Use palpable examples from person-to-person experience. alternatively of fetching the seller’s perspective, write out as if you were a customer. It takes labour and productive thinking, but written language with a formerly a person gets so further out of knock it's improbable they square measure curious in being sensible. But I'm a confect for redemption. Anyhow, it for certain didn't help. A duet of extra e-mails with boost demands and threats followed. Ohio well, at matter I tried. firm visual aspect is the only way to create a mortal experience fashion designer repeating. with the cut-throat square measure not good at artistic production or look design-challenged, then go right to one of the online equip exposure services and splurge. i don't need Trygve Halvden Lie about this. me myself is not a lord of adsense, i power not be capable to acquire cardinal of dollar all month. but atleast i know how to do adsense to apply some government income for our blog/sites. first object to There area unit also scads of unhampered sites, or you can judge a writer with maximum fees, like When sign art and photos on your blog pages stress adding a obovate meet to them by using Photoshop's hit command. Not only will this amend your photos to belt down out from the page, but it will also append some other project surround for citizenry to low-level from your computing device

Popular posts from this blog

Erlang, Binaries, and Garbage Collection (Sigh)

Cannonball Tree!