5 ms·
Scala + Mozart/Oz
- jimwise 16y agoFor more on the "Functional Patters are Concurrency Patterns" idea, see Bob Harper's recent post on the subject: https://existentialtype.wordpress.com/2011/03/17/parallelism-is-not-concurrency/ https://existentialtype.wordpress.com/2011/03/17/parallelism... (The whole blog is worth reading; Harper is basically giving a blow-by-blow as CMU rolls out it's new functional-programming-first CS curriculum.)
- rdtsc 16y agoFor reference: http://www.mozart-oz.org/ http://www.mozart-oz.org/ My favorite features of M/Oz: * logic programming: http://www.mozart-oz.org/documentation/tutorial/node8.html#chapter.concurrency http://www.mozart-oz.org/documentation/tutorial/node8.html#c... * concurency: http://www.mozart-oz.org/documentation/tutorial/node8.html#chapter.concurrency http://www.mozart-oz.org/documentation/tutorial/node8.html#c...
- andrewcooke 16y agopvr doesn't give up, does he? :o) i hope this one finally hits the big-time (but i worry he's underestimating the complexity of scala and over-estimating its popularity).
- reeses 16y agoI used Oz/Mozart for a few years as my "side project language" in the 2003-2005 time frame, and definitely have the love for PvR. I'm not entirely sure why he chose Scala either, but it will definitely make for more accessible tool support now that Scala is getting first-class treatment in IDEA, etc. I guess the "obvious" available options are probably Erlang, Scala, and Clojure, and Scala is definitely in the lead right now in terms of popularity with the intended audience. It could be worse, he could have decided to make a colorforth front-end. :-)
- Arrgh 16y agoJonas Bonér has been a big fan of Mozart/Oz for a long time, so naturally he rolled some dataflow concurrency support into Akka: http://doc.akka.io/dataflow-scala http://doc.akka.io/dataflow-scala
- doublec 16y agoWasn't functional programming with a Mozart/OZ Engine basically tried with AliceML: http://www.ps.uni-saarland.de/alice/ http://www.ps.uni-saarland.de/alice/ I'm not sure syntax is the main reason for slow uptake of Mozart. In fact the syntax can offer some advantages. See this post by pvr about a tail recursive append without helper functions: http://lambda-the-ultimate.org/node/755#comment-7056 http://lambda-the-ultimate.org/node/755#comment-7056 Chris Rathman followed up with an AliceML version and compares the syntax: http://lambda-the-ultimate.org/node/755#comment-7057 http://lambda-the-ultimate.org/node/755#comment-7057 I like Mozart/Oz but the two main things missing for me are unicode support and 64 bit support.
- mzl 16y agoAliceML is, AFAIK, more of an experiment in making a statically typed Mozart/Oz like system.
- lars 16y agoOz is a pretty damn cool language. But I think another thing that's hampering its adoption, apart from syntax, is the lack of available libraries. I also have to add to the praise of Concepts, Techniques, and Models of Computer Programming. I remember in particular an exercise from that book where you were asked to write a simple parser in a particular paradigm. It basically asked you to write the procedure parse(code, syntax_tree), where you'd give the code as the first parameter, and where syntax_tree was the output parameter. Once you had made that, the last sub-exercise said "Oh BTW, try calling your function with an empty code parameter, and an existing syntax tree." Lo and behold, it worked! My parser could run in reverse, and it spat out all strings that would produce the given syntax tree. This was a mind blowing experience at the time.
- swannodette 16y agoParadigms that easily permit reversible computations are worthy of extended study. It adds a whole new level of expressive power. I'm slowly discovering that the coupling of a logic paradigm with a language that supports macros opens the door to some really incredible code transformations.
- rafaelferreira 16y agoCan you remember from which chapter is this exercise?
- lars 16y agoI have the book here, and it turns out I'm misremembering. It's not an exercise, but an example. It's on pages 643-648 (in my version), in the chapter on relational programming.
- deleted 16y ago[deleted]
- rafaelferreira 16y agoI wonder why they're pursuing a proper extension of Scala. Odersky is working with a group in Stanford to make the language even more extensible, in order to enable parallel 'languages' to be implemented as domain specific languages (i.e. as libraries). This seems like a much easier and more fruitful way to popularize Oz (or something Oz-like). Reference: http://infoscience.epfl.ch/record/150346/files/onl0000031-chafi.pdf http://infoscience.epfl.ch/record/150346/files/onl0000031-ch...