Robert Dockins wrote:
<ramble type="somewhat coherent">
Ahhh... the singleton pattern. There is a debate among OO theorists
about whether the singleton pattern is actually a good idea. I tend to
side with those who say that it is Just Wrong. The reality is that
"singletons" are only unique within some scope (OS process, VM, sandbox,
whatever). "Global" state is similar; it is always bounded by
_something_. I think its always better to make the boundaries explicit
and aligned with the problem domain rather than implicit, because the
implicit boundaries sometimes/often don't do what you want. As soon as
you have an even slightly unusual execution environment, your
assumptions can be violated (eg, within Java application containers
*shudder*). I have to imagine using, eg, HS plugins with modules
containing top-level state could cause all sorts of havoc.
</ramble>
I couldn't have rambled it better myself. :)
I think global mutable variables should be regarded with utmost
suspicion. There are very few situations where they are the
right solution.
-- Lennart
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe