Reasons why VBScript blows --------------------------- - No associative arrays - Option Explicit is not on by default - Too many ways to say "nothing" (Nothing, Empty, Null, "") - No heredoc syntax - Error handling based on goto instead of try-catch - Assignment operator is the same as equivilence operator - Newline is not treated as whitespace - No block comments - No "var += 5" syntax - It's possible to change between 0-indexed and 1-indexed - "Dim myArray(n)" allocates n+1 elements (0-n, inclusive) instead of n elements - Cannot index into a string like an array - Cannot declare variables as non-variant (100% weak-typed) - Cannot initialize a variable in its declaration 'Cannot do: Dim var = 5 'Must do Dim var var = 5 - No short-circuit evaluation: 'Cannot do: If (Not IsNull(varA) And varA = 5) Or varB = 5 Then '...do stuff End If 'Must do: If Not IsNull(varA) Then If varA = 5 Or varB = 5 Then '...do stuff End If ElseIf varB = 5 Then 'duplicate condition '...do same stuff (duplicate code) End If 'Or: Dim flag flag = False If Not IsNull(varA) Then If varA = 5 Or varB = 5 Then flag = True End If ElseIf varB = 5 Then 'duplicate condition flag = True End If If flag Then '...do stuff End If