[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
least
> means we dont do anything with the invalid data sent, but this is not
rocket
> science: the standard technique to ensure decent compile time validation
in
> 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
reason
> 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.
Cheers
Ben
More information about the Haskell-Cafe
mailing list