CJ,
Both "!" and "~" are operators in 'C', but they have different meanings, "!" is a unary logical NOT, ie it is used to reverse the value of an expression from FALSE (zero)to TRUE (not-zero) and vice-versa. It will not preserve the value of the expression for example "!2" is zero as is "!4". The "~" operator on the other hand is a bit-wise NOT, specifically it is a ones-complement NOT. This reverses the state of each of the bits in the value from "1" to "0" and vice-versa. This preserves the information. I don't know VB, so I don't know how it supports the different modes, or what the "!" operator implies.

On the subject of "borrowing" elements from other languages I'd say, it depends. Adding the pre- and post-fix operators like "++" because they execute faster is a great idea, but is no good if the downside is that KiXtart is made more complicated and the interpreter is slowed down for the rest of the script. The rumored facility for tokenisation or byte-code precompiling will remove a lot of that overhead of course.

Sometimes you have to sit back and say "does this really fit in" with KiXtarts purpose? For example I'd love to see associative arrays taken from AWK or PERL. These are arrays which are keyed by a variant subscript rather than a numeric subscript, but this is a very complex feature and can be achieved in other ways.

One thing we really need are static variables for UDFs. Until we have these UDFs will have to expose global variables to maintain state information.

[ 07 December 2001: Message edited by: Richard Howarth ]