On Mon, 2012-07-30 at 21:52 +0100, Kevin Wright wrote:
> The basic idea is that if you "insert" an Apple into a collection of
> Oranges, then you get back a collection of Fruit.  Both the new collection
> and the original are immutable, with the original continuing to be a simple
> collection of Apples.

I have to admit that whilst a lot of programming is about transforming
apples to oranges and comparing apples and oranges, the interesting
stuff happens with very big data structures, for example 6GB XML
documents, or 256MB images. You do not deal with these things by value
per se. The solution at the moment is to switch from a shared memory
perspective to a message passing perspective, a return to
object-oriented programming – which most current Java, Scala, Groovy, C
++, Python, Ruby, etc codes that I have seen do not employ. Go and
Groovy/GPars, and others, are trying to alter this. Immutability is
critically important, the question is at what scale. Functional
programming, actors, dataflow, CSP, all have slightly different
architectural views on this. The core issue is surely to remove
shared-memory multi-threading as the main applications programmer tool
of concurrency and parallelism. After all locks are designed exactly to
stop parallelism 

-- 
Russel.
=============================================================================
Dr Russel Winder      t: +44 20 7585 2200   voip: sip:[email protected]
41 Buckmaster Road    m: +44 7770 465 077   xmpp: [email protected]
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to