Well I hope you saw my point at least, mIRC has an odd syntax and often unpredictable results.

If you didn't like my first example, here is another.

%array. [ $+ [ %i ] ]

in php that'd be $array[$i];

Again, the mIRC syntax is easier?

To me, the mIRC syntax is hard to follow. I'm sure a new user would wonder why the $+ is necessary and why the evaluation brackets are needed. Where as in the php example, it's pretty clear (since it uses the same format as 99% of array supporting languages).

Then of course there are the 'bugs'. The multiple space bug, to which there is no way to get around. In every other language I've ever seen, there is nothing even close to this problem. $calc() problems. Plug a number containing 'e' into a $calc() and it doesn't work. But note that $calc() is quite able to return numbers containing 'e', it just can't process them. Makes it very hard to deal with certain functions, factorials come to mind. If you specify a number that is too large you get an invalid result because mIRC can't handle the large number. Then there is $serverip returning an ip that is reversed, $ord not handling decimals correctly, do you say the "one tenst" because $ord(.1) = .1st, $rand not working correctly with negative numbers, $rand not handling numbers with decimals correctly, try $rand(1.1,3.9) about 20 times or so, note how 4 is returned. $isupper(*) and $islower(*) both return $true, last I checked, * is neither upper or lowercase. Then $disk, I run $disk(d:) (d is my cdrom) it returns $false, but $disk(d:).type returns cdrom, so it doesn't exist yet it is a cdrom? Then $base, the helpfile says $base(1.5,10,16) returns 1.8, well for me it returns 1. Then of course there are always the undocumented features, where is $pi mentioned in the docs? And for that matter, why does mIRC return a value for pi that is too large for it to even understand? $pi returns 3.14159265358979323846, but if you $calc($pi) you get 3.141593. Now I assume anyone using pi doesn't want to print it to a channel, so that means it will probably be used in a math formula. So what is the point of returning more digits than mIRC can handle? Just to make using $pi slower since mIRC has to trim it? Or is that perhaps the reason it is undocumented?

My point is just, you people seem to just want to say "mIRC scripting is better than everything else. The documentation for other languages is bad, they are too complex, etc, etc" But when it comes right down to it, mIRC scripting suffers from all of the problems you describe and more.

And just as a note, I'm not trying to bad mouth mIRC or Khaled in any way, I just simply feel that mIRC scripting is not very well written. Without implying any offense, the major scripting languages are coded by many coders all with the goal of creating a great scripting language. mIRC is coded by one man whose primary goal is to create a great IRC client. It seems logical that when you have numerous people working exclusively on a scripting language you will get better results than from one man who does it as a side project.

Lastly, yes, if mIRC scripting is your first language you won't have problems learning it. But if you are switching from another language, you'll go crazy, I know I did.