[Haskell-cafe] Re: Haskell vs GC'd imperative languages, threading, parallelizeability (is that a word? :-D )

Benjamin Franksen benjamin.franksen at bessy.de
Fri Aug 10 19:14:57 EDT 2007

Hugh Perkins wrote:
> Now, arguably the fact that we are pattern matching on the receiver at
> means we dont do anything with the invalid data sent, but this is not
> science: the standard technique to ensure decent compile time validation
> rpc-type things is to use an interface.
> The interface defines the method names and parameters that you can send
> across.  Both the receiver and the sender have access to the interface
> definition, and it is trivial to check it at compile time.
> (Caveat: havent looked enough into Erlang to know if there is a good
> for not using an interface?)

Remember that Erlang is an untyped language and that you are allowed to send
any kind of data. However, there is more to consider here: A certain amount
of dynamism wrt the message content (high level protocol) is necessary for
systems for which Erlang was designed, namely large distributed control
systems with minimum down-times. For large distributed installations it is
a matter of practicality to be able to upgrade one component w/o needing to
recompile (and then re-start) all the other components that it communicates
with -- for systems with expected down-times of 3 Minutes per year it is a
matter of being able to meet the specifications. You'll have a hard time
finding high-availability or large control systems which use an IDL
approach for communication.


More information about the Haskell-Cafe mailing list