On 4/2/07, Andrew Lentvorski <[EMAIL PROTECTED]> wrote:
Bob La Quey wrote: > So do you have an alternative
To hardware modeling languages, which must of necessity, have some kind of model of concurrency.
> Or a higher level language you would suggest? Erlang. Gambit with Termite. Scala and Actors. Pick one.
References Erlang FAQ http://www.erlang.org/faq/t1.html Termite http://www.google.com/url?sa=t&ct=res&cd=3&url=http%3A%2F%2Fp-cos.net%2Flisp-ecoop05%2Fpdf%2F19654.pdf&ei=uMAQRr-BGJbigQOY-MT5AQ&usg=__5CQbCVFOjQD8h2U3lHzHL_Zge1M=&sig2=nOqADV6ag5Ci7Efry8vPOw http://tinyurl.com/2jglec Scala http://www.scala-lang.org/
All of these use Actors/Message Passing but still allow higher level programming constructs for the sequential sections. In addition, the Actors/Message Passing model for concurrency is not exactly new. The immutability of variables combined with message passing and pattern matched tail calls creates some very nice state machine constructs in Erlang. This is unsurprising given that Erlang was created for networking hardware. Shared transactional memory and Haskell seem to be generating some papers, but some people have shown that transactions don't compose as nicely as originally believed. My primary beef with Erlang is the fact that only one VM exists (I have a bit of problem about the weak REPL, but I can ignore that). Until you have two separate implementations of a language (two different compilers, two different interpreters, or two different VM's), the ability of that language to adapt to new hardware, operating systems, or environments is unknown.
So since it appears we do not know how to do this yet what do you suggest we do? Wait for perfection? Or as you suggest "pick one" and start to sort out its problems? Create something better? Got any ideas? Or are you just that useful type, the critic. Muddle through? Chuckle, BobLQ PS. My world is one of concurrent processes so it seems quite right that programs that model the world should be concurrent. -- [email protected] http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-lpsg
