Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options

Re^2: Where is concurrency going? Is Perl going there?

by Errto (Vicar)
on Jul 25, 2007 at 22:45 UTC ( #628825=note: print w/replies, xml ) Need Help??

in reply to Re: Where is concurrency going? Is Perl going there?
in thread Where is concurrency going? Is Perl going there?

I believe erroneousBollock was referring to the fact that STM (preferably) depends on, not necessarily pure FP per se, but at least an enforced static typing model such that you can statically guarantee (in other words, guarantee at compile time without running the code) that a given block will not have any side effects other than updates to objects that the STM system can track. In other words, if I have a transaction under STM with optimistic locking, there's a good chance that transaction will have to be redone, and if it includes any calls to things like print or launch_rocket, well, that's a bit of a problem.

I admit I have not looked at STM implementations other than Haskell's. In the Haskell world they make a big deal of the fact that they use the type system to quite literally guarantee the transactions are isolated in this sense. Perhaps in the other languages that isn't considered as vital an issue.

Replies are listed 'Best First'.
Re^3: Where is concurrency going? Is Perl going there?
by erroneousBollock (Curate) on Jul 26, 2007 at 00:08 UTC
    Hmm, I must not have pressed 'create' when I commented on this one.

    Indeed, the guarantees you point out are the reason that STM is a highly composable concurrency abstraction in Haskell.

    Otherwise, you just don't get that win.


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://628825]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (8)
As of 2018-06-20 21:50 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (117 votes). Check out past polls.