Announcing Ozma: Extending Scala With Oz Concurrency 38
setori88 writes "Programming for concurrency makes sense in developing for both large
scales (cloud computing) and small (multicore CPUs). Some languages
were designed for concurrency and distribution; One of those languages
is Oz, which provides advanced primitives regarding concurrency and
distribution. Oz is mostly declarative, a paradigm that encompasses
functional and logic programming. Despite its innovative features and
expressiveness, Oz never made it into the wide developer community;
one reason is its
unusual
syntax." Read on to learn about an effort to bring Oz's concurrency
features to more programmers.
setori88 continues: "But first, some background: Martin Odersky, in designing the Scala programming language, recognized the need for community acceptance of the kind that Oz lacked. He designed Scala as being both close to Java (in terms of syntax and concepts) and interoperable with existing Java libraries. Today, Scala seems to be the best hope for making functional programming accessible to programmers.
Although Scala has no language feature related to concurrency, the advanced library Akka, inspired by Erlang, provides Scala programmers with concurrent and distributed concepts.
Now comes a project attempting to popularize the concurrency concepts of Oz, called Ozma. Ozma implements the full Scala specification and runs on the Mozart VM. It extends Scala with dataflow variables, declarative concurrency, lazy declarative concurrency, and message-passing concurrency based on ports. Ozma extends the duality of Scala, namely the combination of functional and object styles, to concurrent programming."
Ozma in my pants (Score:-1, Informative)
I have Ozma extending scala in my pants.
[] X#nil then Z=X (Score:3, Informative)
1. Almost zero documentation on getting the language to (partially) compile and/or run outside of Eclipse. I'm not sure how I ever figured this out, to be honest.
2. Lack of a decent file I/O library. When was the last time you had to write your own streamreader for a business application?
I am thrilled to see Oz getting more mainstream attention - the whole dataflow concept is very cool, and it's fun to write.
CSP (Score:4, Informative)
If I remember correctly, "#" is for constraint statisfaction problems (delayed goal), and I think that operator shouldn't be taught to an Oz newbie, as Constraint Logic Programming is a paradigm onto itself (and not just paradigm, as in thinking pattern, but it involves quite a lot of complex algorithm that run in the background (demons), and non-sequantial execution).
Last time I installed Oz, it came with Emacs bundled by default.