Dear Russ,

Like others here, I am sorry, but I have to disagree strongly. I suggest you start reading CTM from the beginning and resist just jumping to your favourite subjects such as relational programming ;-) You will then realise that most of all, Oz is a multi-paradigm programming language.

CTM does not only introduce the several programming models of Oz, but also carefully discusses how Oz compares with other languages designed for the respective programming model (e.g. how Oz performs with other functional languages, concurrent languages, OOP languages etc).

Best,
Torsten

BTW: I am actually a musician and with no formal computer science training (I only did a few years of Lisp programming before). Even for me the Mozart-Oz doc is perfectly comprehensible.

Having spent the last three weeks or so working with Mozart-Oz, [skip]

I am _not_ able to read a few thousand pages of documentation in only three weeks. You may need some more time so to digest, before you come to a final verdict, how others misunderstood what they produced in more than ten years ;-) Needless to say, that I am only a humble user as well..


--
Torsten Anders
Sonic Arts Research Centre
Queen's University Belfast (UK)
www.torsten-anders.de

On 05.10.2005, at 21:54, Russ Abbott wrote:

I found out about Mozart-Oz after attending the Agent 2004 conference at U Chicago about a year ago.  Michael North and others there told me about it. They had had a class in it earlier that year and were very impressed with it. They told me that it was organized as a core base language on top of which most of the major programming language capabilities (including Prolog-style unification and backtracking and also including functional programming) had been built in a principled way.  I was quite excited about this--although I didn't really follow up until recently.  You can imagine my expectations when I started looking at it. Neither CTM--at least looking at the table of contents and flipping through the pages--nor the online tutorial material disabuse one of this perspective.
  
Having spent the last three weeks or so working with Mozart-Oz, my impression now is that it is a Constraint Propagation system. Everything else is built to serve that objective.  Although I have no expertise in CP, I am very impressed with what you have built.  My guess is that Mozart-Oz is a state-of-the-art CP system.  (Are there better ones around?) On the other hand, I don't think it is a state-of-the-art system in other regards.  But it shouldn't be expected to be a state-of-the-art system for every aspect of programming.
  
So I strongly recommend that Mozart-Oz be publicized for what it is, a fantastic CP system. With that in mind, I would recommend re-organizing both the tutorial material and CTM. In CTM, for example, not only is CP at the very end, it is in a section entitled "Specialized Computation Models."  The implication is that, yes one could do CP in Oz just as one could use Oz for Gui building and for Distributed programming.  And not only can one build these various kinds of computation models, they really are Oz afterthoughts. The real Oz is the in the General Computation Models.  I think that gives the wrong impression. Does anyone believe that the GUI and Distributed Programming capabilities of Oz are competitive with what one could get elsewhere?  Does anyone believe Oz is as good an OO language as <pick your favorite OO language>?  On the other hand Oz CP is in a class by itself. 
  
So if I were to promote and teach Oz, I would focus on CP.  I would promote it as CP, and I would teach it as CP.  I would start with simple CP problems and show how to do them. I would then talk about Computation Spaces and how they work and about concurrency and how that's part of how Computation Spaces work. I would also talk about the language itself as a way to write constraints, which is really its primary purpose. 
  
At that point, I might stop and talk about the language in more depth as a language, pointing out that it is after all a general purpose programming language.  Not only can it be used to write constraints, it can be used to write all sorts of non-constraint programs.   But I would ask people to keep in mind that many of the decision made when developing the language (that threads block waiting for variables to get values, for example) were made because it was intended as a language for writing constraints and not because it was invented as a general purpose language which was then adopted as a constraint language when one was needed. 
  
I think that an approach like this would make it much easier for someone approaching Mozart-Oz from the outside to understand what's going on.  I also think it would be a more honest description of what's really going on.
  
I know I'm still a new comer to this community and that I haven't made the sort of investments most of you have made in it.  So perhaps my opinion is somewhat gratuitous--as well as being still somewhat uniformed.   So if any of the above has been offensive to anyone, I apologize.
  
-- Russ
 
_______________________________________________________________________ __________ mozart-users mailing list [email protected]
http://www.mozart-oz.org/mailman/listinfo/mozart-users



_________________________________________________________________________________
mozart-users mailing list                               
[email protected]
http://www.mozart-oz.org/mailman/listinfo/mozart-users

Reply via email to