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
signature.asc
Description: This is a digitally signed message part
