[erlang-questions] Process scope variable
Richard A. O'Keefe
ok@REDACTED
Wed Feb 18 01:41:59 CET 2015
On 18/02/2015, at 9:38 am, Imants Cekusins <imantc@REDACTED> wrote:
> how about those process scope variables though? :-P
> more reliable than process dict.
No, they aren't. They are essentially the same thing.
The process dictionary approach has one overwhelming advantage.
It has been part of Erlang for a long time. It's there; it works;
you can use it NOW, and other Erlang programmers will know what
it means.
It has problems, but it can do the job, and the problems are a
helpful reminder that maybe the job should not be done.
> same principles as function scope
> variables: immutable, gc'ed when the process finishes.
>
> would noone else use them?
Let's see: no 'process scope variables' in Concurrent ML;
no 'process scope variables' as such in Haskell;
nothing but painful experiences with 'thread local' variables in C; ...
Nope. Not going to use them. I would prefer to thread a
state record/map through 100 functions.
Give me a 'process' form that IS a syntactic scope, as in Ada,
where variables declared inside a 'task' are *naturally*
process-local and genuinely syntactically scope, and I have no
trouble with them.
One major issue for me is that "process scope" (gosh it grates
to use the word "scope" for something that is not a scope) is
not good enough. Given such a thing, the next thing is to want
to introduce or revise a variable binding within the body of
some function and have the binding go away/revert when the
function is complete. That is trivial when you are passing a
state record/map around. With single-level "process scope"
variables, one starts demanding more machinery.
More information about the erlang-questions
mailing list