A major problem with MOOcode is its remarkable idiocy in certain situations.
For example, in most programming languages, the iterative loop (generally for)
can do anything you tell it to. For instance, in C, if you wanted to say
for (i = 0; i >= -25; i--), the language would accomodate you with an
iteration where i steps down from 0 to -25. Not so in moo. A similar
statement, for i in [0..-25], would result in.. nothing. The loop
code would not be executed, because the beginning number is higher than the ending
number. To overcome this, you have to use a hack of a while loop.
Similarly, in MOOs where everyone is a programmer (such as the Weyrmount),
you rely for output on verbs like player:tell(str);, which can easily
be broken by the player's own :tell code, or the player class he uses.
On the other hand, MOO's string handling is generally more straightforward than
common languages like C and C++--which makes it a bit more palatable. On the other hand, it also executes its comments--meaning that they slow the verb down significantly...
To work around the for loop deficiency, you can use code in this style:
i = 0;
while (i > -26)
.
.
.
i = i - 1;
endwhile