I like the off-by-1 discussion. It reminds me of why I now avoid C if I can. But to see Java as no better... !

Icon gets closer to Smalltalk in that regard. To loop over all items in a colletion you do every item := !collection do { ... } Hey presto: no off-by-1 errors! The other Smalltalk examples aren't as elegant in Icon as they are in Smalltalk - but that's okay. Icon is in the gap between C and Smalltalk.

Wade, who was deep in Icon programming last night and was quite enjoying it.