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